Rate Limits
Límites de la API
Conocé los límites de requests y cómo manejar el error 429.
Límites
General
Todos los endpoints
200 req/min
Trading
/orders, /repos
30 req/min
WebSocket
Suscripciones
50 títulos/conexión
Headers de respuesta
Cada respuesta incluye headers con tu uso actual:
BASH
X-RateLimit-Limit: 200X-RateLimit-Remaining: 195X-RateLimit-Reset: 1767456734Limit — Máximo permitido
Remaining — Requests restantes
Reset — Timestamp Unix de reinicio
Error 429: Rate Limit Exceeded
Cuando excedés el límite, recibís un error 429. Usá el header Retry-After para saber cuántos segundos esperar.
Respuesta 429
HTTP/1.1 429 Too Many RequestsRetry-After: 45 { "meta": { "timestamp": "2026-01-03T16:00:00.000Z", "path": "/broker/orders", "method": "POST", "status_code": 429 }, "data": null, "error": { "message": "Rate limit exceeded. Try again in 45 seconds.", "code": "RATE_LIMIT_EXCEEDED" }}Estrategia de reintento
Implementá reintentos con backoff exponencial para manejar errores 429.
429esperar Retry-Afterreintentar
Python
1import time2import requests3 4def request_with_retry(url, headers, max_retries=3):5 for attempt in range(max_retries):6 response = requests.get(url, headers=headers)7 8 if response.status_code == 200:9 return response.json()10 11 if response.status_code == 429:12 retry_after = int(response.headers.get("Retry-After", 60))13 time.sleep(retry_after)14 continue15 16 response.raise_for_status()17 18 raise Exception("Max retries exceeded")Buenas prácticas
- Monitorear
X-RateLimit-Remainingpara evitar llegar al límite - Siempre respetar el header
Retry-After - Cachear respuestas cuando sea posible
- Usar WebSocket para datos en tiempo real en lugar de polling