Skip to main content
POST
Claude 네이티브 형식

소개

Claude의 네이티브 메시지 API로, Claude Code와 같은 Anthropic 네이티브 클라이언트에 적합합니다. 이 API는 Anthropic 사양을 따르며 Extended Thinking, 도구 호출 등 Claude 모델의 전체 기능을 제공합니다.
OpenAI 호환 클라이언트(예: OpenAI SDK)를 사용하는 경우 /v1/chat/completions 엔드포인트 사용을 권장합니다.

인증

string
필수
Bearer 토큰, 예: Bearer sk-xxxxxxxxxx

요청 매개변수

string
필수
Claude 모델 식별자. 지원 모델:
  • claude-fable-5 - Claude Fable 5 (최신, 최고 성능)
  • claude-opus-5 - Claude Opus 5 (최신, 복잡한 에이전트 및 코딩 작업)
  • claude-sonnet-5 - Claude Sonnet 5 (속도와 지능의 균형)
  • claude-opus-4-8 - Claude Opus 4.8
  • claude-opus-4-7 - Claude Opus 4.7
  • claude-opus-4-6 - Claude Opus 4.6
  • claude-sonnet-4-6 - Claude Sonnet 4.6 (균형 잡힌 성능)
  • claude-opus-4-5-20251101 - Claude Opus 4.5
  • claude-haiku-4-5-20251001 - Claude Haiku 4.5 (가장 빠름)
  • claude-sonnet-4-5-20250929 - Claude Sonnet 4.5
  • claude-sonnet-4-20250514 - Claude Sonnet 4
  • 기타 Claude 시리즈 모델
array
필수
대화 메시지 목록. 각 항목은 role(user/assistant)과 content를 포함합니다. content는 문자열 또는 미디어 콘텐츠 배열일 수 있습니다.
number
필수
생성할 최대 토큰 수. 0보다 커야 합니다.
string|array
시스템 프롬프트. 문자열 또는 미디어 콘텐츠 배열로 지정할 수 있습니다. 모델의 동작과 역할을 설정하는 데 사용됩니다.
number
기본값:"1.0"
무작위성 제어, 0-1. 값이 높을수록 응답이 더 무작위적입니다. 확장 사고 사용 시 1.0으로 설정하는 것을 권장합니다.
number
기본값:"1.0"
Nucleus 샘플링 매개변수, 0-1. 생성 다양성을 제어합니다. 확장 사고 사용 시 0으로 설정하는 것을 권장합니다.
number
Top-K 샘플링 매개변수. 일부 모델에서만 지원됩니다.
boolean
기본값:"false"
스트리밍 출력 활성화 여부. SSE 형식의 데이터 청크를 반환합니다. 확장 사고 사용 시 활성화를 권장합니다.
array
중지 시퀀스 목록. 모델이 이 시퀀스를 생성하면 생성이 중단됩니다.
array
도구 정의 목록. 함수 도구와 웹 검색 도구를 지원합니다.
object
도구 선택 전략. 모델이 도구를 사용하는 방식을 제어합니다.
object
확장 사고 설정. Claude의 심층 추론 기능을 활성화합니다.
display의 기본값은 모델마다 다릅니다: Claude Fable 5, Opus 5, Sonnet 5, Opus 4.8, Opus 4.7은 "omitted"가 기본값이며, Claude Opus 4.6, Sonnet 4.6 및 이전 모델은 "summarized"가 기본값입니다. 전자에서 사고 과정을 사용자에게 보여주려면 반드시 "display": "summarized"명시적으로 설정해야 하며, 그렇지 않으면 사고 내용이 비어 있습니다.
object
출력 설정. 모델의 사고 깊이와 토큰 소비를 제어합니다.
이 매개변수는 응답의 모든 토큰(본문, 도구 호출, 사고)에 영향을 주므로 사고를 활성화하지 않아도 적용됩니다.지원 단계는 모델마다 다릅니다: "xhigh"는 Claude Fable 5, Opus 5, Opus 4.8, Opus 4.7, Sonnet 5에서만 지원되며, Claude Sonnet 4.5 및 이전 모델은 이 매개변수 자체를 지원하지 않습니다.
Claude Opus 5에서는 effort"xhigh" 또는 "max"일 때 사고를 비활성화할 수 없습니다. 해당 단계에서 "thinking": {"type": "disabled"}를 함께 전달하면 400 오류가 반환됩니다. 사고를 끄려면 effort"high" 이하로 설정하세요.
object
추적 및 디버깅용 요청 메타데이터.
array
MCP(Model Context Protocol) 서버 설정.
object
컨텍스트 관리 설정. 대화 컨텍스트 처리 방식을 제어합니다.
object
자동 캐싱을 활성화합니다. 요청 본문 최상위에 지정하면 시스템이 마지막 캐시 가능 블록에 브레이크포인트를 자동으로 적용하고, 대화가 길어짐에 따라 자동으로 뒤로 이동시킵니다. 별도의 표시를 관리할 필요가 없습니다. 프롬프트 캐싱 참조.
레거시 Amazon Bedrock 통합(InvokeModel / Converse, Opus 4.6 이하 모델)은 최상위 cache_control지원하지 않으며 400을 반환합니다. 해당 모델에서는 블록 단위의 명시적 브레이크포인트를 사용하세요. 플랫폼별 지원 현황 참조.

