Límites de velocidad
| Tipo de endpoint | Límite | Ámbito |
|---|---|---|
| Autenticación | 10 sol./min | por IP |
| Configuración en tiempo de ejecución | 1.000 sol./min | por token de inserción |
| Envío de consentimiento | 300 sol./min | por token de inserción |
| Revocación de consentimiento | 60 sol./min | por token de inserción |
| Creación de escaneo | 10 sol./min | por inquilino |
| Carga de medios | 20 sol./min | por inquilino |
| Gestión (general) | 120 sol./min | por clave de API |
Cabeceras de límite de velocidad
Cada respuesta incluye:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1741521600
Cuando se supera el límite de velocidad, recibe una respuesta 429:
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Try again in 30 seconds."
}
}
Manejo de límites de velocidad
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');
}