Guías

Límites de uso de la API

Para mantener la API rápida y estable para todos, cada API key tiene un límite de solicitudes por minuto y una cuota diaria. Los límites aplican por API key — no por endpoint ni por IP.
Los límites están activos
Una solicitud que excede su límite se rechaza con estatus 429. Si tu integración se mantiene dentro de sus límites, nada cambia para ti.

Los límites

VentanaLímiteSe reinicia
Por minuto150 solicitudesCada 60 segundos
Por día10,000 solicitudesA la medianoche, hora de la Ciudad de México
Si tu integración necesita más, escríbenos a nacho@savio.mx — los límites se pueden subir por cuenta. Pueden subir en cualquier momento; solo se reducirán con al menos 30 días de aviso.

Encabezados en cada respuesta

Cada respuesta de la API incluye encabezados con la situación actual de tu API key, para que tu cliente pueda monitorearla sin esperar a recibir errores:
RateLimit-Policy: 150;w=60, 10000;w=86400
RateLimit: limit=150, remaining=147, reset=42
X-RateLimit-Limit: 150
X-RateLimit-Remaining: 147
X-RateLimit-Reset: 42
EncabezadoSignificado
RateLimit-PolicyLos límites que aplican a tu API key, con el tamaño de cada ventana en segundos
RateLimitLa ventana más restringida en este momento; reset son los segundos para que se reinicie
X-RateLimit-*Equivalentes legacy de los mismos valores

Qué pasa al exceder un límite

La solicitud se rechaza con estatus 429, un encabezado Retry-After con los segundos a esperar, y este cuerpo:
{
"error": "Rate limit exceeded: max 150 requests per minute per API key. Retry after 12 seconds.",
"errorCode": "rate-limit-exceeded"
}
  • errorCode es rate-limit-exceeded para el límite por minuto y daily-quota-exceeded para la cuota diaria.
  • Para la cuota diaria, Retry-After apunta a la medianoche de la Ciudad de México.
  • Una solicitud rechazada no consume cuota: reintentar después de un 429 no quema tu cuota diaria.

Buenas prácticas

  • Monitorea X-RateLimit-Remaining y alerta si se acerca a 0 de forma sostenida — es la señal para bajar el ritmo antes de recibir errores.
  • Distribuye los lotes grandes: con una pausa de ~500 ms entre solicitudes (~2 por segundo) te mantienes debajo del límite por minuto sin alargar mucho el proceso.
  • Ante un 429, espera los segundos de Retry-After antes de reintentar, en lugar de reintentar de inmediato.
  • ¿Tu caso necesita un límite mayor? Escríbenos a nacho@savio.mx y lo subimos para tu cuenta.
La lista completa de endpoints está en la Referencia de la API.