Limites de débit
Limites en fenêtre glissante par clé API, en-têtes X-RateLimit et stratégie de reprise correcte.
Mis à jour le 13 août 2026
Les limites sont comptées par clé sur une fenêtre glissante d’une minute. Par défaut : 600 requêtes par minute pour les clés d’espace de travail, 1200 pour les clés partenaires ; votre forfait peut fixer d’autres valeurs, et la limite réelle est toujours dans les en-têtes de réponse.
En-têtes
Chaque réponse porte l’état courant :
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 273
X-RateLimit-Reset: 1755081600
X-RateLimit-Limit— la capacité de la fenêtre pour cette clé.X-RateLimit-Remaining— les requêtes restantes dans la fenêtre en cours.X-RateLimit-Reset— l’heure Unix (en secondes) à laquelle la fenêtre se libère.
Au-delà de la limite, l’API répond 429 avec Retry-After :
{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded, retry later",
"doc_url": "https://linkprofit.com/docs/api/errors"
}
}
Retry-After: 12
La fenêtre glisse
Le compteur n’est pas remis à zéro au début de la minute : une rafale à 10:00:55 compte encore dans la fenêtre à 10:01:05. Prévoyez un débit régulier plutôt que des rafales alignées sur la minute.
Les requêtes rejetées comptent aussi — une boucle de reprise serrée sur un 429 ne fait que maintenir la clé bloquée.
Une reprise qui se tient bien
async function withRateLimit(request) {
for (let attempt = 0; attempt < 5; attempt += 1) {
const response = await request();
if (response.status !== 429) return response;
const wait = Number(response.headers.get("retry-after") ?? "1");
await new Promise((resolve) => setTimeout(resolve, wait * 1000 + attempt * 250));
}
throw new Error("Rate limit retries exhausted");
}
Respectez Retry-After au lieu de deviner, ajoutez un peu d’aléatoire pour que
des workers parallèles ne réessaient pas au même instant, et plafonnez le nombre
de tentatives.
Rester sous la limite
- Surveillez
X-RateLimit-Remaininget ralentissez avant d’atteindre zéro. - Utilisez
POST /links/bulk— une requête crée jusqu’à 100 liens. - Préférez les webhooks à l’interrogation régulière : les événements vous sont poussés en quelques secondes et ne coûtent aucune requête.