탐색으로 건너뛰기

MiniMax Messages

BeatAPI 키 하나로 Anthropic Messages 형식에서 MiniMax M3와 M3.1 Flash를 호출합니다.

  • 현재 모든 MiniMax 모델이 엔드포인트 POST /v1/messages 하나를 사용합니다. model만 바꿔 전환하세요.
  • 스트리밍과 도구 사용, 1M 토큰 컨텍스트 창. MiniMax-M3는 프롬프트가 512,000토큰을 넘으면 요금이 두 배가 되고, MiniMax-M3.1-Flash는 프롬프트 길이와 관계없이 같은 요금입니다.
  • Anthropic SDK와 호환됩니다. 기본 URL을 바꾸고 BeatAPI 키를 사용하세요. 모든 요청에 anthropic-version 헤더를 보내세요.
  • tool_choice는 모델에 전달되지만 모든 모델이 적용하지는 않으며, thinking은 효과가 없습니다. 아래 파라미터 레퍼런스를 참고하세요.

텍스트 요청의 기본 URL로는 https://direct.beatapi.io를 사용하세요. Cloudflare의 100초 제한을 받지 않으므로 스트리밍하지 않는 긴 요청도 끊기지 않습니다. https://api.beatapi.io도 동작하며, 네트워크에서 direct.beatapi.io에 접근할 수 없을 때의 대안입니다. 키, 모델, 가격은 양쪽이 같습니다. 이미지와 영상 API는 https://api.beatapi.io만 사용합니다.

POST/v1/messages실행해 보기

API Explorer에서 이 엔드포인트를 엽니다. BeatAPI API 키를 입력하고 전송하세요. 실제 호출이며 본인 잔액에서 과금됩니다.

모델

model에 다음 ID 중 하나를 보내세요. 각각 별개의 모델이며, 서로의 별칭으로 취급하지 마세요.

모델 ID컨텍스트(토큰)최대 출력(토큰)포지셔닝입력, 1M 토큰당 USD출력, 1M 토큰당 USD참고
MiniMax-M31,048,576128,000롱 컨텍스트 코딩, 인식, 에이전트 계획을 위한 MiniMax 멀티모달 모델$0.12$0.48롱 컨텍스트 코딩, 인식, 에이전트 계획을 위한 MiniMax 멀티모달 모델. 프롬프트가 512,000토큰을 넘으면 요금이 두 배가 됩니다.
MiniMax-M3.1-Flash1,000,000—에이전트 추론, 도구 사용, 코딩, 롱 컨텍스트를 위한 MiniMax의 저비용 모델$0.06$0.24MiniMax-M3보다 저렴하며, 컨텍스트 창 전체에 같은 요금이 적용됩니다. 롱 컨텍스트 등급이 없습니다.
  • 가격은 할인이 적용된 기본 등급입니다. 롱 컨텍스트 등급, 캐시 입력 요금, 캐시 쓰기는 이 표에 없습니다. 가격표를 참고하세요.
  • —는 카탈로그에서 해당 수치를 공개하지 않는다는 뜻입니다.

빠른 시작

서버에 @anthropic-ai/sdk 또는 anthropic 패키지를 설치하고 키는 BEATAPI_API_KEY에 보관하세요. 브라우저 코드에는 절대 넣지 마세요. SDK가 anthropic-version 헤더를 자동으로 보냅니다. 아래는 요청 예시이며 실제로 기록된 모델 출력이 아닙니다.

content의 text 블록에서 답변을 읽은 다음 stop_reason과 usage를 확인하세요. HTTP 200만으로는 답변이 작업 요구를 충족한다고 볼 수 없으니 애플리케이션에서 검증하세요. 텍스트 요청은 바로 반환되므로 /v1/tasks를 폴링하지 마세요.

