Aller au contenu

Facturation et limitation de débit

Cette page décrit le processus de facturation d’une requête, de son envoi à son règlement, ainsi que la facturation en cas d’erreur, d’annulation ou de limitation. Pour le prix unitaire et le mode de facturation de chaque type de modèle, voir Tarification des modèles.

Chaque requête passe par deux étapes : « pré-réservation → règlement » :

  1. Pré-réservation : avant de transmettre la requête en amont, un montant estimé est prélevé sur le quota de la clé et le solde du compte. Si l’un des deux est insuffisant, la requête est rejetée immédiatement et n’est pas envoyée en amont.
  2. Règlement : une fois la requête terminée, le coût réel est calculé à partir de l’usage réel renvoyé par l’amont. Le surplus réservé est restitué et le manque est débité.

Méthode d’estimation du coût :

Type de modèleMéthode d’estimation
Facturation au tokenTokens d’entrée plus max_tokens de la requête, estimés au prix unitaire du modèle
Modèles à tarifs par palierEstimés au prix du palier le plus élevé, puis facturés au palier réel lors du règlement
Facturation par appel ou par imagePrix à l’unité pré-réservé directement
Tâches asynchrones (vidéo, musique, etc.)Montant estimé réservé à la soumission, réglé à la fin de la tâche

Le principe : sans usage facturable, pas de facturation ; le montant pré-réservé est intégralement restitué.

ScénarioFacturation
Clé invalide ou expirée, solde ou quota de la clé insuffisantNon facturé, la requête n’est pas envoyée en amont
Paramètres de requête invalides, modèle indisponible, aucun canal disponibleNon facturé
Limitation de débit (429)Non facturé
Erreur renvoyée par l’amont (4xx / 5xx)Non facturé, le montant pré-réservé est intégralement restitué
Succès en amont mais usage nulNon facturé
Interruption ou délai dépassé en amont pendant un fluxFacturé selon le contenu déjà généré
Échec ou expiration d’une tâche asynchrone (non terminée sous 24 heures)Non facturé, le montant pré-réservé est intégralement restitué

En cas d’erreur en amont, RouteAPI relance automatiquement la requête ou bascule vers un autre canal. L’ensemble du processus ne comporte qu’une pré-réservation et qu’un règlement ; les tentatives échouées ne sont pas facturées, vous ne payez que la tentative finalement réussie. Si la requête est finalement servie par un modèle de repli, elle est facturée au prix du modèle qui l’a réellement servie.

Une fois qu’un flux a commencé à vous envoyer du contenu, il n’est plus relancé. Si l’amont est alors interrompu, la partie déjà générée est facturée.

ScénarioFacturation
Requête non streaming, connexion coupée avant réception de la réponseNon facturé, le montant pré-réservé est intégralement restitué
Requête streaming, connexion coupée en cours de routeFacturé, voir l’explication ci-dessous
Tâches asynchrones (vidéo, musique, Midjourney)Aucune annulation possible après soumission

Lorsqu’une requête streaming est coupée en cours de route, l’amont est généralement déjà en train de générer et continue jusqu’à la fin. RouteAPI continue de lire la sortie en amont jusqu’à la fin de la génération et facture l’usage réellement généré, et pas seulement la partie que vous avez déjà reçue. Pour maîtriser ce coût, limitez la longueur de sortie avec max_tokens.

Pour préserver la stabilité de la plateforme et de l’amont, la plateforme peut limiter la fréquence des requêtes de modèle par compte. La limite est calculée par compte : toutes les clés API d’un même compte partagent le même quota.

En cas de limitation, la réponse renvoie 429 Too Many Requests, avec le même format de corps que les autres erreurs :

{
"error": {
"message": "... (request id: ...)",
"type": "error",
"code": ""
}
}
  • Une requête limitée est rejetée avant la pré-réservation : elle n’est pas facturée.
  • Lorsque l’amont renvoie 429, RouteAPI bascule automatiquement vers un autre canal pour réessayer. Le 429 ne vous est renvoyé que si la limitation persiste après la nouvelle tentative.
  • La réponse ne contient pas d’en-tête Retry-After. Il est conseillé d’utiliser un backoff exponentiel côté client, par exemple 1 s, 2 s, 4 s, avec une gigue aléatoire.
  • Multiplier les clés API n’augmente pas la limite. Si vous avez besoin d’une fréquence plus élevée, contactez-nous.

L’API de la plateforme (/api/open/v1) a ses propres règles de limitation, voir Erreurs et limites de l’API de la plateforme.

Le Journal d’utilisation permet de consulter le détail de chaque requête facturée :

ChampDescription
HeureHeure de la requête
CléNom de la clé API ayant émis la requête
ModèleModèle réellement facturé
Durée / premier tokenDurée totale ; pour les requêtes streaming, affiche aussi la latence du premier token
EntréeNombre de tokens d’entrée ; en cas de cache, lecture et écriture du cache sont affichées séparément
SortieNombre de tokens de sortie
CoûtMontant réellement débité
DétailPrix unitaire, multiplicateur et déroulé de la facturation

Le champ usage de la réponse de l’API renvoie également l’usage de tokens de la requête :

ChampDescription
prompt_tokensTokens d’entrée
completion_tokensTokens de sortie ; les tokens de raisonnement des modèles de raisonnement y sont également inclus
total_tokensTotal entrée + sortie
prompt_tokens_details.cached_tokensTokens d’entrée ayant touché le cache

Si votre compte bénéficie d’une remise exclusive, le coût indiqué dans le journal est déjà le montant remisé.