← 문서 목록

엔드포인트

메시지 생성

POST/v1/messages

모델 불러오는 중…

본문

modelstring필수
모델 ID
messagesarray필수
role 은 user / assistant. content 는 문자열 또는 블록 배열(text·image·tool_use·tool_result·thinking·document)
systemstring | array선택
문자열 또는 text 블록 배열
temperaturenumber선택
0–1
top_pnumber선택
0–1
top_kinteger선택
양의 정수
stop_sequencesstring[]선택
최대 8개
streamboolean선택
기본 false
toolsarray선택
{name, description, input_schema}
tool_choiceobject선택
{"type":"auto"|"any"|"none"} 또는 {"type":"tool","name":"..."}
metadataobject선택
{"user_id": "..."}
thinkingobject선택
{"type":"enabled","budget_tokens":N} (N ≥ 1024) · {"type":"adaptive"} · {"type":"disabled"}
output_configobject선택
effort(low–max, adaptive 또는 thinking 생략과 함께) · format({"type":"json_schema","schema":{...}}, 구조화 출력 지원 모델만)
everyaisobject선택
게이트웨이 캐싱 옵션

블록에 cache_control 을 직접 붙이면 그대로 전달됩니다(프롬프트 캐싱 참고). document·이미지 tool_result는 400입니다. metadata.user_id는 Anthropic metadata로 전달됩니다. 이미지 블록은 source.type: "base64"로 보내세요(url 소스는 Chat 의 https URL 과 같은 제한). 강제 도구 호출(any·tool)을 거부하는 모델은 Chat 과 같습니다.

도구를 이어 쓸 때는 응답 content 블록 전체(thinking 포함)를 그대로 되돌려 보내세요 — Gemini 의 도구 서명은 thinking 블록 signature에 실려 왕복합니다. stop_reason: "stop_sequence"와 stop_sequence는 공급자가 일치한 문자열을 알려 주는 경로(Claude·vLLM 기반)에서만 채워지고, Gemini·GPT 는 stop_sequences로 멈춰도 end_turn입니다.

모델 옵션

선택한 모델에서 되는 값은 위 표에서 확인하세요(API에서는 GET /v1/models의 capabilities·limits·parameter_constraints). 지원하지 않는 값을 보냈을 때 값을 조정하는지 400으로 거부하는지는 모델 선택과 접근 정책의 파라미터 정책을 보세요.

수동 thinking을 지원하는 모델의 예산은 budget_tokens ≥ 1024입니다. 웹 검색은 Chat 전용입니다.

POST /v1/messages/count_tokens

요청 전 입력 토큰 수를 추정합니다. Claude Code 가 자동으로 호출하는 엔드포인트입니다.

  • 무과금 — 크레딧이 차감되지 않습니다.
  • 토큰 추정치이며 실제 사용량과 다를 수 있습니다.
  • 요청 본문은 /v1/messages 와 동일한 형태를 받습니다.
json
{
  "input_tokens": 1234
}
문의접수