curl --request POST \
--url https://direct.beatapi.io/v1/messages \
--header "x-api-key: $BEATAPI_API_KEY" \
--header 'anthropic-version: 2023-06-01' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-M3",
"max_tokens": 2000,
"messages": [
{
"role": "user",
"content": "Design a resilient webhook retry strategy for a payments API."
}
]
}'

엔드포인트와 인증

POST https://direct.beatapi.io/v1/messages

x-api-key string 필수

BeatAPI 키입니다. Authorization: Bearer <BEATAPI_API_KEY>도 받습니다.

모든 요청에 anthropic-version 헤더(예: 2023-06-01)를 보내세요. Anthropic SDK는 자동으로 추가합니다. 인증에는 x-api-key와 Authorization: Bearer <BEATAPI_API_KEY> 모두 사용할 수 있습니다.

요청 파라미터

요청은 Anthropic Messages 형식을 사용합니다. 아래 레퍼런스에서 각 필드의 동작을 설명합니다. thinking은 받지만 결과에 영향을 주지 않습니다. 이 페이지에 없는 필드는 효과가 있다고 보장하지 않습니다.

model string 필수

정확한 모델 ID입니다.

허용 값: MiniMax-M3, MiniMax-M3.1-Flash

  • 각 ID는 별개의 모델이며 다른 모델의 별칭이 아닙니다.
  • 키로 GET /v1/models를 호출해 사용 가능한 모델을 확인하세요.
  • ID는 대소문자를 구분합니다. MiniMax-M3와 MiniMax-M3.1-Flash는 소문자로 바꾸지 말고 적힌 그대로 보내세요.

max_tokens integer 필수

생성 토큰의 상한이며, 추론 토큰을 포함합니다.

  • 게이트웨이는 이 값을 위 표에 있는 모델의 최대 출력과 비교하지 않습니다. 그 값 이하로 설정하세요.
  • max_tokens는 요청에 필요한 잔액을 추정하는 데도 쓰입니다. 실제 출력이 작더라도 값이 너무 크면 402 insufficient_credits로 거부될 수 있습니다. 필요한 만큼만 설정하세요.

추론 모델은 추론을 먼저 작성합니다. max_tokens가 너무 작으면 추론이 한도를 모두 써 버려 text 블록이 비고 stop_reason이 max_tokens가 됩니다. 둘 다 담을 여유를 두고, max_tokens가 보이면 값을 높이세요.

messages object[] 필수

대화 내용이며 오래된 메시지부터 나열합니다. 각 메시지에는 role(user 또는 assistant)와 content(문자열 또는 블록 배열)가 있습니다.

  • 텍스트 블록(text), 모델의 도구 요청(tool_use), 사용자가 보내는 결과(tool_result)가 적용됩니다.
  • tool_result 블록에는 답하는 대상인 tool_use 블록의 tool_use_id가 있어야 합니다.

system string | object[] 선택

시스템 프롬프트입니다. 문자열 또는 텍스트 블록 배열이며, 텍스트 블록은 하나의 시스템 프롬프트로 합쳐집니다.

stream boolean 선택기본값: false

답변을 서버 전송 이벤트로 반환합니다. 아래 스트리밍 섹션을 참고하세요.

기본값: false

temperature number 선택

샘플링 온도입니다. 이 값이나 top_p 중 하나만 바꾸세요.

top_p number 선택

누클리어스 샘플링 임계값입니다.

stop_sequences string[] 선택

생성을 멈추는 시퀀스입니다.

tools object[] 선택

모델이 호출할 수 있는 도구 정의입니다. 각 도구는 name, description, input_schema로 적용됩니다. 모델은 tool_use 블록으로 답하며, 결과는 다음 user 메시지의 tool_result 블록으로 반환하세요.

tool_choice object 선택

