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-Remainingpara reducir la velocidad proactivamente antes de alcanzar el límite - Usa el valor del header
Retry-Afteren 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
limitapropiados) :::
¿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.