Limites de requêtes
Combien de requêtes vous pouvez faire, comment savoir où vous en êtes et comment ralentir proprement.
Limites
| Limite | Nombre | Description | Fenêtre (secondes) |
|---|---|---|---|
key_minute | 120 | requêtes par minute pour cette clé | 60 |
company_minute | 300 | requêtes par minute pour cette entreprise | 60 |
company_writes | 60 | actions d'écriture par minute pour cette entreprise | 60 |
company_heavy | 10 | actions lourdes par minute pour cette entreprise | 60 |
company_day | 50.000 | requêtes par jour pour cette entreprise | 86400 |
auth_failures | 20 | échecs de connexion par minute depuis cette adresse IP | 60 |
La limite par entreprise s'applique à toutes les clés de votre entreprise ensemble. Les actions d'écriture (POST, PATCH, DELETE) comptent en plus pour la limite d'écriture. Vous avez durablement besoin de plus ? Contactez le support.
En-têtes
Chaque réponse vous indique où vous en êtes :
| En-tête | Signification |
|---|---|
RateLimit-Policy |
Toutes les limites qui s'appliquent à cette requête |
RateLimit |
Requêtes restantes et secondes avant la réinitialisation, pour la limite la plus stricte |
X-RateLimit-Limit |
Taille de la limite la plus stricte |
X-RateLimit-Remaining |
Encore disponible dans la fenêtre actuelle |
X-RateLimit-Reset |
Heure Unix à laquelle la fenêtre recommence |
En cas de 429
Un 429 rate_limited contient un en-tête Retry-After indiquant le nombre de secondes à attendre. Le champ limit de la réponse indique la limite atteinte.
async function request(url, options, attempt = 0) {
const response = await fetch(url, options);
if (response.status === 429 && attempt < 5) {
const seconds = Number(response.headers.get('Retry-After') ?? 1);
await new Promise((resolve) => setTimeout(resolve, seconds * 1000));
return request(url, options, attempt + 1);
}
return response;
}Astuce
Répartissez les grandes synchronisations dans le temps et utilisez limit=100 : vous récupérez davantage avec moins de requêtes.
Dernière mise à jour le 14 septembre 2026