Référence de l'API

AIOrouter fournit une API REST compatible OpenAI. Toutes les requêtes utilisent JSON et l'authentification par jeton Bearer.

URL de base : https://api.aiorouter.ca/v1

Authentication

All nécessitent une clé API transmise sous forme de jeton Bearer :

Authorization: Bearer <votre-cle-API>

Les clés API peuvent être créées et gérées à partir du Dashboard.

Headers

En-tête Requis Description
Authorization Oui Bearer <votre-cle-API>
Content-Type Oui application/json
API-Version Non Date de la version de l'API (par défaut : 2026-06-01)
X-Request-Id Non Identifiant de requête unique pour le traçage

Endpoints

POST /v1/chat/completions

Crée une complétion de chat. Prend en charge les modes de diffusion en continu et non en continu.

Request Body :

Paramètre Type Obligatoire Description
model chaîne Oui ID du modèle (par exemple, deepseek-v4-pro, qwen3.7-max, qwen3.6-flash)
messages tableau Oui Tableau d'objets message avec role et content
temperature nombre Non Température d'échantillonnage (0–2, valeur par défaut : 1)
max_tokens entier Non Nombre maximum de jetons à générer
top_p nombre Non Paramètre d'échantillonnage nucleus (0–1)
stream booléen Non Activer la diffusion en continu SSE (valeur par défaut : false)
stop chaîne/tableau Non Séquences d'arrêt
tools tableau Non Définitions de fonctions pour l'appel d'outils
tool_choice chaîne/objet Non Stratégie de sélection d'outil
response_format objet Non { "type": "json_object" } pour le mode JSON

Example Response (non-streaming) :

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1717545600,
  "model": "deepseek-v4-pro",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "Bonjour ! Comment puis-je vous aider aujourd'hui ?"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 20,
    "total_tokens": 30
  }
}

Diffusion en continu (SSE) :

Définissez "stream": true pour recevoir Server-Sent Events :

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"Bonjour"}}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"!"}]}}
data: [DONE]

Lorsqu'une requête en continu contient des données PII détectées, AIOrouter pseudonymise la requête destinée au fournisseur et restaure les deltas de texte de l'assistant avant d'émettre les événements SSE. Les flux visibles par le client ne doivent pas contenir de balises de modèle, de valeurs SURROGATE_PII(...) ou d'erreurs unsupported_streaming_privacy_mode.

Function Calling :

{
  "model": "deepseek-v4-pro",
  "messages": [{"role": "user", "content": "Quel est la météo à Montréal ?"}],
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "Obtenir la météo actuelle",
      "parameters": {
        "type": "objet",
        "propriétés": {
          "location": {"type": "chaîne"}
        },
        "obligatoire": ["location"]
      }
    }
  }]
}

GET /v1/models

Liste tous les modèles disponibles.

Réponse :

{
  "object": "list",
  "data": [
    {
      "id": "deepseek-v4-pro",
      "object": "model",
      "created": 1717545600,
      "owned_by": "deepseek"
    }
  ]
}

GET /v1/models/:modelId

Obtenez les détails d'un modèle spécifique.

Response Headers

En-tête Description
X-Provider Le fournisseur d'IA qui a traité la demande
X-Automated-Decision En-tête de transparence (Conformité à la loi 25)
X-Request-Id Écho de l'identifiant de la demande
API-Version Version de l'API utilisée

Error Codes

Status Code Description
400 invalid_request Malformed request body or parameters
401 authentication_error Invalid or missing API key
402 insufficient_quota Quota exceeded or insufficient credits
429 rate_limit_exceeded Too many requests
500 api_error Internal server error
503 service_unavailable All providers temporarily unavailable

Rate Limits

Plan Rate Limit
Développeur 60 requêtes/minute
Entreprise 300 requêtes/minute
Non vérifié 10 requêtes/minute

Les en-têtes de limitation de débit sont inclus dans les réponses : X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Streaming Best Practices