Messages
MarkdownHet Anthropic Messages-formaat. Claude Code, Anthropic SDK en veel agents gebruiken dit.
Volledige gids
https://api.ailoot.ai/v1/messagescurl https://api.ailoot.ai/v1/messages \
-H "x-api-key: $AILOOT_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hallo! Wat kun je?"}]
}' import anthropic
import os
client = anthropic.Anthropic(max_retries=0,
base_url="https://api.ailoot.ai", # zonder /v1: de SDK voegt zelf /v1/messages toe
api_key=os.environ["AILOOT_API_KEY"],
)
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Leg in twee zinnen uit wat een API is."}],
)
print(msg.content[0].text)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ maxRetries: 0,
baseURL: "https://api.ailoot.ai", // zonder /v1
apiKey: process.env.AILOOT_API_KEY,
});
const msg = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Leg in twee zinnen uit wat een API is." }],
});
console.log(msg.content[0].type === "text" ? msg.content[0].text : msg.content);{
"id": "msg_01H…",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5-5",
"content": [
{ "type": "text", "text": "Hallo! Ik kan code schrijven en uitleggen, vragen beantwoorden…" }
],
"stop_reason": "end_turn",
"usage": { "input_tokens": 14, "output_tokens": 52 }
}Authenticatie
- x-api-keyheaderverplicht
Sleutel
sk-…. OokAuthorization: Bearer sk-…kan worden gebruikt — dat doet Claude Code metANTHROPIC_AUTH_TOKEN. - anthropic-versionheaderoptioneel
API-versie, bijvoorbeeld
2023-06-01. SDK’s sturen die zelf mee.
Verzoekbody
- modelstringverplicht
Model-ID met het Messages-formaat — 776 identificatoren: Claude, maar ook GPT, Gemini, DeepSeek, Qwen en andere.
- messagesarrayverplicht
Berichten
userenassistant;content— een string of blokken (text,image,tool_use,tool_result). - max_tokensintegerverplicht
Maximumaantal antwoordtokens. Telt mee in de reservering; bij onvoldoende saldo voor de volledige limiet verlaagt Ailoot deze, maar niet tot onder 256 (1025 met ingeschakeld redeneren), en meldt de nieuwe limiet in de header
X-Ailoot-Max-Tokens-Capped. - systemstring | arrayoptioneel
Systeeminstructie.
- streambooleanoptioneel
Een SSE-gebeurtenisstream (
message_start,content_block_delta, …,message_stop). Betaalde tekst komt na de kostenberekening als één blok binnen. - temperaturenumberoptioneel
Willekeurigheid van het antwoord van 0 tot 1.
- toolsarrayoptioneel
Tools:
name,description,input_schema. - tool_choiceobjectoptioneel
auto,any,toolofnone. - thinkingobjectoptioneel
{"type": "enabled", "budget_tokens": N}— redeneren bij modellen die dit ondersteunen. - stop_sequencesarrayoptioneel
Strings waarbij de generatie stopt.
Antwoord
- contentarray
Antwoordblokken:
text,thinking,tool_use. - stop_reasonstring
end_turn,max_tokens,stop_sequenceoftool_use. - usageobject
input_tokens,output_tokens, voor de cache:cache_read_input_tokensencache_creation_input_tokens.