Protocole · OpenAI-compatible

Branchez votre client OpenAI sur RouterLab.

Vous conservez la forme de requête OpenAI. Seuls la base URL, la clé et l’identifiant du modèle changent.

Contrat de requêteprêt
Base URL
https://api.routerlab.ch/v1
Endpoint
POST /v1/chat/completions
Authentification
Authorization: Bearer $ROUTERLAB_API_KEY
Identifiants
GET /v1/models

Démarrage en quatre étapes

La compatibilité OpenAI permet de réutiliser les SDK et outils qui acceptent une base URL personnalisée.

  1. 01

    Créez une clé

    Générez une clé dans le tableau de bord RouterLab et gardez-la côté serveur.

  2. 02

    Listez les modèles

    Appelez GET /v1/models pour récupérer les identifiants réellement disponibles.

  3. 03

    Changez la base URL

    Configurez votre client sur https://api.routerlab.ch/v1.

  4. 04

    Envoyez la requête

    Utilisez l’identifiant exact du modèle et le format chat/completions habituel.

Exemples prêts à adapter

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" }],
});

Ce que la compatibilité garantit

RouterLab normalise l’accès, mais les capacités restent celles du modèle choisi.

Même forme de requête

Messages, rôles, streaming et outils suivent le contrat OpenAI quand la route les prend en charge.

Identifiants RouterLab

Le champ model doit contenir un identifiant retourné par GET /v1/models.

Capacités par modèle

Vision, outils, contexte et sortie structurée sont indiqués dans le catalogue.

Familles interchangeables

Vous pouvez changer de famille de modèles sans changer de SDK lorsque la même route est disponible.

DeepSeek et GLM ne sont pas de nouvelles API

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.

Erreurs courantes

Commencez par vérifier la clé, l’identifiant du modèle et le solde.

HTTPCause probableAction
400Corps invalide ou paramètre non pris en charge.Comparez la requête au contrat chat/completions et aux capacités du modèle.
401Clé absente, invalide ou révoquée.Vérifiez l’en-tête Authorization et régénérez la clé si nécessaire.
404Identifiant de modèle inconnu.Relisez la liste retournée par GET /v1/models.
429Limite de débit ou crédit disponible atteint.Réduisez la cadence puis contrôlez vos limites dans le tableau de bord.
503Route temporairement indisponible.Réessayez avec backoff ou sélectionnez un autre modèle compatible.

Votre outil parle Claude Messages ?

Utilisez le second protocole documenté par RouterLab au lieu d’adapter artificiellement les requêtes.

Voir le guide Claude Messages