Rate limits y cuotas
Cotizave aplica rate limiting por API Key con cuotas mensuales que dependen de tu Plan.
Cuotas por Plan
| Plan | Requests / mes | RPS (sostenido) | Burst | Precio |
|---|---|---|---|---|
| Gratis | 1.500 | 2 | 5 | $0 |
| Esencial | 20.000 | 3 | 8 | $7 / mes |
| Profesional | 60.000 | 5 | 15 | $15 / mes |
| Escala | 150.000 | 10 | 25 | $29 / mes |
| Escala Plus | 500.000 | 15 | 40 | $59 / mes |
| A medida | A medida | A medida | A medida | Contactar |
Los contadores mensuales se reinician al comienzo del ciclo de tu Plan, anclado a la fecha de activación (en el plan Gratis, a la fecha de creación de la cuenta) — es decir, en ese día del mes, no necesariamente el día 1 del calendario.
Cómo se cuenta cada request
Un "request" descuenta cuota cuando recibe un código 2xx o un error de cliente 400/404 (input inválido o ruta/market inexistente — responsabilidad del caller). Específicamente:
Sí cuentan: requests exitosos (2xx) · errores de cliente por input o ruta inválida (400, 404).
No cuentan (casos en los que no se entregó servicio): fallos por autenticación (401, 403) · falta de pago (402) · rate limit (429) · fallos del lado de Cotizave (5xx).
En la práctica: no pagas por requests sin servicio (auth, pago, rate limit o errores nuestros); sí cuentan los 400/404 originados por input o rutas inválidas.
Headers de rate limiting
Cada respuesta de la API incluye estos headers para que monitorees tu uso en tiempo real:
| Header | Descripción |
|---|---|
| X-RateLimit-Limit | Cuota total mensual de tu Plan |
| X-RateLimit-Remaining | Requests disponibles en el mes actual |
| X-RateLimit-Reset | Fecha ISO 8601 del próximo reinicio del ciclo (el día de activación de tu Plan, no necesariamente el día 1) |
Y estos aparecen solo cuando recibes un 429:
| Header | Descripción |
|---|---|
| X-RateLimit-Scope | burst si pediste demasiado rápido · monthly si agotaste la cuota del mes |
| Retry-After | Segundos a esperar antes de reintentar (entero, mínimo 1) |
| X-RateLimit-Retry-After-Ms | La espera exacta en milisegundos. Solo en rechazos por velocidad |
| X-RateLimit-Limit-Second | Requests por segundo que permite tu Plan |
| X-RateLimit-Burst | Cuántos requests puedes enviar de golpe antes de que te frenemos |
Retry-After es conservador a propósito. El estándar HTTP solo admite segundos enteros, así que un rechazo que se resuelve en 33 ms igual reporta 1. Cuanto más alto tu Plan, más te penaliza ese redondeo — por eso publicamos también X-RateLimit-Retry-After-Ms con el valor real. Usa el primero si quieres algo simple; el segundo si quieres aprovechar todo tu Plan.
Ejemplo:
Esto significa:
- Tu Plan Profesional te permite 60.000 requests por mes
- Te quedan 58.273 requests este mes
- El contador se reinicia el 23 de junio de 2026 a las 00:00 UTC (día de activación de tu Plan)
Los dos tipos de 429
Un 429 puede venir de dos límites distintos, y se resuelven de forma opuesta. El header X-RateLimit-Scope te dice cuál fue.
Por velocidad (scope: burst)
Enviaste demasiados requests en muy poco tiempo. Tu cuota mensual sigue intacta.
Fíjate que X-RateLimit-Remaining sigue mostrando 58.273 requests disponibles: no agotaste nada, solo fuiste demasiado rápido. Se resuelve espaciando los pedidos, no con un upgrade.
Por cuota mensual (scope: monthly)
Consumiste todos los requests de tu ciclo.
Aquí Retry-After sí cuenta los segundos que faltan para el reset del ciclo, así que puede ser de días o semanas. No lo recortamos: es cuándo puedes volver de verdad.
Tus opciones cuando agotaste la cuota
- Hacer upgrade del Plan desde el dashboard. El cambio es inmediato y el nuevo contador se aplica al instante.
- Esperar al próximo ciclo. El contador se reinicia automáticamente en la fecha indicada por
X-RateLimit-Reset(el día de activación de tu Plan).
Abuso y suspensión
Los rate limits no son solo un límite de facturación: protegen el servicio para todos. Recibir un 429 de forma puntual es normal y esperado — basta con respetar el header Retry-After y reintentar con backoff.
Agrégale un jitter a esa espera: un valor aleatorio de unas décimas. Sin él, todos los clientes que chocan el límite al mismo tiempo reintentan exactamente al mismo segundo y vuelven a chocar en bloque.
Lo que no es normal es insistir contra el límite. Si detectamos patrones anómalos —volúmenes de 429 sostenidos, reintentos agresivos sin backoff, intentos de evadir la cuota (rotación de keys o cuentas, scraping distribuido) u otro uso abusivo— podemos aplicar medidas escalonadas:
Medidas que podemos tomar ante abuso: throttling adicional · límites por IP · bloqueo temporal · y, de persistir, suspensión de la API Key o de la cuenta, sin reembolso.
En resumen: un 429 ocasional no pasa nada; ignorarlo de forma sistemática sí puede terminar en suspensión. Esto está cubierto en los Términos (§7).
¿Necesitas más?
Si necesitas más cuota que la del plan más alto disponible, la escalamos a medida de tu volumen — contáctanos en support@cotizave.com.
- Más requests mensuales — mismo servicio, mismo soporte que Escala