Compte
Limites de débit
Requêtes par minute selon le forfait, limites de RPM et limites quotidiennes en USD par clé, et gestion des erreurs 429 avec nouvelles tentatives.
Les limites de débit protègent votre solde et le service. Elles se comptent en requêtes par minute (RPM) par clé d'API, et les clés peuvent aussi avoir une limite de dépenses quotidiennes en USD.
Limites par forfait
| Forfait | Requêtes par minute |
|---|---|
| Free | 5 |
| Pro | 100 |
| Team | 3,000 |
| Enterprise | 3,000+ |
Passez à un forfait supérieur sur la page des tarifs pour augmenter votre limite.
Limites par clé
Lorsque vous créez ou modifiez une clé dans Clés d'API, vous pouvez définir :
| Limite | Effet |
|---|---|
| Limite de RPM | Plafonne les requêtes par minute pour cette clé. La limite effective est la plus basse entre la limite de la clé et celle de votre forfait. |
| Limite quotidienne en USD | Une fois que la clé a dépensé ce montant dans la journée (UTC), les requêtes suivantes renvoient 429 daily_limit_reached jusqu'au lendemain. |
| Liste de modèles autorisés | Seuls les ids de modèle listés peuvent être utilisés avec cette clé ; les autres renvoient 403 model_not_allowed. |
La fenêtre de RPM est d'une minute et se compte par clé : des clés distinctes pour des applications distinctes ne partagent donc pas la même limite, mais chaque clé reste plafonnée par la limite de votre forfait.
En-têtes de limite
Chaque réponse de génération (succès ou erreur) indique où vous en êtes, pour ralentir avant d’atteindre la limite :
| En-tête | Signification |
|---|---|
X-RateLimit-Limit | Requêtes autorisées dans la fenêtre d’une minute en cours pour cette clé. |
X-RateLimit-Remaining | Requêtes restantes dans la fenêtre. |
X-RateLimit-Reset | Secondes avant la réinitialisation de la fenêtre. |
Les clients navigateur peuvent aussi les lire (ils figurent dans Access-Control-Expose-Headers).
Pics et concurrence
Les requêtes au-delà de la limite ne sont pas rejetées tout de suite : elles attendent dans une file et démarrent dès que la fenêtre d’une minute se libère. Jusqu’à 10 requêtes par compte s’exécutent en même temps ; les autres attendent qu’une se termine. Avant le démarrage, le coût maximal estimé de la requête est réservé sur votre solde avec celui des requêtes en cours, si bien que des requêtes parallèles ne dépensent jamais plus que ce que vous avez. Une requête qui ne peut pas démarrer dans les 60 secondes renvoie 429 (rate_limited ou concurrency_limit) avec Retry-After ; si son coût ne tient plus dans votre solde, elle renvoie 402 insufficient_balance.
Réessais sûrs avec Idempotency-Key
Après une erreur réseau, vous ne savez pas toujours si la requête est arrivée. Envoyez un en-tête Idempotency-Key (une chaîne unique de 120 caractères maximum, par exemple un UUID) et réessayez avec la même clé : si la première requête a déjà été envoyée au modèle, le réessai renvoie 409 idempotency_conflict au lieu d’exécuter et de facturer le travail deux fois. Si la première a échoué avant d’atteindre le modèle, la clé est libérée et le réessai s’exécute normalement. Une clé est utilisable une fois par compte pendant 24 heures.
curl https://api14.com/api/v1/images/generations \
-H "Authorization: Bearer $API14_KEY" \
-H "Idempotency-Key: 6f1c2a3e-order-1842" \
-H "Content-Type: application/json" \
-d '{"model": "black-forest-labs/flux-3-image", "prompt": "a red bicycle"}'
Lorsque vous atteignez une limite
Trop de requêtes
HTTP/1.1 429 Too Many Requests
Retry-After: 60
{
"error": {
"message": "Rate limit of 5 requests per minute exceeded.",
"type": "rate_limit_error",
"code": "rate_limited"
}
}
Attendez le nombre de secondes indiqué dans Retry-After, puis réessayez. Les SDK officiels d'OpenAI réessaient automatiquement les réponses 429 avec un backoff (deux nouvelles tentatives par défaut ; configurable avec maxRetries / max_retries).
Limite de dépenses quotidiennes
{
"error": {
"message": "This API key reached its daily spend limit.",
"type": "rate_limit_error",
"code": "daily_limit_reached"
}
}
Réessayer ne sert à rien avant le jour UTC suivant. S'il s'agit d'un trafic attendu, augmentez ou supprimez la limite quotidienne de la clé dans Clés d'API.
Limites du fournisseur en amont
Les fournisseurs ont leurs propres limites, plus strictes pour les variantes de modèle :free. Lorsqu'un fournisseur limite une requête, son 429 vous est transmis tel quel. Utilisez les modèles de repli ou le routage des fournisseurs pour répartir la charge entre fournisseurs.
Gérer les limites dans le code
- Respectez
Retry-Afteret réessayez avec un backoff exponentiel et du jitter. - Distinguez
rate_limited(réessayer plus tard) dedaily_limit_reachedetinsufficient_balance(réessayer ne sert à rien). - Mettez les tâches de fond en file d'attente au lieu de les lancer toutes en même temps.
- Diffusez les réponses longues en streaming : une requête en streaming compte pour une seule requête.
import time
from openai import OpenAI, RateLimitError
client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...", max_retries=0)
for attempt in range(5):
try:
r = client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
break
except RateLimitError as e:
if e.code == "daily_limit_reached":
raise
time.sleep(int(e.response.headers.get("retry-after", 2 ** attempt)))
Voir Erreurs pour tous les codes de statut.