L'API

La Gateway expose les routes de l'API OpenAI, et celle de l'API Anthropic pour Claude Code. Toute bibliothèque compatible OpenAI fonctionne en changeant l'adresse et la clé.

Authentification

La clé (sv_gw_…) se passe dans l'un de ces en-têtes :

Authorization: Bearer sv_gw_…
x-api-key: sv_gw_…

Le type de la clé est lu dans Supervise, jamais dans la requête, et vérifié avant tout le reste. Un type inconnu est refusé.

Les routes

RouteFormatClé ScriptClé Développeur
POST /v1/chat/completionsOpenAI Chat CompletionsOuiOui
GET /v1/modelsListe des modèles ouvertsOuiOui
POST /v1/images/generationsOpenAI ImagesOuiOui
POST /v1/audio/speechOpenAI Audio (synthèse)OuiOui
POST /v1/audio/transcriptionsOpenAI Audio (transcription)OuiOui
POST /v1/embeddingsOpenAI EmbeddingsOuiOui
POST /v1/ocrMistral OCROuiOui
POST /v1/videos, GET /v1/videos/{id}, GET /v1/videos/{id}/contentOpenAI VideosOuiOui
POST /v1/responsesOpenAI Responses (Codex)NonOui
POST /v1/messages, POST /v1/messages/count_tokensAnthropic Messages (Claude Code)NonOui

Le streaming (SSE) est accepté partout où l'API d'origine le propose. Chaque route n'accepte que les modèles de son type.

Paramètres acceptés

Seuls les paramètres connus de chaque route partent chez le fournisseur.

/v1/messages

La requête et les en-têtes anthropic-* sont transmis tels quels à Anthropic ; seul model est traduit, et la clé Supervise est remplacée par l'accès du fournisseur : celui de l'organisation si un administrateur en a connecté un pour Anthropic, sinon celui de Supervise. Modèles Claude uniquement. Les erreurs suivent le format d'Anthropic.

Les champs propres à Supervise

ChampOùRôle
metadata.flag, metadata.sub_flagCorps, Chat CompletionsÉtiquettes de l'appel, 1 à 64 caractères. Un sous-flag exige un flag.
metadata.backup_modelCorps, Chat CompletionsModèle de secours. Voir Flags et modèle de secours.
metadataCorps, Chat Completions16 clés au plus. Les autres clés sont conservées avec l'appel.
X-Supervise-Flag, X-Supervise-Sub-FlagEn-têtes, autres routesMêmes étiquettes, pour les images, l'audio, les embeddings, l'OCR, la vidéo, Codex et Claude Code.

En-têtes de réponse

En-têteQuand
X-Supervise-Backup-Used: trueL'appel a été servi par le modèle de secours
Retry-AfterLimite d'appels par minute atteinte : secondes à attendre
X-Request-IdSur une erreur : l'identifiant à donner pour signaler un problème

Format des erreurs

{
  "error": {
    "message": "The model `…` does not exist or you do not have access to it.",
    "type": "invalid_request_error",
    "code": "model_not_found",
    "param": "model"
  }
}
{
  "type": "error",
  "error": { "type": "not_found_error", "message": "…" }
}

Aucune erreur ne contient de clé, de trace interne ou de détail brut du fournisseur. La liste des erreurs : Erreurs et limites.