Al usar la API de Binance para trading cuantitativo o analisis de datos, uno de los problemas mas frustrantes es el limite de frecuencia. Si envias solicitudes demasiado rapido te bloquean la IP, pero si vas demasiado lento afecta la ejecucion de tu estrategia.
Limites de frecuencia de la API de Binance
Despues de registrarte en Binance y crear tu API Key, debes respetar los siguientes limites:
Limites de la REST API
Peso de solicitud (Request Weight)
Binance no limita simplemente cuantas solicitudes por minuto puedes hacer, sino que usa un sistema de "peso". Diferentes endpoints consumen diferentes pesos:
- Consulta de cotizaciones comunes: peso 1-5
- Consulta de profundidad de mercado: peso 5-50 (depende de la profundidad solicitada)
- Colocar ordenes: peso 1
- Consulta de informacion de cuenta: peso 5-10
Limites predeterminados:
- 1200 de peso por minuto (por IP)
- 100 ordenes por cada 10 segundos (por cuenta)
- 200,000 ordenes por dia (por cuenta)
Limites de WebSocket
- Maximo 200 flujos de datos por conexion
- Numero maximo de conexiones WebSocket por IP limitado
- Maximo 5 mensajes por segundo por conexion
Como saber cuanto he usado?
En el Header de cada respuesta de la API se devuelve el uso actual:
X-MBX-USED-WEIGHT-1m: Peso usado en el minuto actualX-MBX-ORDER-COUNT-10s: Numero de ordenes en los ultimos 10 segundosX-MBX-ORDER-COUNT-1d: Numero de ordenes del dia
Lee esta informacion del Header para monitorear tu consumo.
Que pasa si excedes el limite?
HTTP 429
Cuando excedes el limite de frecuencia, la API devuelve un error HTTP 429 (Too Many Requests). En ese momento:
- La IP o cuenta sera restringida temporalmente
- Debes esperar un periodo de enfriamiento para recuperar el acceso
- El tiempo de espera suele ser de unos segundos a unos minutos
HTTP 418
Si continuas excediendo el limite sin reducir la frecuencia, podrias recibir un error 418, lo que significa que tu IP ha sido bloqueada por un periodo mas largo (de minutos a dias).
Como evitar exceder el limite?
1. Usa WebSocket en lugar de polling
Para obtener cotizaciones en tiempo real, no uses REST API con consultas repetitivas; cambia a flujos de datos WebSocket. WebSocket funciona en modo push y no consume peso de la REST API.
// No recomendado: llamar a la REST API cada segundo para obtener precios
// Recomendado: suscribirse a WebSocket para recibir actualizaciones de precios en tiempo real
2. Combina solicitudes
Si necesitas consultar informacion de multiples pares de trading, usa endpoints batch para obtener todo de una vez en lugar de consultar uno por uno.
3. Cachea los datos
Los datos que no requieren actualizacion en tiempo real (como reglas de trading, informacion de monedas) no los solicites cada vez; guardalos en cache local y actualiza periodicamente.
4. Monitorea el consumo de peso
En tu codigo, registra el peso consumido por cada solicitud y reduce la velocidad automaticamente cuando te acerques al limite.
5. Distribuye las solicitudes de forma razonable
Usa delays para controlar la frecuencia de solicitudes en vez de enviarlas todas de golpe.
Diferencias de limites segun nivel de cuenta
Cuanto mas alto sea tu nivel VIP, mas flexibles seran los limites de la API:
- Usuarios normales: limites estandar
- VIP 1-3: ligero aumento
- VIP 4+: limites de peso y ordenes mas altos
- Cuentas de market maker: limites maximos
Si tu estrategia requiere mayor frecuencia, considera subir tu nivel VIP (aumentando tu volumen de trading o manteniendo BNB).
Preguntas frecuentes
P: Puedo evadir los limites usando multiples IPs? Los limites de peso tienen dimension de IP y de cuenta. Usar multiples IPs puede evadir el limite por IP, pero no el limite de ordenes por cuenta.
P: Los limites en el entorno de pruebas son iguales? Los limites del testnet pueden diferir de los de la red principal.
P: Los limites pueden cambiar? Si. Binance puede ajustar los limites segun la carga del sistema; sigue los anuncios para obtener la informacion mas reciente.
Si aun no tienes la APP, puedes descargar la APP de Binance primero.
Resumen
La API de Binance usa un sistema de peso para controlar la frecuencia, con un predeterminado de 1200 de peso por minuto. Exceder el limite genera errores 429 o 418. Las estrategias de optimizacion incluyen usar WebSocket, combinar solicitudes, cachear datos y monitorear el peso. Cuanto mas alto sea tu nivel VIP, mayores seran los limites.