Saltearse al contenido

Límites de solicitudes

La API aplica límites de frecuencia por organización para garantizar un uso equitativo y la estabilidad de la plataforma.


Límites

VentanaLímite
Por segundo5 solicitudes

Se aplica por organización en todos los endpoints de la API de datos. Al superar el límite, se devuelve 429 Too Many Requests.


Encabezados de límite de frecuencia

Cuando una solicitud supera el límite de frecuencia, la respuesta incluye encabezados para facilitar el reintento:

EncabezadoDescripción
Retry-AfterSegundos de espera antes de reintentar
X-RateLimit-Limit-SecondLímite por segundo (5)

Ejemplo de respuesta 429

HTTP/1.1 429 Too Many Requests
Retry-After: 1
X-RateLimit-Limit-Second: 5
Content-Type: application/json
{"detail": "Rate limit exceeded. Please slow down."}

Estrategia de reintento

Utilice retroceso exponencial con el encabezado Retry-After:

import time
import requests
def api_request(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code != 429:
return response
retry_after = int(response.headers.get("Retry-After", 2 ** attempt))
print(f"Rate limited. Retrying in {retry_after}s...")
time.sleep(retry_after)
return response # Return last response if all retries exhausted

Buenas prácticas

  • Use paginación con límites altos: obtenga 200 elementos por página en lugar de hacer 200 solicitudes individuales.
  • Espacie las solicitudes cada ~200 ms: un intervalo de 200 ms lo mantiene con holgura por debajo de las 5 solicitudes por segundo, con margen para variaciones.
  • Almacene respuestas en caché: si consulta los mismos datos de forma repetida, guárdelos en caché localmente para reducir las llamadas a la API.
  • Use retroceso exponencial, no bucles continuos: cuando alcance el límite de frecuencia, respete siempre el encabezado Retry-After en lugar de reintentar de inmediato.