Gateway API
Messages
Endpoint kompatibel Anthropic — POST /v1/messages dan POST /v1/messages/count_tokens.
POST /v1/messages menerima body persis seperti Messages API milik Anthropic. Cocok untuk SDK Anthropic, Claude Code, dan tool yang berbicara dialek ini.
Request
curl http://localhost:8080/v1/messages \
-H "x-api-key: sk_tr_..." \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4",
"max_tokens": 1024,
"messages": [
{ "role": "user", "content": "Halo!" }
]
}'Header Authorization: Bearer sk_tr_... juga diterima. Respons dan error mengikuti envelope Anthropic:
{
"id": "msg_...",
"type": "message",
"role": "assistant",
"content": [{ "type": "text", "text": "Hai!" }],
"usage": { "input_tokens": 12, "output_tokens": 5 }
}Cross-dialect
Model OpenAI bisa dipanggil lewat endpoint ini — router menerjemahkan request ke dialek tujuan dan merender ulang responsnya ke format Anthropic:
curl http://localhost:8080/v1/messages \
-H "x-api-key: sk_tr_..." \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Halo!" }]
}'Hitung token
POST /v1/messages/count_tokens menjawab secara lokal (tanpa manggil provider) dengan estimasi ±4 karakter per token:
curl http://localhost:8080/v1/messages/count_tokens \
-H "x-api-key: sk_tr_..." \
-H "Content-Type: application/json" \
-d '{ "model": "anthropic/claude-sonnet-4", "messages": [] }'{ "input_tokens": 42 }Angka ini estimasi — jangan pakai untuk penagihan, cukup untuk menjawab pertanyaan "muat tidak" sebelum request sungguhan.