Anthropic Messages
POST /v1/messages menggunakan format Anthropic Messages, sehingga Anthropic SDK dan tool yang dibangun di atasnya — termasuk Claude Code — berfungsi hanya dengan mengganti base URL dan key. Setiap model teks meresponsnya, bukan hanya Claude.
Request
Anthropic SDK menambahkan /v1/messages sendiri, sehingga base URL-nya tidak memiliki /v1:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://api.inferray.com",
apiKey: process.env.INFERRAY_API_KEY,
});
const message = await client.messages.create({
model: "claude-opus-4-8",
max_tokens: 1024,
system: "You are a concise assistant.",
messages: [{ role: "user", content: "Explain idempotency in one paragraph." }],
});
console.log(message.content[0].text);
import os
import anthropic
client = anthropic.Anthropic(base_url="https://api.inferray.com", api_key=os.environ["INFERRAY_API_KEY"])
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Explain idempotency in one paragraph."}],
)
print(message.content[0].text)
curl https://api.inferray.com/v1/messages \
-H "x-api-key: $INFERRAY_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-8",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Explain idempotency in one paragraph."}]
}'
Key dimasukkan di x-api-key atau Authorization: Bearer; keduanya bisa digunakan.
Yang tetap berlaku
Request dan response mengikuti format Anthropic: max_tokens wajib diisi, system adalah field tingkat atas, dan konten berupa daftar blok bertipe.
- Tools —
toolsdenganinput_schema, bloktool_usedi balasan, dan bloktool_resultdi giliran Anda berikutnya. Lihat tool calling. - Gambar dan PDF — blok
imagedandocument, sebagai sumber base64 atau URL, pada model yang mendukungnya. Lihat vision dan dokumen. - Extended thinking —
thinkingdenganbudget_tokenspada model yang mendukung reasoning. Lihat reasoning. - Prompt caching —
cache_controlpada blok konten. Lihat prompt caching. - Streaming —
stream: truemengembalikan event stream Anthropic (message_start,content_block_delta,message_stop). Lihat streaming.
Data penggunaan dikembalikan dalam field milik Anthropic: input_tokens, output_tokens, cache_read_input_tokens, dan cache_creation_input_tokens.
Model non-Claude
Model teks apa pun dapat dipanggil di sini — gpt-5.5, gemini-3.6-flash, kimi-k2.6 — dan inilah yang memungkinkan Claude Code serta tool native Anthropic lainnya menggunakannya. Fitur yang tidak dimiliki suatu model, misalnya extended thinking pada model yang tidak mendukung reasoning, akan ditolak atau diabaikan, bukan ditiru.
Error
Error dikembalikan dalam format Anthropic, {"type": "error", "error": {"type": "...", "message": "..."}}, sehingga SDK memunculkan exception seperti biasa. Arti setiap status sama seperti di tempat lain — lihat error.