PageWatch
Extraia preços, listas, tabelas e eventos de páginas web estáticas e monitore-os para alterações (MCP remoto).
Servidor MCP hospedado
npx add-mcp 'https://pagewatch.zenith-ops.workers.dev/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
PageWatch
O PageWatch extrai dados estruturados de páginas web estáticas públicas (texto, atributos, listas, tabelas, preços, eventos, links, JSON) e monitora páginas em busca de alterações, com alertas via RSS, ICS e webhooks assinados. Sem renderização de JavaScript.
URL base
https://pagewatch.zenith-ops.workers.dev
Endpoints gratuitos
- GET /v1/extract - Extrai dados de uma página pública (grátis, 30 por dia por cliente)
- POST /v1/monitors - Cria um monitor (plano gratuito: intervalo mínimo de 60 min, 3 ativos por cliente, 30 dias)
- DELETE /v1/monitors/{id} - Exclui um monitor e seus eventos (Autorização: Bearer <manage_token>)
- POST /v1/monitors/{id}/renew - Estende um monitor gratuito por 30 dias (reativa monitores expirados ou quebrados) (Autorização: Bearer <manage_token>)
- POST /v1/monitors/{id}/check-now - Executa uma verificação imediatamente (uma vez a cada 10 minutos) (Autorização: Bearer <manage_token>)
- GET /m/{id}/events.json - Registro de alterações de um monitor (público por id)
- GET /m/{id}/latest.json - Último valor extraído e status
- GET /m/{id}/feed.rss - Feed RSS 2.0 dos últimos 50 eventos
- GET /m/{id}/calendar.ics - Calendário ICS (monitores em modo de eventos)
Endpoints pagos (x402 v2, esquema exato, eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, pagar para 0x9f950fbeE661D8867750750F600Ff03fb7BAbe8D)
- GET /v1/pro/extract - $0,002 - Igual ao /v1/extract gratuito, mas sem o limite de 30 requisições por dia: busca uma página HTML ou JSON estática pública e retorna dados estruturados (texto, attr, lista, tabela, preço, eventos, página, links, json) como JSON, CSV ou ICS. Respeita robots.txt. Sem renderização de JavaScript. Chamadas com falha (4xx/5xx) não são cobradas.
- POST /v1/pro/monitors - $0,25 - Cria um monitor que verifica uma página estática pública a cada 15 minutos (ou mais devagar) por 30 dias e registra cada alteração. Até 5 URLs de webhook assinadas, um feed RSS, um registro de eventos JSON e (no modo de eventos) um calendário ICS. Sem limite por cliente no número de monitores; o limite global ainda se aplica. A resposta contém o token de gerenciamento uma única vez. Chamadas com falha (4xx/5xx) não são cobradas.
Uma requisição não paga retorna HTTP 402 com um cabeçalho PAYMENT-REQUIRED (JSON em base64). Repita com um cabeçalho PAYMENT-SIGNATURE; o @x402/fetch faz isso automaticamente. Você é cobrado apenas quando o status da resposta é inferior a 400.
Extração
Modos: texto, attr, lista, tabela, preço, eventos, página, links, json. Parâmetros: url, modo, seletor, attr, campos, match, jsonpath, sameHost, all, tableIndex, formato. Formatos: json (padrão), csv, ics (modo de eventos).
Monitores
POST /v1/monitors com JSON {url, mode, selector?, attr?, fields?, interval_minutes?, webhook_url?}. A resposta contém o manage_token (exibido uma vez), webhook_secret (se um webhook foi fornecido), feed_url e events_url. Entrega de webhook: um POST com JSON {monitor_id, url, kind, old, new, at, summary} e o cabeçalho X-PageWatch-Signature: sha256=<hex HMAC-SHA256 of the raw body, key = webhook_secret returned when the monitor was created>. Timeout de 5 segundos, redirecionamentos não são seguidos, no máximo 3 tentativas.
MCP
https://pagewatch.zenith-ops.workers.dev/mcp (HTTP streamable, JSON-RPC 2.0). Ferramentas: extract_page, watch_page, get_changes. Passe paid=true para extract_page ou watch_page para obter os requisitos de pagamento x402 para os endpoints pagos.
Limites e notas de honestidade
- Tamanho da página: 600 KB por página; páginas maiores são rejeitadas (422)
- Extrações gratuitas: 30 por dia por cliente, depois HTTP 429
- Monitores gratuitos: 3 ativos por cliente, 30 dias, renováveis, verificação a cada 60 minutos ou mais devagar
- Monitor Pro: $0,25 uma vez: 30 dias, verificação a cada 15 minutos, até 5 webhooks
- Capacidade global: 400 monitores ativos no total (em todo o serviço)
- Polidez por host: robots.txt é respeitado; verificações agendadas buscam um host no máximo uma vez a cada 15 minutos
- Formato da requisição: apenas http/https, portas 80/443, nomes DNS públicos, sem credenciais; seletor de até 300 caracteres, até 20 campos, corpos JSON de até 8 KB
- Renderização: Apenas HTML estático e JSON. Nenhum JavaScript é executado. JSON-LD, Open Graph e microdados são lidos.
- Páginas que constroem seu conteúdo com JavaScript retornam pouco ou nada; não há navegador headless.
- Páginas atrás de login, paywall ou proteção contra bots estão fora do escopo. Nenhum cookie ou credencial é jamais enviado.
- As verificações são de melhor esforço: o serviço roda em um plano gratuito do Cloudflare com cron a cada 15 minutos; uma verificação pode atrasar quando muitos monitores estão pendentes.
- Seletores quebram quando um site altera seu markup. Após 3 falhas, um monitor desacelera e após 10 ele para com um evento 'broken'.
- Webhooks recebem no máximo 3 tentativas de entrega (uma por execução do cron). Use o feed RSS ou events.json como fonte da verdade.
- Qualquer pessoa que conheça o id de um monitor pode ler seu feed. Não monitore páginas cujo conteúdo você não possa compartilhar.
Privacidade
O PageWatch armazena a configuração do monitor e os valores extraídos (além de um registro de alterações) até que o monitor seja excluído ou tenha expirado por 30 dias. Endereços IP nunca são armazenados: cotas usam um hash SHA-256 com sal que rotaciona diariamente, e o limite de proprietário do monitor usa um hash com sal do IP criador. O token de gerenciamento é armazenado apenas como um hash SHA-256. Um segredo de assinatura de webhook é armazenado para que as entregas possam ser assinadas.