프롬프트 캐싱

프롬프트 캐싱을 사용하면 자주 사용하는 컨텍스트 콘텐츠를 캐시하여 비용을 크게 절감하고 응답 속도를 향상시킬 수 있습니다. 활성화 방법은 두 가지이며, 단독으로도 조합해서도 사용할 수 있습니다.

캐시 제어 매개변수

두 방식의 필드 구조는 동일합니다. 필드 설명:

자동 캐싱(최상위 cache_control)

cache_control을 요청 본문 루트에 그대로 넣으면 됩니다. 콘텐츠 블록에 별도 표시를 할 필요가 없습니다.
브레이크포인트는 대화가 길어지면 자동으로 뒤로 이동합니다. 매 요청마다 마지막 캐시 가능 블록까지 캐시하고, 이전 콘텐츠는 캐시에서 읽습니다.

플랫폼별 지원 현황

자동 캐싱(최상위 cache_control)은 레거시 Amazon Bedrock 통합을 제외한 모든 플랫폼에서 사용할 수 있습니다. 즉 AWS에서의 지원 여부는 어떤 Bedrock 통합을 사용하는지에 따라 달라지며, 이는 모델에 의해 결정됩니다. 모델별 대조:
특정 모델이 실제로 어떤 경로를 사용하는지 확실하지 않다면 동일한 프리픽스로 두 번 요청한 뒤 두 번째 응답의 usage.cache_read_input_tokens가 0보다 큰지 확인하세요.

명시적 브레이크포인트(블록 단위 cache_control)

system 배열 요소 또는 messagescontent 배열 요소 내부에 지정합니다.

두 방식 조합하기

자동 캐싱과 명시적 브레이크포인트는 함께 사용할 수 있습니다. 대표적인 패턴은 명시적 브레이크포인트로 시스템 프롬프트를 고정하고, 길어지는 대화 부분은 자동 캐싱에 맡기는 것입니다.
조합 시 규칙 및 경계 상황:
  • 자동 캐싱은 4개의 브레이크포인트 슬롯 중 1개를 사용합니다
  • 명시적 브레이크포인트가 이미 4개인 상태에서 최상위 cache_control을 보내면 400을 반환합니다(남은 슬롯 없음)
  • 마지막 블록에 **동일한 ttl**의 명시적 cache_control이 이미 있으면 자동 캐싱은 무동작이며 슬롯을 추가로 쓰지 않습니다
  • 마지막 블록에 **다른 ttl**의 명시적 cache_control이 있으면 400을 반환합니다
  • 마지막 블록이 브레이크포인트 대상으로 적합하지 않으면 시스템이 앞쪽으로 되짚어 가장 가까운 적합한 블록을 찾고, 없으면 캐싱을 건너뜁니다(오류 없음)

캐싱 메커니즘

  • 캐시 브레이크포인트: 요청당 최대 4개의 콘텐츠 블록을 지정할 수 있습니다. 각 브레이크포인트는 처음부터 해당 블록까지의 전체 프리픽스를 캐시 항목으로 각각 기록합니다
  • 캐시 적중: 브레이크포인트 지점에서 프리픽스를 비교하며, 일치하지 않으면 한 블록씩 앞으로 되짚어 탐색합니다. 되짚기 범위는 최대 20개 블록이며, 이 범위를 벗어난 캐시는 적중하지 않으므로 더 앞쪽에 브레이크포인트를 추가하는 것이 좋습니다
  • 캐시 임계값: 모델별 최소 캐시 가능 길이보다 짧은 콘텐츠는 캐시되지 않습니다(오류 없이 일반 입력으로 처리됨). 아래 표 참조
  • 캐시 유효 기간: 5분(기본값) 또는 1시간
  • 비용: 캐시 읽기는 일반 입력 가격의 10%(90% 저렴)이며, 캐시 쓰기에는 할증이 있습니다 — 5분 캐시는 1.25배, 1시간 캐시는 2배

모델별 최소 캐시 가능 길이

사용 사례

  1. 긴 문서 분석: system에 대용량 문서를 캐시하고 여러 질문 수행
  2. 코드베이스 이해: 코드 컨텍스트를 캐시하여 다중 턴 코드 분석
  3. 지식 베이스 Q&A: 지식 베이스 콘텐츠를 캐시하여 빠른 조회
  4. 다중 턴 대화: 대화 기록을 캐시하여 컨텍스트 일관성 유지

