Anthropic-compatible

POST /v1/messages theo chuẩn Anthropic Messages. SDK Anthropic hoạt động khi đổi baseURL thành https://YOUR_DOMAIN.

Header xác thực

Chấp nhận cả x-api-key: sk_live_… (SDK Anthropic dùng mặc định) và Authorization: Bearer sk_live_…. Header anthropic-version được chấp nhận và bỏ qua an toàn.

Tham số

Tham sốBắt buộcGhi chú
modelModel id công khai
max_tokensTheo chuẩn Anthropic
messagesRole user/assistant
systemKhôngString hoặc mảng block
streamKhôngtrue ⇒ SSE
temperature, top_p, top_kKhôngTheo chuẩn
stop_sequencesKhôngTối đa 8
tools, tool_choiceKhôngChỉ model hỗ trợ tool use
thinkingKhôngChỉ model hỗ trợ reasoning; nền tảng tự chuẩn hóa giá trị

Response

200 OK
{
  "id": "msg_...",
  "type": "message",
  "role": "assistant",
  "model": "claude-haiku-4-5",
  "content": [{ "type": "text", "text": "..." }],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": { "input_tokens": 10, "output_tokens": 4 }
}

Khi gửi stream: false, bạn luôn nhận một JSON hoàn chỉnh với Content-Type: application/json.

Streaming

text/event-stream
event: message_start
data: {"type":"message_start","message":{...}}

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":"Xin"}}

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":4}}

event: message_stop
data: {"type":"message_stop"}

Đếm token

curl
curl https://YOUR_DOMAIN/v1/messages/count_tokens \
  -H "x-api-key: sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-haiku-4-5",
    "messages": [{"role": "user", "content": "Xin chào"}]
  }'

Endpoint này không sinh completion nên không tính vào hạn mức token; vẫn tính vào giới hạn tần suất.

Claude Code

Trỏ Claude Code vào nền tảng bằng hai biến môi trường:

Claude Code
export ANTHROPIC_BASE_URL="https://YOUR_DOMAIN"
export ANTHROPIC_AUTH_TOKEN="sk_live_YOUR_KEY"

claude
Nếu bạn đã thêm /v1 vào base URL

Không sao — nền tảng chấp nhận cả /v1/v1/messages. Nhưng cấu hình đúng là không thêm /v1 cho SDK Anthropic.