Limites de débit
Requêtes par minute, réponse 429, en-tête Retry-After et gardes d'appel.
Limite par clé
Chaque clé d'API peut envoyer 120 requêtes par fenêtre de 60 secondes. Au-delà, l'API répond 429 avec le code rate_limited et un en-tête Retry-After qui indique le nombre de secondes à attendre.
async function call(url, init, attempts = 5) {
for (let i = 0; i < attempts; i++) {
const res = await fetch(url, init);
if (res.status !== 429) return res;
const wait = Number(res.headers.get("Retry-After") ?? 1);
await new Promise((r) => setTimeout(r, wait * 1000));
}
throw new Error("rate_limited");
}Gardes d'appel
Le lancement d'appels a ses propres gardes, partagées avec le dashboard : appels simultanés, appels par heure et appels planifiés en attente. Elles répondent aussi 429, avec les codes concurrent_limit, hourly_limit et pending_limit. Les autres refus ne sont pas des limites de débit : outside_hours (422), do_not_call et country_not_allowed (403).
Bonnes pratiques
- Respectez
Retry-Afterau lieu de réessayer immédiatement. - Ajoutez de l'aléa à votre délai croissant quand plusieurs travailleurs partagent une clé.
- Étalez les traitements en masse dans le temps, ou utilisez des clés distinctes pour des systèmes distincts afin que l'un n'affame pas l'autre.
- Les livraisons de webhooks ne comptent pas dans la limite.