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.

Outros