TokenCode est entièrement compatible avec le protocole OpenAI API. Vous pouvez utiliser directement le SDK OpenAI ou tout client compatible OpenAI pour vous connecter.
https://tokencode.dev/v1
Tous les points de terminaison nécessitent une authentification :
Retourne la liste des modèles actuellement disponibles.
curl https://tokencode.dev/v1/models \
-H "Authorization: Bearer sk-your-api-key"
Exemple de réponse :
{
"object": "list",
"data": [
{ "id": "gpt-5.5", "object": "model", "owned_by": "openai" },
{ "id": "claude-sonnet-4-6", "object": "model", "owned_by": "anthropic" },
{ "id": "gemini-2.5-pro", "object": "model", "owned_by": "google" }
]
}
Point de terminaison de complétion de conversation compatible OpenAI. Prend en charge tous les modèles en amont, pas uniquement les modèles OpenAI.
curl https://tokencode.dev/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "system", "content": "Vous êtes un assistant utile."},
{"role": "user", "content": "Expliquez l'informatique quantique"}
],
"temperature": 0.7,
"max_tokens": 1024
}'
Paramètres de la requête :
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| model | string | Oui | ID du modèle (ex. gpt-5.5, claude-sonnet-4-6) |
| messages | array | Oui | Tableau d'objets de message |
| stream | boolean | Non | Activer les réponses en streaming |
| temperature | number | Non | Température d'échantillonnage (0-2) |
| max_tokens | integer | Non | Nombre maximal de Token générés |
| top_p | number | Non | Probabilité de nucleus sampling |
| n | integer | Non | Nombre de candidats à générer |
| stop | string/array | Non | Séquence d'arrêt |
| presence_penalty | number | Non | Pénalité de présence (-2 à 2) |
| frequency_penalty | number | Non | Pénalité de fréquence (-2 à 2) |
| tools | array | Non | Définitions d'outils Function Calling |
| tool_choice | string/object | Non | Stratégie d'appel d'outil |
Exemple de réponse :
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1700000000,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "L'informatique quantique est une discipline qui exploite les principes de la mécanique quantique..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 128,
"total_tokens": 153
}
}
Lorsque "stream": true est défini, la réponse utilise le format SSE :
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"L'"},"index":0}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"informatique"},"index":0}]}
data: [DONE]
Génère des embeddings vectoriels de texte.
curl https://tokencode.dev/v1/embeddings \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "Hello world"
}'
Paramètres de la requête :
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| model | string | Oui | ID du modèle d'embedding |
| input | string/array | Oui | Texte à intégrer |
| encoding_format | string | Non | Format d'encodage (float ou base64) |
L'un des avantages clés de TokenCode est la conversion automatique de protocole. Lorsque vous appelez un modèle non-OpenAI (comme Claude ou Gemini) via le point de terminaison compatible OpenAI, la plateforme effectue automatiquement :
Vous pouvez ainsi appeler tous les modèles avec le même code SDK OpenAI, sans vous soucier des différences de protocole sous-jacentes.
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://tokencode.dev/v1"
)
# Appeler un modèle OpenAI
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Bonjour"}]
)
# Appeler un modèle Claude — même code, conversion automatique de protocole
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Bonjour"}]
)
# Appeler un modèle Gemini — de la même manière
response = client.chat.completions.create(
model="gemini-2.5-pro",
messages=[{"role": "user", "content": "Bonjour"}]
)
Toutes les erreurs suivent le format d'erreur OpenAI :
{
"error": {
"message": "Invalid API key",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
| Code HTTP | Signification |
|---|---|
| 400 | Paramètres de requête invalides |
| 401 | Échec d'authentification — clé API invalide |
| 403 | Permissions insuffisantes — modèle non disponible |
| 429 | Limite de débit ou solde insuffisant |
| 500 | Erreur interne du serveur |
| 502 | Erreur du service en amont |