TokenCode est compatible avec le protocole Anthropic Messages API. Vous pouvez utiliser directement le SDK Anthropic ou tout client compatible Claude pour vous connecter.
https://tokencode.dev
Tous les points de terminaison nécessitent une authentification :
Point de terminaison Messages compatible Anthropic Claude. Prend en charge les modèles Claude ainsi que d'autres modèles via la conversion de protocole.
curl https://tokencode.dev/v1/messages \
-H "x-api-key: sk-your-api-key" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Expliquez l'informatique quantique"}
]
}'
Paramètres de la requête :
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| model | string | Oui | ID du modèle (ex. claude-sonnet-4-6) |
| messages | array | Oui | Tableau d'objets de message |
| max_tokens | integer | Oui | Nombre maximal de Token générés |
| stream | boolean | Non | Activer les réponses en streaming |
| temperature | number | Non | Température d'échantillonnage (0-1) |
| top_p | number | Non | Probabilité de nucleus sampling |
| top_k | integer | Non | Échantillonnage Top-K |
| stop_sequences | array | Non | Séquences d'arrêt |
| system | string/array | Non | Prompt système |
| tools | array | Non | Définitions d'outils |
| tool_choice | object | Non | Stratégie d'appel d'outil |
Exemple de réponse :
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "L'informatique quantique est une discipline qui exploite les principes de la mécanique quantique..."
}
],
"model": "claude-sonnet-4-6",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 25,
"output_tokens": 128
}
}
Lorsque "stream": true est défini, la réponse utilise le format SSE avec des types d'événements conformes au protocole Anthropic natif :
event: message_start
data: {"type":"message_start","message":{"id":"msg_abc123","type":"message","role":"assistant","content":[],"model":"claude-sonnet-4-6","usage":{"input_tokens":25,"output_tokens":0}}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"L'informatique"}}
event: message_stop
data: {"type":"message_stop"}
Lorsque vous appelez un modèle non-Claude via le point de terminaison Anthropic, TokenCode effectue automatiquement la conversion de protocole :
Vous pouvez ainsi appeler des modèles OpenAI, Gemini et d'autres via ce point de terminaison depuis des clients natifs Anthropic comme Claude Code, sans aucune adaptation nécessaire.
import anthropic
client = anthropic.Anthropic(
api_key="sk-your-api-key",
base_url="https://tokencode.dev"
)
# Appeler un modèle Claude
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Bonjour"}]
)
# Appeler un modèle OpenAI — conversion automatique de protocole
message = client.messages.create(
model="gpt-5.5",
max_tokens=1024,
messages=[{"role": "user", "content": "Bonjour"}]
)
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "sk-your-api-key",
baseURL: "https://tokencode.dev",
});
// Appeler un modèle Claude
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "Bonjour" }],
});
Prise en charge de l'entrée d'images (Vision) :
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": "<base64-encoded-image>"
}
},
{
"type": "text",
"text": "Décrivez cette image"
}
]
}
]
)
Les réponses d'erreur suivent le format d'erreur Anthropic :
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "max_tokens: required"
}
}
| Code HTTP | Signification |
|---|---|
| 400 | Paramètres de requête invalides |
| 401 | Échec d'authentification — clé API invalide |
| 403 | Permissions insuffisantes |
| 404 | Modèle introuvable |
| 429 | Limite de débit ou solde insuffisant |
| 500 | Erreur interne du serveur |
| 529 | Service en amont surchargé |