모델이 tools를 사용하는 방식입니다. {"type": "auto"}는 모델이 판단하고(기본값), {"type": "any"}는 도구 중 하나를 호출하게 하며, {"type": "tool", "name": "..."}는 해당 도구를 호출하게 하고, {"type": "none"}은 도구를 호출하지 못하게 합니다. disable_parallel_tool_use: true는 답변당 호출을 하나로 제한합니다. tools가 없으면 무시됩니다. 이 설정은 모델에 전달되지만 모든 모델이 적용하지는 않습니다. 테스트(2026-10-15)에서 DeepSeek는 무시했고 Qwen은 any는 적용했지만 특정 도구 지정은 적용하지 않았으므로, tool_use 블록이 있다고 가정하지 말고 답변을 확인하세요.

thinking object 선택

효과가 없습니다. 추론을 켜거나 끄지 않으며 추론 예산도 정하지 않습니다. 기본적으로 추론하는 모델은 계속 추론하며, 추론 내용은 thinking 블록으로 반환됩니다.

롱 컨텍스트 가격

MiniMax-M3는 프롬프트가 512,000토큰을 넘으면 상위 요금으로 바뀌며, 상위 요금은 요청 전체에 적용되어 입력, 캐시 입력, 출력이 모두 두 배가 됩니다. 점진적으로 오르지 않고 계단식으로 바뀌므로, 기준을 한 토큰만 넘어도 요청 전체가 상위 요금으로 과금됩니다.

위 모델 표와 가격표의 MiniMax-M3 가격은 기준 미만 프롬프트에 적용되는 기본 요금입니다. 긴 대화 기록을 보내기 전에 전체 프롬프트 크기를 추정하세요.

MiniMax-M3.1-Flash에는 롱 컨텍스트 등급이 없습니다. 모델 표의 입력·출력 가격이 1,000,000토큰 컨텍스트 창까지 프롬프트 길이와 관계없이 적용됩니다. 캐시 입력은 1M 토큰당 $0.006입니다.

응답

스트리밍하지 않는 호출은 JSON 객체 하나를 반환합니다. 아래는 축약한 예시입니다.

{
"id": "msg_example",
"type": "message",
"role": "assistant",
"model": "MiniMax-M3",
"content": [
{
"type": "text",
"text": "Retry with exponential backoff and jitter, and make every handler idempotent."
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 19,
"output_tokens": 16
}
}

응답 필드

필드타입설명
idstring메시지 ID입니다. 지원과 과금 감사를 위해 요청 ID와 함께 기록하세요.
modelstring응답한 모델입니다.
content[]object[]콘텐츠 블록: thinking(추론하는 모델에서 답변 앞), text, tool_use.
content[].textstringtext 블록의 답변 텍스트입니다.
stop_reasonstring완전한 답변이면 end_turn, 도구 요청이면 tool_use, max_tokens에 도달하면 max_tokens, 중지 시퀀스와 일치하면 stop_sequence입니다.
usageobjectinput_tokens와 output_tokens. 추론은 출력으로 계산됩니다. 호출은 실제 토큰 사용량으로 계량됩니다.

스트리밍

"stream": true를 설정하세요. 스트림은 message_start로 시작해 message_stop으로 끝납니다. 그 사이의 블록은 content_block_start, content_block_delta, content_block_stop 이벤트로 도착하며, message_delta에 stop_reason이 담겨 있습니다.

  • 응답은 text/event-stream이며, 스트리밍하지 않으면 application/json입니다.
  • 텍스트는 text_delta 이벤트로 도착합니다. 추론 모델은 텍스트 블록 앞에 thinking_delta 이벤트가 있는 thinking 블록을 보냅니다. 도구 인수는 input_json_delta 이벤트로 도착합니다.
  • 모델 호출 전에 발생한 실패는 스트림 이벤트가 아니라 HTTP 상태와 함께 일반 JSON 오류로 반환됩니다.
  • 명시적인 시간 제한을 설정하고, 스트리밍 응답은 안전하게 다시 연결하세요.
event: message_start
data: {"type":"message_start","message":{"id":"msg_example","type":"message","role":"assistant","content":[],"usage":{"input_tokens":19,"output_tokens":1}}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Retry"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" with backoff"}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":16}}
event: message_stop
data: {"type":"message_stop"}

