Rate limits
Límites de uso por plan
Aplicamos rate limit por API key, en una ventana móvil de 1 hora. Los uploads directos a R2 con presigned URLs NO cuentan contra este límite — solo cuentan llamadas a endpoints /v1/*.
Límites por plan
| Plan | Requests/hora | ||
|---|---|---|---|
| Free | 10 | — | |
| Pro | 100 | — | |
| Max | 1.000 | — | |
| Ultra | 10.000 | — |
Cuando pasás el límite
http
HTTP/1.1 429 Too Many Requests
Retry-After: 1847
X-RateLimit-Limit: 100
X-RateLimit-Reset: 1780201234
{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded (100 requests/hour). Retry in 1847s.",
"retry_after_seconds": 1847
}
}Headers de respuesta
En cada respuesta 429 te devolvemos estos headers para que implementes backoff correctamente:
Retry-After— segundos hasta que se resetee la ventanaX-RateLimit-Limit— tu límite actual por horaX-RateLimit-Reset— timestamp Unix cuando se resetea
Mejores prácticas
- Cacheá la respuesta de GET /v1/me — no la llames antes de cada operación.
- Para subir muchos exámenes en batch, paralelizá con un semáforo (ej: 10 concurrentes).
- Si necesitás más de 10.000 requests/hora sostenido, escribinos: armamos un acuerdo enterprise.