기본 예제

고급 기능

시스템 프롬프트

시스템 프롬프트는 문자열 또는 미디어 콘텐츠 배열로 설정할 수 있습니다:

확장 사고

Claude는 확장 사고를 지원하여 모델이 심층 추론을 수행할 수 있습니다. 활성화하면 모델이 최종 답변을 생성하기 전에 내부적으로 사고합니다.
  • budget_tokens는 1024보다 커야 합니다
  • 확장 사고 사용 시 temperature: 1.0, top_p: 0 설정을 권장합니다
  • 사고 과정을 보려면 스트리밍 출력(stream: true)을 활성화해야 합니다

도구 호출

함수 도구와 웹 검색 도구를 지원합니다:

tool_choice 매개변수 상세

tool_choice는 모델이 도구를 사용하는 방식을 제어합니다: 예제:

멀티모달 입력 (이미지)

메시지에 이미지를 포함할 수 있습니다:

프롬프트 캐싱

자주 사용하는 컨텍스트 콘텐츠를 캐시하면 비용을 크게 절감하고 응답 속도를 향상시킬 수 있습니다.
첫 번째 요청 응답:
5분 이내 두 번째 요청 (다른 질문, 동일 system):
캐시 핵심 사항:
  • 캐싱이 적용되려면 콘텐츠가 모델별 최소 캐시 가능 길이 이상이어야 합니다(모델에 따라 512~4,096 토큰, 위 표 참조)
  • ttl을 생략하면 캐시는 5분간 유효합니다
  • ttl: "1h"로 지정하면 캐시는 1시간 유효합니다
  • 캐시 읽기 비용은 일반 입력보다 90% 저렴하며, 캐시 쓰기에는 할증이 있습니다(5분 1.25배, 1시간 2배)
  • 요청당 최대 4개 블록을 지정할 수 있으며, 각 브레이크포인트가 각각 캐시 항목을 기록합니다
  • 캐시는 정확한 콘텐츠 일치를 기반으로 하며, 변경 시 캐시가 무효화됩니다
모범 사례:
  • 변경되지 않는 긴 컨텍스트(문서, 코드베이스 등)를 system에 캐싱 활성화와 함께 배치
  • 장기적으로 안정적인 콘텐츠에는 1시간 캐시(ttl: "1h") 사용
  • 자주 변경되는 콘텐츠에는 기본 5분 캐시(ttl 생략) 사용
  • 다중 턴 대화에서 대화 기록 캐시
  • cache_creation_input_tokenscache_read_input_tokens를 모니터링하여 비용 최적화

응답 형식

캐시 사용 시 usage 필드:
  • input_tokens: 현재 요청의 비캐시 입력 토큰
  • cache_creation_input_tokens: 최초 캐시된 토큰 (첫 요청에만 존재)
  • cache_read_input_tokens: 캐시에서 읽은 토큰 (캐시 히트 시 존재)
  • output_tokens: 생성된 출력 토큰

오류 처리

시스템은 업스트림 Claude API 오류를 처리하고 표준화된 오류 응답 형식을 반환합니다. 오류 응답 예제:

/v1/chat/completions와 비교

  • Claude Code 또는 기타 Anthropic 네이티브 클라이언트를 사용하는 경우 /v1/messages 엔드포인트 사용을 권장합니다
  • OpenAI SDK를 사용하거나 OpenAI 형식 호환이 필요한 경우 /v1/chat/completions 엔드포인트 사용을 권장합니다
  • 두 엔드포인트의 기능은 본질적으로 동일하며, 주요 차이는 요청/응답 형식에 있습니다

참고 사항

  • max_tokens는 필수 매개변수이며 0보다 커야 합니다
  • messages 배열은 비어 있을 수 없습니다
  • 확장 사고 사용 시 budget_tokens는 1024보다 커야 합니다
  • 확장 사고는 사고 과정을 보려면 스트리밍 출력이 필요합니다
  • 도구 호출은 여러 라운드의 상호작용이 필요합니다: 1라운드에서 도구 호출 요청 반환, 2라운드에서 도구 실행 결과 반환
  • 이미지 입력은 base64 인코딩이 필요합니다
  • 스트리밍 출력을 사용하면 첫 토큰 응답 시간과 상호작용 경험을 개선할 수 있습니다
  • 도구 호출에는 모델 응답 차단을 방지하기 위한 적절한 타임아웃 및 재시도 메커니즘이 있어야 합니다
  • 확장 사고는 복잡한 문제에 대한 추론 품질을 크게 향상시킬 수 있습니다

관련 리소스

Chat Completions (OpenAI 호환)

OpenAI 호환 채팅 엔드포인트 문서 보기

모델 목록

지원되는 모든 모델 정보 보기