오류

오류 또는 증상원인해결 방법
text 블록이 비어 있고 stop_reason이 max_tokens임추론 모델이 max_tokens 예산을 추론에 모두 썼습니다.모델의 최대 출력 범위 안에서 max_tokens를 높이세요.
402 insufficient_credits잔액이 요청 가격보다 적습니다. 대개 max_tokens가 너무 크기 때문입니다.충전하거나 max_tokens를 낮추세요.
403 forbidden계정이 무료 크레딧 상태인데 모델이 무료 목록에 없거나, 모델이 키의 그룹 밖에 있습니다.충전하거나, 무료 모델을 쓰거나, 그룹에서 해당 모델에 접근할 수 있는 키를 사용하세요.
404 not_found알 수 없는 모델 ID이거나 이 키에서 사용할 수 없습니다.GET /v1/models로 사용 가능한 모델을 확인하세요.
429 rate_limit_exceeded계정 또는 무료 모델 한도에 도달했습니다.Retry-After만큼 기다린 뒤 재시도하세요.

HTTP 오류 요약

인증, 라우팅, 요청 속도 제한, 알 수 없는 모델 실패는 모델 호출 전에 BeatAPI 오류 형식(error.code, error.message, retryable, request_id)으로 응답합니다. 그 밖의 모든 실패는 Anthropic 형식 {"type": "error", "error": {"type", "message"}}를 유지하며, 코드는 error.type에 있고 요청 id는 message로 끝납니다. 오류를 참고하세요.

HTTP 상태코드조치
400bad_request, content_policy_violation요청이나 입력을 수정하세요. 그대로 다시 보내지 마세요.
401missing_api_key, invalid_api_key키를 확인하세요. 재시도하지 마세요.
402insufficient_credits충전하거나 키 한도를 높이세요. max_tokens가 너무 크면 발생할 수 있습니다.
403forbidden모델이 키의 그룹이나 IP 허용 목록 밖에 있거나, 무료 크레딧으로 이 모델을 호출할 수 없습니다.
404not_found알 수 없는 모델입니다. GET /v1/models로 사용 가능한 모델 목록을 확인하세요.
429rate_limit_exceededRetry-After 또는 retry_after_seconds만큼 기다린 뒤 백오프를 두고 재시도하세요.
500internal_error, temporary_error백오프를 적용해 한두 번 재시도하세요.
503model_unavailable, upstream_timeout, temporary_error백오프를 적용해 재시도하거나 다른 모델을 사용하세요.

전체 코드 표와 재시도 정책: 오류.

참고

  • MiniMax는 Chat Completions와 OpenAI Responses에서도 응답합니다.
  • 이 페이지는 MiniMax 텍스트 모델을 다룹니다. MiniMax H3 영상 모델은 영상 API를 사용합니다.
  • 모든 요청에 anthropic-version을 보내세요. thinking에 의존하지 마세요. 효과가 없습니다.
  • API 키는 신뢰할 수 있는 서버에 두고, 응답의 요청 ID를 기록하며, 429, 500, 503만 재시도하세요.

인증

AuthorizationBearer

API 키를 Authorization: Bearer <BEATAPI_API_KEY>로 보내세요.

요청

This endpoint expects an object.
modelenum필수

정확한 모델 ID입니다.

각 ID는 별개의 모델이며 다른 모델의 별칭이 아닙니다.

키로 GET /v1/models를 호출해 사용 가능한 모델을 확인하세요.

ID는 대소문자를 구분합니다. MiniMax-M3와 MiniMax-M3.1-Flash는 소문자로 바꾸지 말고 적힌 그대로 보내세요.

MiniMax-M3, MiniMax-M3.1-Flash

허용된 값:
max_tokensinteger필수

생성 토큰의 상한이며, 추론 토큰을 포함합니다.

