DocumentationRéférenceLimites de débit

Limites de débit

Comprenez les limites de requêtes et comment les respecter

2 min de lecture

Sur cette page

Limites de débit par plan

Chaque plan a une limite de requêtes par minute appliquée par clé API :

PlanRequêtes / MinuteLimite burst
Starter10020
Pro500100
Enterprise2 000400

La limite burst est le nombre maximum de requêtes autorisées dans une fenêtre de 1 seconde.

En-têtes de réponse

Chaque réponse API inclut des en-têtes de limite de débit :

X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1711036800
En-têteDescription
X-RateLimit-LimitRequêtes maximum par minute pour votre plan
X-RateLimit-RemainingRequêtes restantes dans la fenêtre actuelle
X-RateLimit-ResetTimestamp Unix de la réinitialisation de la limite

Lorsque vous dépassez la limite

Si vous dépassez la limite de débit, l'API renvoie une réponse 429 Too Many Requests :

{
  "statusCode": 429,
  "message": "Limite de débit dépassée. Réessayez dans 45 secondes.",
  "error": "Too Many Requests",
  "retryAfter": 45
}

La réponse inclut également un en-tête Retry-After avec le nombre de secondes à attendre.

Bonnes pratiques

Implémenter un backoff exponentiel

Lorsque vous recevez un 429, attendez et réessayez avec des délais croissants :

async function fetchWithRetry(
  url: string,
  options: RequestInit,
  maxRetries = 3
): Promise<Response> {
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
    const response = await fetch(url, options);

    if (response.status !== 429) return response;

    const retryAfter = parseInt(
      response.headers.get("Retry-After") ?? "60"
    );
    const delay = retryAfter * 1000 * Math.pow(2, attempt);

    await new Promise((r) => setTimeout(r, delay));
  }

  throw new Error("Nombre maximum de tentatives depasse");
}

Mettre en cache les réponses

Utilisez les en-têtes ETag et If-None-Match pour éviter les requêtes inutiles. L'API renvoie 304 Not Modified pour les données inchangées, ce qui ne compte pas dans votre limite de débit.

Utiliser les endpoints en masse

Au lieu de récupérer les produits un par un, utilisez le endpoint de liste avec des filtres :

# Au lieu de 50 requêtes individuelles :
GET /api/v1/products/prod_001
GET /api/v1/products/prod_002
...

# Utilisez une seule requête groupée :
GET /api/v1/products?ids=prod_001,prod_002,...&perPage=50

Utiliser les webhooks pour les données en temps réel

Au lieu d'interroger pour les changements, abonnez-vous aux webhooks pour recevoir des notifications push lorsque les données changent.

Surveillance de l'utilisation

Suivez votre utilisation de l'API depuis la page Paramètres → Intégrations dans votre tableau de bord. Vous verrez :

  • Requêtes effectuées dans la période de facturation actuelle
  • Heures de pointe d'utilisation
  • Dépassements de limite de débit
  • Répartition par endpoint
Besoin de limites plus élevées ? Contactez-nous à support@kataio.com pour discuter de limites de débit personnalisées pour votre cas d'usage.