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

PlanRequests/hora
Free10
Pro100
Max1.000
Ultra10.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-Aftersegundos hasta que se resetee la ventana
  • X-RateLimit-Limittu límite actual por hora
  • X-RateLimit-Resettimestamp 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.