게이트웨이는 이 값을 위 표에 있는 모델의 최대 출력과 비교하지 않습니다. 그 값 이하로 설정하세요.

max_tokens는 요청에 필요한 잔액을 추정하는 데도 쓰입니다. 실제 출력이 작더라도 값이 너무 크면 402 insufficient_credits로 거부될 수 있습니다. 필요한 만큼만 설정하세요.

추론 모델은 추론을 먼저 작성합니다. max_tokens가 너무 작으면 추론이 한도를 모두 써 버려 text 블록이 비고 stop_reason이 max_tokens가 됩니다. 둘 다 담을 여유를 두고, max_tokens가 보이면 값을 높이세요.

messageslist of objects필수

대화 내용이며 오래된 메시지부터 나열합니다. 각 메시지에는 role(user 또는 assistant)와 content(문자열 또는 블록 배열)가 있습니다.

텍스트 블록(text), 모델의 도구 요청(tool_use), 사용자가 보내는 결과(tool_result)가 적용됩니다.

tool_result 블록에는 답하는 대상인 tool_use 블록의 tool_use_id가 있어야 합니다.

systemstring or list of objects선택 사항

시스템 프롬프트입니다. 문자열 또는 텍스트 블록 배열이며, 텍스트 블록은 하나의 시스템 프롬프트로 합쳐집니다.

streamboolean선택 사항기본값 false

답변을 서버 전송 이벤트로 반환합니다. 아래 스트리밍 섹션을 참고하세요.

temperaturedouble선택 사항

샘플링 온도입니다. 이 값이나 top_p 중 하나만 바꾸세요.

top_pdouble선택 사항

누클리어스 샘플링 임계값입니다.

stop_sequenceslist of strings선택 사항

생성을 멈추는 시퀀스입니다.

toolslist of objects선택 사항

모델이 호출할 수 있는 도구 정의입니다. 각 도구는 name, description, input_schema로 적용됩니다. 모델은 tool_use 블록으로 답하며, 결과는 다음 user 메시지의 tool_result 블록으로 반환하세요.

tool_choiceobject선택 사항

모델이 tools를 사용하는 방식입니다. {"type": "auto"}는 모델이 판단하고(기본값), {"type": "any"}는 도구 중 하나를 호출하게 하며, {"type": "tool", "name": "..."}는 해당 도구를 호출하게 하고, {"type": "none"}은 도구를 호출하지 못하게 합니다. disable_parallel_tool_use: true는 답변당 호출을 하나로 제한합니다. tools가 없으면 무시됩니다. 이 설정은 모델에 전달되지만 모든 모델이 적용하지는 않습니다. 테스트(2026-10-15)에서 DeepSeek는 무시했고 Qwen은 any는 적용했지만 특정 도구 지정은 적용하지 않았으므로, tool_use 블록이 있다고 가정하지 말고 답변을 확인하세요.

thinkingobject선택 사항

효과가 없습니다. 추론을 켜거나 끄지 않으며 추론 예산도 정하지 않습니다. 기본적으로 추론하는 모델은 계속 추론하며, 추론 내용은 thinking 블록으로 반환됩니다.

응답

스트리밍하지 않는 호출은 JSON 객체 하나를 반환합니다. 아래는 축약한 예시입니다.

idstring선택 사항

메시지 ID입니다. 지원과 과금 감사를 위해 요청 ID와 함께 기록하세요.

modelstring선택 사항

응답한 모델입니다.

contentlist of objects선택 사항

콘텐츠 블록: thinking(추론하는 모델에서 답변 앞), text, tool_use.

stop_reasonstring선택 사항

완전한 답변이면 end_turn, 도구 요청이면 tool_use, max_tokens에 도달하면 max_tokens, 중지 시퀀스와 일치하면 stop_sequence입니다.

usageobject선택 사항

input_tokens와 output_tokens. 추론은 출력으로 계산됩니다. 호출은 실제 토큰 사용량으로 계량됩니다.

오류

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error