Limites de débit
| Type d'endpoint | Limite | Portée |
|---|---|---|
| Authentification | 10 req/min | par IP |
| Configuration du runtime | 1 000 req/min | par token d'intégration |
| Soumission de consentement | 300 req/min | par token d'intégration |
| Révocation de consentement | 60 req/min | par token d'intégration |
| Création de scan | 10 req/min | par tenant |
| Téléchargement de média | 20 req/min | par tenant |
| Gestion (général) | 120 req/min | par clé API |
En-têtes de limite de débit
Chaque réponse inclut :
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1741521600
En cas de dépassement, vous recevez une réponse 429 :
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Try again in 30 seconds."
}
}
Gestion des limites de débit
Implémentez un backoff exponentiel lorsque vous recevez un 429 :
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const res = await fetch(url, options);
if (res.status !== 429) return res;
const retryAfter = parseInt(res.headers.get('X-RateLimit-Reset')) - Date.now() / 1000;
await new Promise(r => setTimeout(r, (retryAfter + 1) * 1000));
}
throw new Error('Rate limit retries exhausted');
}