Límites de tasa
| Tipo de endpoint | Límite | Alcance |
|---|---|---|
| Autenticación | 10 req/min | por IP |
| Configuración de runtime | 1.000 req/min | por token de incrustación |
| Envío de consentimiento | 300 req/min | por token de incrustación |
| Revocación de consentimiento | 60 req/min | por token de incrustación |
| Creación de escaneo | 10 req/min | por tenant |
| Subida de medios | 20 req/min | por tenant |
| Gestión (general) | 120 req/min | por clave de API |
Encabezados de límite de tasa
Cada respuesta incluye:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1741521600
Cuando se alcanza el límite de tasa, recibe una respuesta 429:
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Try again in 30 seconds."
}
}
Gestionar los límites de tasa
Implemente retroceso exponencial cuando reciba 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');
}