Messages
MarkdownFormat Anthropic Messages, utilisé par Claude Code, le SDK Anthropic et de nombreux agents.
Guide complet
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": "Bonjour ! Que sais-tu faire ?"}]
}' import anthropic
import os
client = anthropic.Anthropic(max_retries=0,
base_url="https://api.ailoot.ai", # sans /v1 : le SDK ajoutera lui-même /v1/messages
api_key=os.environ["AILOOT_API_KEY"],
)
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Explique en deux phrases ce qu’est une API."}],
)
print(msg.content[0].text)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ maxRetries: 0,
baseURL: "https://api.ailoot.ai", // sans /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: "Explique en deux phrases ce qu’est une API." }],
});
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": "Bonjour ! Je sais écrire et expliquer du code, répondre à des questions…" }
],
"stop_reason": "end_turn",
"usage": { "input_tokens": 14, "output_tokens": 52 }
}Authentification
- x-api-keyheaderobligatoire
Clé
sk-…. Vous pouvez aussi utiliserAuthorization: Bearer sk-…— c’est ce que fait Claude Code avecANTHROPIC_AUTH_TOKEN. - anthropic-versionheaderfacultatif
Version de l’API, par exemple
2023-06-01. Les SDK l’envoient automatiquement.
Corps de la requête
- modelstringobligatoire
ID d’un modèle compatible avec le format Messages. 776 identifiants sont disponibles : Claude, mais aussi GPT, Gemini, DeepSeek, Qwen et d’autres.
- messagesarrayobligatoire
Messages
useretassistant;content— chaîne ou blocs (text,image,tool_use,tool_result). - max_tokensintegerobligatoire
Nombre maximal de tokens de réponse. Il entre dans la réservation. Si le solde ne couvre pas toute la limite, Ailoot la réduit, sans descendre sous 256 (1025 avec le raisonnement activé), et indique la nouvelle limite dans l’en-tête
X-Ailoot-Max-Tokens-Capped. - systemstring | arrayfacultatif
Instruction système.
- streambooleanfacultatif
Flux d’événements SSE (
message_start,content_block_delta, …,message_stop). Le texte facturé arrive en un seul bloc après le calcul du coût. - temperaturenumberfacultatif
Degré d’aléatoire de la réponse, de 0 à 1.
- toolsarrayfacultatif
Outils :
name,description,input_schema. - tool_choiceobjectfacultatif
auto,any,toolounone. - thinkingobjectfacultatif
{"type": "enabled", "budget_tokens": N}— raisonnement pour les modèles qui le prennent en charge. - stop_sequencesarrayfacultatif
Chaînes qui interrompent la génération.
Réponse
- contentarray
Blocs de réponse :
text,thinking,tool_use. - stop_reasonstring
end_turn,max_tokens,stop_sequenceoutool_use. - usageobject
input_tokens,output_tokens, pour le cache :cache_read_input_tokensetcache_creation_input_tokens.