Point de terminaison : POST /chat/completions
Utilisez ce point de terminaison pour la plupart des intégrations API modèle. Envoyez un ID model et un tableau messages ; YouRouter renvoie une réponse de complétion compatible OpenAI. Pour les modèles vision, ce point de terminaison accepte aussi des images dans messages[].content.
Requête
curl https://api.yourouter.ai/v1/chat/completions \
-H "Authorization: Bearer $YOUROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "Reply with exactly: connected"
}
]
}'
SDK OpenAI
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["YOUROUTER_API_KEY"],
base_url="https://api.yourouter.ai/v1",
)
completion = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Reply with exactly: connected"}],
)
print(completion.choices[0].message.content)
En-têtes
| En-tête | Obligatoire | Description |
|---|
Authorization | Oui | Bearer <YOUR_YOUROUTER_API_KEY> |
Content-Type | Oui | Utilisez application/json. |
vendor | Non | auto ou omission pour le routage automatique. Valeurs comme openai, anthropic, ou google pour fixer le fournisseur. |
Paramètres du corps
ID du modèle à appeler, par ex. gpt-4o, claude-sonnet-4-20250514, ou gemini-2.5-flash.
Messages de conversation ordonnés. Chaque message a un role et un content.
Si vrai, la réponse est renvoyée sous forme de fragments server-sent events.
Contrôle l’aléa lorsque le modèle sélectionné le prend en charge.
Limite le nombre de jetons de sortie lorsque le modèle le prend en charge.
Définitions d’outils pour les modèles qui prennent en charge l’appel de fonctions ou le tool use.
Entrée image multimodale
Pour les modèles vision, envoyez content comme tableau de blocs : un bloc text pour la consigne et un ou plusieurs blocs image_url pour l’image.
curl https://api.yourouter.ai/v1/chat/completions \
-H "Authorization: Bearer $YOUROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Describe this image in one sentence."
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
}
]
}
]
}'
Pour des images privées, utilisez une data URL base64 :
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,<BASE64_IMAGE>"
}
}
Voir le guide Multimodal pour d’autres exemples, y compris les formats natifs Gemini et Claude.
Réponse
Les réponses réussies suivent le format OpenAI Chat Completions.
{
"id": "chatcmpl_example",
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "connected"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 1,
"total_tokens": 13
}
}
Lisez le texte de l’assistant dans :
choices[0].message.content
Routage fournisseur
Le routage automatique est le comportement par défaut :
curl https://api.yourouter.ai/v1/chat/completions \
-H "Authorization: Bearer $YOUROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello"}]}'
Fixez un fournisseur avec vendor :
curl https://api.yourouter.ai/v1/chat/completions \
-H "Authorization: Bearer $YOUROUTER_API_KEY" \
-H "Content-Type: application/json" \
-H "vendor: openai" \
-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello"}]}'
Streaming
Définissez stream sur true pour recevoir des événements server-sent events incrémentaux.
curl https://api.yourouter.ai/v1/chat/completions \
-H "Authorization: Bearer $YOUROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"stream": true,
"messages": [
{
"role": "user",
"content": "Explain model routing in two sentences."
}
]
}'
Erreurs courantes
| Statut | Cause | À vérifier |
|---|
400 | Corps de requête invalide ou paramètre non pris en charge | model, messages et le JSON. |
401 | Clé API manquante ou invalide | En-tête Authorization. |
429 | Limite de débit ou de concurrence fournisseur | Nouvelle tentative avec backoff ou routage automatique. |
500 | Erreur passerelle ou fournisseur amont | Réessayer prudemment et conserver les ID de requête pour le support. |
Pour les ID de modèle et la fixation du fournisseur, voir Modèles et le guide Routage.