Messages
MarkdownDas Anthropic-Messages-Format. Es wird von Claude Code, dem Anthropic SDK und vielen Agenten verwendet.
Vollständiger Leitfaden
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! Was kannst du?"}]
}' import anthropic
import os
client = anthropic.Anthropic(max_retries=0,
base_url="https://api.ailoot.ai", # ohne /v1: Das SDK ergänzt /v1/messages selbst
api_key=os.environ["AILOOT_API_KEY"],
)
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Erkläre in zwei Sätzen, was eine API ist."}],
)
print(msg.content[0].text)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ maxRetries: 0,
baseURL: "https://api.ailoot.ai", // ohne /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: "Erkläre in zwei Sätzen, was eine API ist." }],
});
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! Ich kann Code schreiben und erklären, Fragen beantworten…" }
],
"stop_reason": "end_turn",
"usage": { "input_tokens": 14, "output_tokens": 52 }
}Authentifizierung
- x-api-keyheadererforderlich
Schlüssel
sk-…. Auch möglich:Authorization: Bearer sk-…— so verwendet es Claude Code mitANTHROPIC_AUTH_TOKEN. - anthropic-versionheaderoptional
API-Version, zum Beispiel
2023-06-01. SDKs senden sie automatisch.
Anfragekörper
- modelstringerforderlich
ID eines Modells mit Messages-Format — 776 IDs: Claude sowie GPT, Gemini, DeepSeek, Qwen und weitere.
- messagesarrayerforderlich
Nachrichten
userundassistant;content— als Zeichenfolge oder Blöcke (text,image,tool_use,tool_result). - max_tokensintegererforderlich
Maximale Anzahl Antworttokens. Wird in die Reservierung einbezogen; reicht das Guthaben nicht für das gesamte Limit, senkt Ailoot es, jedoch nicht unter 256 (1025 bei aktiviertem Reasoning), und teilt das neue Limit im Header mit:
X-Ailoot-Max-Tokens-Capped. - systemstring | arrayoptional
Systemanweisung.
- streambooleanoptional
SSE-Ereignisstream (
message_start,content_block_delta, …,message_stop). Kostenpflichtiger Text wird nach der Kostenberechnung als ein Block ausgegeben. - temperaturenumberoptional
Zufälligkeit der Antwort von 0 bis 1.
- toolsarrayoptional
Werkzeuge:
name,description,input_schema. - tool_choiceobjectoptional
auto,any,toolodernone. - thinkingobjectoptional
{"type": "enabled", "budget_tokens": N}— Reasoning bei Modellen, die dies unterstützen. - stop_sequencesarrayoptional
Zeichenfolgen, bei denen die Generierung endet.
Antwort
- contentarray
Antwortblöcke:
text,thinking,tool_use. - stop_reasonstring
end_turn,max_tokens,stop_sequenceodertool_use. - usageobject
input_tokens,output_tokens, für den Cachecache_read_input_tokensundcache_creation_input_tokens.