Vigilar cambios en una web
La mayoría de las páginas que vale la pena vigilar no avisan cuando cambian: una actualización de términos de servicio, una cláusula que desaparece, una línea nueva en un changelog, todo pasa desapercibido a menos que alguien recargue justo en el momento indicado.
Esta API de monitoreo de cambios revisa una página según el horario que defina y envía un webhook cuando el texto de la página cambia, para que nadie tenga que vigilar una pestaña.
El problema de 'revisarlo de vez en cuando'
Volver a visitar una página a mano para ver si cambió no escala más allá de un puñado de URL, y es exactamente el tipo de tarea que se olvida durante semanas hasta que el cambio ya importaba. Los equipos legales que siguen los términos de un proveedor, los investigadores de seguridad que vigilan una página de divulgación y los periodistas que monitorean un aviso oficial enfrentan el mismo riesgo silencioso: la página cambió y nadie estaba mirando. El endpoint monitor-changes elimina esa incertidumbre al revisar en un intervalo definido y comparar el texto de la página, no solo una marca de tiempo.
Cómo funciona el monitoreo en la práctica
Se envía una URL a POST /web/monitor-changes, se recibe un task_id y la tarea queda registrada para seguimiento continuo. Cada revisión compara el texto actual contra la última versión conocida; cuando el texto difiere, se dispara un webhook firmado con el cambio, o el resultado queda disponible mediante un enlace firmado válido por 24 horas si se prefiere consultar en vez de recibir un aviso automático.
Qué cuenta como un cambio
La revisión compara el texto extraído de la página, no el HTML crudo: los scripts y el marcado se descartan antes de comparar. Pero no intenta juzgar qué texto 'importa': cualquier cambio en el texto visible cuenta, incluido un titular rotativo, una fecha en el pie de página o un contador de visitas mostrado como texto. La solución práctica es vigilar páginas cuyo texto de fondo sea estable y apuntar a la URL más específica —la página de la política en sí, no una portada muy movida— para que la señal se mantenga limpia.
Una pieza silenciosa de la historia de la web abierta
Vigilar páginas en busca de cambios es anterior a las APIs modernas por décadas: los primeros usuarios de internet dependían de extensiones de navegador y programas de escritorio que consultaban páginas y enviaban por correo un diff, mucho antes de que existieran los webhooks como mecanismo de entrega. La necesidad de fondo nunca desapareció; lo que cambió es que hoy un webhook permite que un cambio detectado dispare directamente un flujo automatizado, en lugar de que una persona lea un correo y decida qué hacer después.
Integrarlo en una vigilancia automatizada
Como esta tarea tiene un precio simple de $0.002 por solicitud sin recargo por URL, está pensada para correr de forma continua sobre una lista de páginas vigiladas y no solo como una revisión ocasional. Se puede apuntar el webhook a un flujo que abra un ticket, publique en un canal del equipo o archive una copia de la página, y el monitoreo corre sin intervención mientras la vigilancia siga activa.
Qué puede hacer con ella
Seguimiento de términos de servicio y políticas
Un equipo legal recibe un aviso apenas un proveedor actualiza sus términos de servicio, en lugar de enterarse del cambio meses después.
Avisos gubernamentales y regulatorios
Un equipo de cumplimiento vigila la página de avisos públicos de un regulador para detectar actualizaciones que afecten la operación del negocio.
Vigilancia de páginas de la competencia
Un equipo de producto monitorea la página de precios o funciones de un competidor para detectar cambios el mismo día que se publican.
Alertas de documentación y changelog
Un equipo de ingeniería sigue la página de changelog de una API externa para que los cambios que rompen compatibilidad no lleguen de sorpresa.
Preguntas frecuentes
¿Cómo decide esta api monitorear cambios en una web que algo cambió?
Extrae el texto de la página (descartando scripts y marcado) y lo compara contra la versión previamente registrada; cualquier diferencia en ese texto dispara un aviso. No juzga qué cambios 'importan', así que una fecha o un contador mostrados en el texto también pueden dispararlo.
¿Existe un plan gratuito para la API de monitoreo de cambios web?
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.
¿Cuánto cuesta la API de monitoreo de cambios?
Cuesta $0.002 por solicitud, una tarifa plana sin cargo adicional por URL.
¿Cómo me entero cuando una página cambia?
Mediante un webhook firmado, recomendado para alertas automatizadas, o un enlace firmado válido por 24 horas si se prefiere revisar manualmente.
¿Puedo monitorear varias páginas a la vez?
Sí, se envía una tarea por cada URL y cada una se factura de forma independiente a la tarifa plana por solicitud.
¿Qué pasa si una revisión falla porque la página está caída temporalmente?
La tarea reintenta automáticamente hasta tres veces; si sigue fallando, se recibe un error claro y no se cobra nada.
¿Me va a avisar por cambios menores, como un banner rotativo?
Ignora los redibujos puramente visuales que no cambian el texto, y descarta scripts y marcado; pero si el texto de un banner o una fecha del pie cambian en el texto visible de la página, eso sí cuenta como cambio. Vigile una página estable o la URL más específica para reducir el ruido.
¿El contenido de la página monitoreada se guarda a largo plazo o se usa para entrenamiento?
No, el contenido se conserva solo lo necesario para detectar cambios y se elimina al terminar el período de retención, sin usarse nunca para entrenamiento.
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
Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. Esta capacidad está disponible actualmente mediante la API, no como herramienta interactiva en la Web.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/monitor-changes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'const res = await fetch("https://api.kit.forhosting.com/web/monitor-changes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/monitor-changes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/monitor-changes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/monitor-changes", 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
{
"url": "https://example.com"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.monitor_changes",
"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. |