Saltar a contenido

Rate Limit

SubX API implementa rate limiting para asegurar un uso justo y mantener la calidad del servicio para todos los usuarios.

Descripción General

Los límites de tasa se aplican por clave de API (o por IP para solicitudes no autenticadas) para:

  • Asegurar uso normal - Prevenir solicitudes excesivas que podrían impactar el rendimiento del servicio
  • Garantizar calidad de servicio - Mantener tiempos de respuesta rápidos para todos los usuarios
  • Asignación justa de recursos - Asegurar que todos los desarrolladores tengan acceso equitativo a la API

Cómo Funciona

Cada clave de API tiene límites de solicitudes aplicados en una ventana deslizante por minuto. Si excedes el límite, recibirás una respuesta 429 Too Many Requests con un header Retry-After indicando cuántos segundos esperar.

Headers de Respuesta

Cada respuesta de la API incluye headers de rate limit para que puedas monitorear tu cuota actual:

Header Descripción Ejemplo
X-RateLimit-Limit Máximo de solicitudes permitidas por ventana 60
X-RateLimit-Remaining Solicitudes restantes en la ventana actual 42
X-RateLimit-Reset Timestamp Unix (epoch) cuando la ventana se reinicia 1710700000
X-RateLimit-Window Duración de la ventana en segundos 60
Retry-After Segundos a esperar antes de reintentar (solo en respuestas 429) 45

Ejemplo de Headers

Respuesta exitosa (200):

HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1710700000
X-RateLimit-Window: 60

Respuesta con límite excedido (429):

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1710700000
X-RateLimit-Window: 60
Retry-After: 45

Usando Retry-After

Cuando recibas una respuesta 429, usa el header Retry-After para saber exactamente cuánto esperar:

if response.status_code == 429:
    retry_after = int(response.headers.get("Retry-After", 60))
    print(f"Límite alcanzado. Reintentando en {retry_after}s...")
    time.sleep(retry_after)

Mejores Prácticas

  • Monitorea X-RateLimit-Remaining para reducir la velocidad proactivamente antes de alcanzar el límite
  • Usa el valor del header Retry-After en lugar de delays fijos
  • Cachea los resultados cuando sea posible para reducir las llamadas a la API
  • Solicita solo los datos que necesitas (usa parámetros limit apropiados) :::

¿Necesitas Límites Más Altos?

Si tu caso de uso requiere límites de tasa más altos, por favor contacta a soporte con detalles sobre tu aplicación y patrones de uso esperados.