Límites de tasa
Cada solicitud está sujeta a dos límites: un límite a nivel de cuenta, que cubre casi todos los endpoints, y, en unos pocos de ellos, un límite propio más estricto. El que alcanzarás es el menor de los dos.Límite a nivel de cuenta
Se cuenta por cuenta, en una ventana fija de un minuto. Todas las claves API de una misma cuenta comparten un único presupuesto: crear más claves no eleva tu límite.
Los presupuestos sin autenticación se cuentan por separado para cada grupo de endpoints — precios,
estado de factura, consultas de dirección, autenticación y todo lo demás —, de modo que consultar
precios nunca consume el presupuesto del resto.
Estos son los valores por defecto. Si tu integración necesita un techo más alto, lo elevamos para tu
cuenta: escríbenos por Telegram.
La ventana es fija, no deslizante: el contador se reinicia al comienzo de cada minuto. Pero no montes
una ráfaga alrededor de esa frontera. Dos mecanismos independientes hacen que sea mala apuesta. Delante
de la API hay un límite de borde de unas 50 solicitudes por segundo y por dirección IP, que responde
503 con cuerpo HTML, no un error JSON. Y una cuenta que se mantiene por encima de su límite durante
tres minutos seguidos ve su límite reducido a la mitad los diez minutos siguientes; tres minutos más así
la bloquean por completo durante treinta, con Retry-After: 1800. Las cuentas del nivel de
1000/minuto están exentas de esa escalada.Endpoints con un límite propio más estricto
Ten en cuenta que
POST /api/v1/invoices se cuenta por dirección IP, no por cuenta: si varios de
tus clientes envían solicitudes desde la misma IP de salida, comparten un único presupuesto de 10 por
minuto.
Los endpoints de compra — POST /api/v1/energy/buy, POST /api/v1/energy/activate,
POST /api/v1/bandwidth/buy y POST /api/v1/bandwidth/rentals — llevan un presupuesto más antiguo de
1000 solicitudes por minuto contado por dirección IP (los dos endpoints de bandwidth comparten uno
solo). Para una única cuenta nunca es el límite determinante, pero los clientes tras una misma IP de
salida lo comparten entre sí.
Los endpoints de gestión de webhooks (/api/v1/webhooks/...) no están cubiertos por el límite a nivel
de cuenta. El resto de los endpoints documentados no tiene límite propio: solo se les aplica el límite
a nivel de cuenta.
Cómo es una respuesta 429
El cuerpo depende de qué límite hayas alcanzado. Existen tres formas, así que analiza el cuerpo de forma defensiva en lugar de dar por supuesta una de ellas. Límite a nivel de cuenta. La respuesta lleva una cabeceraRetry-After con los segundos de espera:
POST /api/v1/invoices. No hay cabecera Retry-After; la
ventana es de un minuto:
POST /api/v1/account/withdrawal. Un detail de texto plano con los segundos restantes, sin
código de error:
Un 429 que reintentar no resuelve
POST /api/v1/invoices también responde 429 cuando ya tienes demasiadas facturas sin pagar: como
máximo 3 por dirección IP y como máximo 5 por cuenta. El límite por IP también se aplica a las
solicitudes autenticadas, por lo que suele ser el primero que alcanzas:
429 — por ejemplo
{"detail":"Energy price unavailable"}. Lee el mensaje antes de decidir cómo reaccionar.
Reintentos
- Si la respuesta lleva la cabecera
Retry-After, espera exactamente esos segundos. - En caso contrario, usa retroceso exponencial empezando en un segundo.
- Nunca reintentes de inmediato.
- Lee el cuerpo antes de reintentar:
Too many pending invoicesrequiere otra acción, no una espera más larga.