Même forme de requête
Messages, rôles, streaming et outils suivent le contrat OpenAI quand la route les prend en charge.
Protocole · OpenAI-compatible
Vous conservez la forme de requête OpenAI. Seuls la base URL, la clé et l’identifiant du modèle changent.
La compatibilité OpenAI permet de réutiliser les SDK et outils qui acceptent une base URL personnalisée.
Générez une clé dans le tableau de bord RouterLab et gardez-la côté serveur.
Appelez GET /v1/models pour récupérer les identifiants réellement disponibles.
Configurez votre client sur https://api.routerlab.ch/v1.
Utilisez l’identifiant exact du modèle et le format chat/completions habituel.
Le même contrat fonctionne en HTTP direct ou avec le SDK OpenAI.
cURL shell
curl https://api.routerlab.ch/v1/chat/completions \
-H "Authorization: Bearer $ROUTERLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3-flash-trial","max_tokens":128,"messages":[{"role":"user","content":"Hello RouterLab"}]}'Python · OpenAI SDK python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ROUTERLAB_API_KEY"],
base_url="https://api.routerlab.ch/v1",
)
response = client.chat.completions.create(
model="glm-5.3-flash-trial",
max_tokens=128,
messages=[{"role": "user", "content": "Hello RouterLab"}],
)
print(response.choices[0].message.content)TypeScript · OpenAI SDK typescript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.ROUTERLAB_API_KEY,
baseURL: "https://api.routerlab.ch/v1",
});
const response = await client.chat.completions.create({
model: "glm-5.3-flash-trial",
messages: [{ role: "user", content: "Hello" }],
});RouterLab normalise l’accès, mais les capacités restent celles du modèle choisi.
Messages, rôles, streaming et outils suivent le contrat OpenAI quand la route les prend en charge.
Le champ model doit contenir un identifiant retourné par GET /v1/models.
Vision, outils, contexte et sortie structurée sont indiqués dans le catalogue.
Vous pouvez changer de famille de modèles sans changer de SDK lorsque la même route est disponible.
Ce sont des familles de modèles. Vous gardez cette intégration et remplacez seulement la valeur du champ model. Vérifiez toujours les badges de route du catalogue.
Commencez par vérifier la clé, l’identifiant du modèle et le solde.
| HTTP | Cause probable | Action |
|---|---|---|
| 400 | Corps invalide ou paramètre non pris en charge. | Comparez la requête au contrat chat/completions et aux capacités du modèle. |
| 401 | Clé absente, invalide ou révoquée. | Vérifiez l’en-tête Authorization et régénérez la clé si nécessaire. |
| 404 | Identifiant de modèle inconnu. | Relisez la liste retournée par GET /v1/models. |
| 429 | Limite de débit ou crédit disponible atteint. | Réduisez la cadence puis contrôlez vos limites dans le tableau de bord. |
| 503 | Route temporairement indisponible. | Réessayez avec backoff ou sélectionnez un autre modèle compatible. |
Utilisez le second protocole documenté par RouterLab au lieu d’adapter artificiellement les requêtes.
Voir le guide Claude Messages