POST /v1/messages
API Anthropic Messages pour le chat, le streaming, la vision, les outils, la mise en cache et la réflexion.
POST /v1/messages
Le principal point final compatible avec Anthropic. Il prend en charge le streaming, la mise en cache rapide, la vision, l'utilisation d'outils et la réflexion étendue lorsqu'il est pris en charge par le modèle sélectionné.
Authentification
x-api-key: mg_live_...\nanthropic-version: 2023-06-01\ncontent-type: application/json
Demande minimale
curl https://api.model-gate.com/v1/messages \
-H "x-api-key: mg_live_..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-4.8",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
Demande avancée
{
"model": "claude-opus-4.8",
"max_tokens": 4096,
"system": "You are a coding assistant.",
"thinking": {"type": "enabled", "budget_tokens": 8000},
"messages": [{"role": "user", "content": "Find the bug in this code."}],
"tools": [{
"name": "search_files",
"description": "Search project files",
"input_schema": {"type": "object", "properties": {"q": {"type": "string"}}}
}]
}
Vision
{
"model": "claude-opus-4.8",
"max_tokens": 1024,
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What is shown in this image?"},
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "..."}}
]
}]
}
Mise en cache rapide
{
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Large reusable context...", "cache_control": {"type": "ephemeral"}},
{"type": "text", "text": "New question"}
]
}]
}
Streaming
Ensemble "stream": true. La réponse est renvoyée sous forme d'événements envoyés par le serveur.
Réponse
{
"id": "msg_...",
"type": "message",
"role": "assistant",
"model": "claude-opus-4.8",
"content": [{"type": "text", "text": "Hello!"}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 12, "output_tokens": 8}
}
La structure des requêtes et des réponses suit l'API Anthropic Messages. Les SDK Anthropic existants nécessitent normalement uniquement le base_url changement.