Documentation / Concepts / Limites de débit

Limites de débit

Chaque token API est limité en nombre d'appels par minute selon le plan souscrit. Le quota est partagé entre les appels d'outils MCP et les requêtes de l'API REST.

Limites par plan

PlanRequêtes / minNote
Gratuit60Valeur par défaut
Indie60
Agent60
Scale60
Enterprise120

La limite est par token API, pas par adresse IP ni par compte. Côté MCP, seuls les appels d'outils (tools/call) sont comptés : initialize, tools/list et les notifications ne consomment pas ce quota.

Fenêtre glissante

Le compteur utilise une fenêtre glissante de 60 secondes (pas une fenêtre fixe). Si vous émettez 60 requêtes en 5 secondes avec le plan gratuit, vous serez limité pendant ~55 secondes — le temps que les premières requêtes sortent de la fenêtre.

Attention aux rafales
Un burst de requêtes identiques en parallèle consomme rapidement le quota. Throttlez côté client à ~80 % de la limite pour garder de la marge (ex. max 48 req/min sur le plan gratuit).

Réponse HTTP 429

Lorsque la limite est dépassée, l'API retourne :

HTTP/1.1 429 Too Many Requests
Retry-After: 12

{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded. Retry in 12 s."
  }
}

Sur le serveur MCP, un appel d'outil au-delà de la limite ne renvoie pas d'erreur HTTP : il renvoie un résultat d'outil avec isError: true et le délai d'attente, que l'assistant peut lire pour ralentir. Aucun crédit n'est débité.

Stratégie de backoff recommandée

Implémentez un backoff exponentiel à partir de 1 seconde. 4 tentatives couvrent la plupart des cas.

import time
import requests

def call_with_backoff(url, headers, params, max_retries=4):
    delay = 1
    for attempt in range(max_retries):
        r = requests.get(url, headers=headers, params=params)
        if r.status_code == 429:
            time.sleep(delay)
            delay *= 2
            continue
        return r
    raise Exception("Rate limit exceeded after retries")

Limite de capacité serveur (503)

En plus des limites par plan, le serveur accepte au maximum 15 requêtes DB simultanées (toutes clés confondues). Si cette limite est atteinte, vous recevez HTTP 503 avec le code at_capacity. Contrairement au 429, il n'y a pas de file d'attente : réessayez après 2–5 secondes.

Indépendant du plan
La limite at_capacity est globale au serveur, pas par utilisateur. Elle est plus rare que le 429 et survient généralement lors de pics de charge. Voir tous les codes d'erreur.