Calculadora de límite de tasa API
Con un límite de 100 llamadas por minuto, enviar 350 exige 4 ventanas: tres lotes de 100 y uno de 50, separados 60 segundos, con un mínimo de 180 segundos en total. Planifique importaciones, sincronizaciones o cargas masivas sin superar el límite del proveedor. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Límite de tasa
- 100
- Solicitudes deseadas
- 350
- Segundos de la ventana
- 60
- Ventanas necesarias
- 4
- Tamaño del lote
- 100
- Tamaño del último lote
- 50
- Lotes completos
- 3
Devuelve cuántas ventanas necesita, el tamaño máximo de lote que no supera el límite, el tamaño del lote parcial final, la demora entre inicios de lote, el tiempo mínimo de reloj si arranca el primer lote de inmediato y el equivalente máximo de peticiones por segundo.
Cómo ventanas, lotes y demora le mantienen bajo el límite
Un límite de tasa de R peticiones por ventana de longitud W segundos significa que, en cualquier ventana deslizante o fija de W segundos, el proveedor aceptará como máximo R llamadas correctas. Cuando necesita D peticiones en total y D es mayor que R, no puede disparar todo de una vez. El plan seguro es enviar como máximo R peticiones en la primera ventana, esperar a que transcurra una ventana completa, enviar las siguientes R y repetir hasta agotar el resto.
El número de ventanas necesarias es el techo de D dividido por R. Si D es trescientos cincuenta y R es cien, necesita cuatro ventanas: tres lotes completos de cien y un lote final de cincuenta. La demora entre inicios de lote es igual a W cuando se requiere más de una ventana, y cero cuando basta una sola.
El tiempo mínimo transcurrido es entonces (ventanas menos uno) veces W, porque el primer lote puede empezar en el instante cero y el último arranca tras las esperas previas. Este modelo coincide con las heurísticas habituales de ventana fija y token-bucket en bibliotecas cliente: es deliberadamente conservador para ventanas fijas y un buen primer presupuesto para token buckets cuando no rellena a mitad de ráfaga.
Preguntas frecuentes
¿Qué demora debo esperar entre lotes?
Cuando basta una sola ventana, la demora es cero.
¿Qué ocurre si el límite de tasa es cero o negativo?
Un límite de tasa no positivo no es un presupuesto válido y la llamada no se factura.
¿Cuántas ventanas necesito para 350 llamadas con un límite de 100?
Cuatro. Se divide 350 entre 100 y se redondea hacia arriba: tres lotes completos de 100 y un último lote de 50. El último es más pequeño, así que nunca supera el límite.
¿Cuál es el tiempo mínimo que tarda todo el trabajo?
El número de ventanas menos una, multiplicado por la duración de la ventana. Con 4 ventanas de 60 segundos son 180 segundos, porque el primer lote sale de inmediato y solo las esperas suman tiempo.
¿La calculadora envía las llamadas por mí?
No. Nunca contacta con el servicio. Solo dimensiona el calendario, de modo que su propio programa envía cada lote y espera la pausa indicada antes del siguiente.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/api-rate-limit-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"rate_limit":100,"desired_requests":350}'const res = await fetch("https://api.kit.forhosting.com/dev/api-rate-limit-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"rate_limit": 100,
"desired_requests": 350
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/api-rate-limit-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"rate_limit": 100,
"desired_requests": 350
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/api-rate-limit-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"rate_limit":100,"desired_requests":350}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"rate_limit":100,"desired_requests":350}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/api-rate-limit-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"rate_limit": 100,
"desired_requests": 350
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.api_rate_limit_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Las API públicas y privadas publican casi siempre un límite de tasa, por ejemplo cien peticiones por minuto o mil por hora. Quien deba enviar más tráfico del que admite una sola ventana tiene que dividir el trabajo en lotes y esperar entre ellos para que el proveedor no responda HTTP 429 ni revoque credenciales. Esta calculadora de presupuesto de límite de tasa de API recibe el máximo de peticiones por ventana, el total de peticiones que planea enviar y, de forma opcional, la duración de la ventana en segundos. Los límites de tasa no positivos fallan con invalid_input y no se facturan.
Cómo ventanas, lotes y demora le mantienen bajo el límite
La calculadora no llama a la API remota; solo dimensiona su calendario para que su propio cliente pueda dormir entre lotes.
Contrato de entrada, campos de respuesta y reglas de validación
Envíe por POST un cuerpo JSON con rate_limit, un entero positivo de peticiones permitidas por ventana; desired_requests, un entero no negativo de llamadas que pretende realizar; y opcionalmente window_seconds, una longitud finita positiva de esa ventana en segundos que por defecto es sesenta si se omite. Cada campo puede llegar como número JSON o como cadena numérica. Los campos ausentes, los valores no finitos, desired_requests fraccionario, rate_limit fraccionario y cualquier rate_limit que no sea estrictamente positivo fallan con invalid_input y un mensaje que nombra el campo. En caso de éxito el cuerpo repite rate_limit, desired_requests y window_seconds, y devuelve windows_needed, batch_size (máximo de peticiones por lote completo, igual a rate_limit cuando queda trabajo), last_batch_size (el lote parcial final, o un lote completo cuando D divide exacto), full_batches (cuántos lotes usan el tamaño máximo antes del resto), delay_between_batches_seconds, min_elapsed_seconds, max_requests_per_second como rate_limit dividido por window_seconds, y una cadena de fórmula breve que reescribe la regla del techo. Ejemplo: rate_limit cien, desired_requests trescientos cincuenta, window_seconds sesenta produce cuatro ventanas, lote de cien, último lote cincuenta, demora sesenta segundos y mínimo transcurrido ciento ochenta segundos. Cero desired_requests devuelve cero ventanas y cero demora sin error, útil para planificadores en seco.
Dónde resulta útil una calculadora de presupuesto de límite de API
Introducir ese recuento más el límite de tasa del proveedor en esta calculadora produce un calendario de espera que puede insertar en un bucle de worker sin tormentas de 429 a base de prueba y error. Los responsables de producto que estiman cuánto tardará una exportación masiva pueden convertir un recuento de documentos en tiempo de reloj antes de prometer al cliente una ventana el mismo día. La validación fallida no consume saldo. Los scripts de integración que rellenan webhooks, reindexan documentos de búsqueda o migran inquilinos suelen conocer el recuento total de elementos antes de empezar. Las herramientas de observabilidad y de caos pueden afirmar que un generador de carga sintética nunca supera max_requests_per_second derivado del límite publicado. Mantenga la lógica de calendario en su cliente; use este endpoint como única fuente de verdad de la aritmética para que móviles, edge workers y trabajos de CI planifiquen del mismo modo.
Casos de integración
Migraciones masivas y trabajos de relleno
Divida un recuento conocido de peticiones en lotes seguros respecto al límite de tasa y duerma delay_between_batches_seconds entre cada inicio de lote.
Estimaciones de SLA y runbooks
Convierta los límites de tasa del proveedor en min_elapsed_seconds para que los planes de guardia y los ETA al cliente coincidan con el estrangulamiento real.
Topes de prueba de carga y tráfico sintético
Derive max_requests_per_second a partir de rate_limit y window_seconds antes de configurar generadores que no deben activar las protecciones de producción.
Preguntas técnicas
¿Cómo calculo cuántas ventanas necesito para un límite de tasa de API?
Envíe rate_limit (peticiones enteras positivas por ventana), desired_requests (llamadas totales) y, opcionalmente, window_seconds (por defecto 60). windows_needed es ceil(desired_requests / rate_limit).
¿La calculadora llama a mi API o duerme por mí?
No. Solo devuelve los números del calendario. Su cliente envía los lotes y aplica la demora.
¿Cuánto cuesta la calculadora de límite de tasa de API?
La herramienta en el navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada correcta; la entrada inválida no se factura.