Uptime multirregión
Que una sola región marque error no significa que su sitio esté caído: puede ser una ruta de red con un mal momento. Este endpoint consulta su URL desde varios puntos a la vez y devuelve un veredicto por región, para que distinga una caída real de un tropiezo local antes de despertar a nadie con una alerta falsa.
Por qué un solo ping es mal testigo
Un chequeo de disponibilidad clásico consulta su servidor desde un único lugar y trata esa respuesta como verdad absoluta. Pero internet es una malla de rutas independientes, y que un proveedor de tránsito tenga una tarde difícil puede hacer que un servidor perfectamente sano parezca muerto desde ese único punto de vista. Quien haya perseguido una alerta falsa a las 3 de la madrugada conoce el costo de confiar en un solo testigo. web.uptime_multi existe para que el veredicto salga de un quórum, no de una sola opinión.
Qué envía, qué recibe
Hace POST a /web/uptime-multi con la URL objetivo y las opciones del chequeo (método, código esperado, tiempo de espera). La tarea corre de forma asíncrona: recibe un task_id de inmediato y las comprobaciones se disparan en paralelo desde varias regiones. El resultado incluye el código de respuesta, la latencia y la disponibilidad por región, más un estado consolidado, así no tiene que programar su propia lógica de quórum cada vez.
Quién lo necesita en la práctica
Equipos que operan su propia página de estado, agencias que vigilan decenas de sitios de clientes y plataformas SaaS que integran datos de disponibilidad en el panel de sus clientes chocan con el mismo problema al usar chequeos de una sola región: fatiga de alertas por falsos positivos. El chequeo multirregión es la solución estándar que usan los proveedores de monitoreo serios, y ahora está disponible como una simple llamada de API en lugar de una plataforma completa que hay que adoptar.
Pensado para automatizaciones, no para paneles
Al ser asíncrono con entrega por webhook, encaja de forma natural en un cron, un generador de páginas de estado o un bot de respuesta a incidentes, sin necesidad de sondear constantemente. Dispara el chequeo, deja que el webhook llegue a su sistema de alertas y define usted mismo el umbral de qué cuenta como 'caído' (todas las regiones fallando, la mayoría, o cualquiera de ellas, según qué tan cauteloso quiera ser).
Un precio a la medida de la carga
A $0.002 por solicitud puede chequear varios endpoints cada minuto durante todo el día sin hacer cálculos mentales sobre su factura. Las tareas fallidas -entendidas como una tarea que no logró ejecutarse de nuestro lado, no como que su sitio estuviera caído- se reintentan automáticamente hasta tres veces y nunca se cobran, así que un tropiezo pasajero de nuestro lado jamás le cuesta un centavo.
Qué puede hacer con ella
Backend de una página de estado pública
Alimente una página de estado orientada a clientes con datos reales de varias regiones en lugar de un solo ping autoreportado.
Vigilancia de clientes de una agencia
Una agencia que administra 40 sitios de clientes programa un chequeo cada cinco minutos por dominio y enruta las alertas del webhook a su sistema de tickets.
Verificación posterior a un despliegue
Un pipeline de CI llama al endpoint justo después de desplegar para confirmar que la nueva versión es accesible desde todas las regiones antes de marcar el despliegue como exitoso.
Diagnóstico de una caída regional
Cuando un cliente reporta 'su sitio está caído' y otros no, el detalle por región muestra rápido si es un problema de su proveedor local o una caída real.
Preguntas frecuentes
¿Cuántas regiones cubre cada chequeo?
La respuesta incluye resultados de varias regiones independientes por cada solicitud, dándole una vista basada en quórum en vez de un solo dato aislado.
¿Existe un plan gratuito para esta api de monitoreo de disponibilidad global?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cómo recibo los resultados?
Por webhook firmado a su endpoint (lo recomendado para automatizaciones) o por un enlace firmado válido durante 24 horas si prefiere consultarlo usted mismo.
¿Qué se considera 'caído' en la respuesta?
Le entregamos los códigos y latencias por región tal cual; usted define su propio umbral (alguna región caída, mayoría caída o todas caídas) según su tolerancia.
¿Puedo chequear puertos que no sean HTTP?
Este endpoint se enfoca en disponibilidad HTTP/HTTPS con método y código esperado configurables; no es un escáner TCP o ping genérico.
¿Se cobra si un chequeo falla?
Solo si su destino realmente no responde -eso es un resultado válido, no un fallo. Si la tarea en sí no logra ejecutarse de nuestro lado, se reintenta automáticamente hasta tres veces y nunca se factura.
¿Puedo correrlo cada minuto para muchos dominios?
Sí, ese es justamente el uso previsto; a $0.002 por solicitud está pensado para monitoreo de alta frecuencia en múltiples dominios.
¿En qué se diferencia de un script de uptime casero?
Un script en un solo servidor solo ve internet desde donde corre; este endpoint chequea desde varias regiones por llamada y devuelve un veredicto consolidado sin que tenga que mantener infraestructura propia.
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, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/uptime-multi \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/web/uptime-multi", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/uptime-multi",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/uptime-multi", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/uptime-multi", 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
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.uptime_multi",
"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.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |