Référence API
URL de base : https://api.openmulti.ai/v1 · Authentification : Authorization: Bearer sk_<projet>_<secret> (voir Authentification).
| Endpoint | Rôle |
|---|---|
POST /v1/chat/completions |
chat, outils, sorties structurées, images — l'endpoint principal |
POST /v1/embeddings |
vecteurs d'embeddings |
GET /v1/models |
modèles servis, alias, tiers, tarifs |
GET /health |
disponibilité du service (sans authentification) |
POST /v1/chat/completions
Corps : une requête OpenAI standard — messages, stream, max_tokens, temperature, tools, tool_choice, response_format, etc. — plus les extensions OpenMulti :
| Champ | Type | Description |
|---|---|---|
model |
string | auto, auto:<tier>, un id concret vendor/model, ou un nom nu non ambigu — détail dans Modèles et routage |
openmulti |
objet | optionnel : tier, purpose, allow, route — voir Modèles et routage |
modalities |
array | ["image", "text"] pour la génération d'image |
Les champs inconnus sont retirés avant transmission (allowlist des champs OpenAI/OpenRouter) — ils ne provoquent pas d'erreur.
Réponse
Format OpenAI standard, avec :
usage.cost(USD) — toujours présent, réponse et fin de stream : le montant débité de votre solde.openmulti.reason— la trace de routage, uniquement si la requête portait un blocopenmulti(réponse non streamée). Sans blocopenmulti, la réponse est strictement identique à celle du fournisseur.- En stream : en-têtes
X-OpenMulti-ModeletX-OpenMulti-Reason(voir Streaming).
POST /v1/embeddings
Pass-through compatible OpenAI (input, model, dimensions, …). model: "auto" → modèle d'embeddings par défaut ; id concret honoré tel quel. Voir Embeddings.
GET /v1/models
Liste au format OpenAI ({"object": "list", "data": [...]}) :
- d'abord les alias d'intention —
auto,auto:economy,auto:balanced,auto:quality— marquésopenmulti.alias: true; - puis les modèles concrets servis, chacun avec :
| Champ | Contenu |
|---|---|
openmulti.tiers |
les tiers où ce modèle est candidat |
openmulti.purposes |
les usages où il est privilégié (agent, …) |
openmulti.pricing |
tarif entrée/sortie en USD par million de tokens — présent uniquement quand le tarif est vérifié |
curl https://api.openmulti.ai/v1/models -H "Authorization: Bearer $OPENMULTI_API_KEY"
?all=1 : l'inventaire complet
Par défaut, la liste ne montre que le catalogue curé (les candidats des tiers). Avec ?all=1, elle inclut en plus l'inventaire complet des modèles réellement adressables (plusieurs centaines), ajoutés après les entrées curées :
curl "https://api.openmulti.ai/v1/models?all=1" -H "Authorization: Bearer $OPENMULTI_API_KEY"
Les entrées d'inventaire portent openmulti.tiers et openmulti.purposes vides (elles ne sont candidates d'aucun tier) et un pricing uniquement quand il est vérifié. Rappel : un id concret vendor/model est appelable qu'il apparaisse dans la liste ou non.
GET /health
Sonde de disponibilité, sans authentification — pour vos health checks et votre monitoring :
curl https://api.openmulti.ai/health
Codes d'erreur
Le détail complet — statuts, corps normalisés, stratégie de retry — est dans Erreurs et limites.