Website Change Monitor - AI Page Diff Tracker avatar

Website Change Monitor - AI Page Diff Tracker

Pricing

from $15.75 / 1,000 page monitoreds

Go to Apify Store
Website Change Monitor - AI Page Diff Tracker

Website Change Monitor - AI Page Diff Tracker

Monitor any website for changes. Visual diffs, AI change summaries.

Pricing

from $15.75 / 1,000 page monitoreds

Rating

5.0

(3)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

🔄 Website Change Monitor — Track Page Changes with AI Summaries

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Monitor any website for content changes. Compare page snapshots across scheduled runs, target specific page sections with CSS selectors, get line-level diffs, and receive optional AI-powered change summaries via Google Gemini. Track prices, stock availability, job postings, news, or any content updates.

✨ Features

  • 🔍 Change detection — Compare page content snapshots across runs using SHA-256 hashing
  • 🎯 CSS selector targeting — Monitor only specific page sections (prices, stock status, headlines, articles)
  • 📊 Line-level diff — See exactly what was added and removed with change percentage calculation
  • 🤖 AI change summaries — Optional Gemini-powered human-readable descriptions of detected changes
  • 🌐 Multi-URL monitoring — Monitor multiple pages in a single run with parallel fetching
  • 🔄 3 comparison modestext (stripped HTML), html (raw structure), visual_hash (layout change detection)
  • ⚙️ Change threshold — Filter out minor edits (timestamps, ads) by setting a minimum change percentage
  • 💾 Persistent snapshots — Baseline stored in Apify Key-Value Store, persists across scheduled runs
  • 🛡️ Error handling — Failed requests are reported with error details, never silently skipped
  • 💰 Pay per result — $0.03/page monitored

📥 Input

ParameterTypeRequiredDefaultDescription
urlsstring[]YesURLs to monitor for changes
cssSelectorstringNo""CSS selector to monitor specific page sections (e.g. .price, #stock-status, article.post)
modestringNo"text"Comparison mode: text (stripped HTML), html (raw structure), or visual_hash (layout changes)
changeThresholdintegerNo1Minimum change % to report (0 = any change, higher = filter noise, max 100)
maxSnapshotSizeintegerNo500000Max characters per page snapshot (1000-5000000)
enableAiSummarybooleanNofalseEnable Gemini AI change summaries
geminiApiKeystringNoGoogle Gemini API key for AI summaries
proxyConfigurationobjectNoProxy settings to avoid IP blocks
navigationTimeoutSecsintegerNo30Page load timeout in seconds (5-120)
maxConcurrencyintegerNo5Parallel page fetches (1-20)

Input Example

{
"urls": [
"https://www.amazon.com.br/dp/B09V3KXJPB",
"https://news.ycombinator.com",
"https://careers.google.com/jobs/results/"
],
"cssSelector": ".price",
"mode": "text",
"changeThreshold": 1,
"enableAiSummary": false
}

📤 Output

Every monitored page produces one result:

FieldTypeDescription
urlstringMonitored URL
statusstringResult status (Baseline stored / Change detected / No change / Error)
statusCodenumberHTTP response code
changeDetectedbooleanWhether a change above threshold was detected
changePercentnumberPercentage of content that changed
addedCountnumberNumber of lines added
removedCountnumberNumber of lines removed
checkedAtstringISO timestamp of this check
previousCheckedAtstringISO timestamp of previous check (null on first run)
isFirstRunbooleanWhether this is the first snapshot (baseline)
modestringComparison mode used
cssSelectorstringCSS selector used (or null for full page)
aiSummarystringAI-generated change description (if enabled and change detected)
addedPreviewstringPreview of added content (first 5 lines, pipe-separated)
removedPreviewstringPreview of removed content (first 5 lines, pipe-separated)
addedLinesstring[]Full list of added lines (up to 50)
removedLinesstring[]Full list of removed lines (up to 50)
currentHashstringSHA-256 hash of current content
previousHashstringSHA-256 hash of previous content
snapshotKeystringKey-Value Store key for the snapshot
errorstringError message if fetch failed

Output Example

First run stores a baseline:

{
"url": "https://www.amazon.com.br/dp/B09V3KXJPB",
"status": "Baseline stored",
"statusCode": 200,
"changeDetected": false,
"changePercent": 0,
"addedCount": 0,
"removedCount": 0,
"checkedAt": "2026-03-06T10:00:00.000Z",
"previousCheckedAt": null,
"isFirstRun": true,
"mode": "text",
"cssSelector": ".price",
"aiSummary": null,
"addedPreview": null,
"removedPreview": null,
"currentHash": "a8f2e91c4b3d7e06",
"previousHash": null,
"snapshotKey": "snap__www.amazon.com.br_dp_B09V3KXJPB__a1b2c3d4"
}

Subsequent runs detect changes:

{
"url": "https://www.amazon.com.br/dp/B09V3KXJPB",
"status": "Change detected",
"statusCode": 200,
"changeDetected": true,
"changePercent": 22,
"addedCount": 3,
"removedCount": 2,
"checkedAt": "2026-03-06T11:00:00.000Z",
"previousCheckedAt": "2026-03-06T10:00:00.000Z",
"isFirstRun": false,
"mode": "text",
"cssSelector": ".price",
"aiSummary": "The product price dropped from R$ 4.299,00 to R$ 3.899,00 (a 9.3% reduction). The shipping estimate changed from 5-7 business days to 3-5 business days, indicating improved availability.",
"addedPreview": "R$ 3.899,00 | Entrega em 3-5 dias úteis | Em estoque",
"removedPreview": "R$ 4.299,00 | Entrega em 5-7 dias úteis",
"addedLines": ["R$ 3.899,00", "Entrega em 3-5 dias úteis", "Em estoque"],
"removedLines": ["R$ 4.299,00", "Entrega em 5-7 dias úteis"],
"currentHash": "c7d1f08a5e2b9634",
"previousHash": "a8f2e91c4b3d7e06",
"snapshotKey": "snap__www.amazon.com.br_dp_B09V3KXJPB__a1b2c3d4"
}

📋 Use Cases

  • 💰 Price Monitoring — Track product price changes on e-commerce sites (Amazon, MercadoLivre, etc.)
  • 💼 Job Listings — Get alerted when new positions appear on career pages
  • 📰 News Tracking — Monitor news sites and blogs for breaking stories and content updates
  • 🔍 Competitor Watch — Detect changes to competitor websites (new features, pricing, messaging)
  • 📦 Stock/Inventory — Monitor product availability and stock status changes
  • ⚖️ Regulatory Compliance — Track changes to terms of service, privacy policies, or legal pages
  • 🏠 Real Estate — Monitor new property listings or price changes on real estate portals

❓ FAQ

Q: How do I schedule this actor to run periodically? A: In Apify Console, go to your actor's page and click "Schedule". Set it to run hourly, daily, or at any cron interval. The actor automatically compares each run's snapshot with the previous one stored in the Key-Value Store.

Q: What is the difference between the three comparison modes? A: text strips all HTML and compares plain text content (best for most use cases). html compares raw HTML structure (detects formatting changes). visual_hash hashes the HTML tag structure without text (detects layout/design changes while ignoring content updates).

Q: Why does the first run never detect changes? A: The first run establishes a baseline snapshot. It stores the current page content in the Key-Value Store so that subsequent runs have something to compare against. You will see changes starting from the second run.

Q: Can I monitor only a specific part of the page? A: Yes. Use the cssSelector parameter to target specific elements. For example, .price for product prices, #stock-status for availability, article.post for blog content, or h1,h2,h3 for headings only.

Q: How does the change threshold work? A: The threshold filters out minor changes. For example, setting it to 5 means only changes affecting 5% or more of the content are reported. This helps ignore dynamic elements like timestamps, ads, or session-specific content.

💰 Pricing

This actor uses Pay Per Event (PPE) pricing:

MetricCost
Per page monitored$0.03

Example: Monitoring 10 pages hourly (24 runs/day) costs $7.20/day.

📝 Changelog

v2.0 (Current)

  • 3 comparison modes: text, html, visual_hash
  • CSS selector targeting for specific page sections
  • Line-level diff with change percentage
  • AI change summaries via Google Gemini
  • Change threshold filtering to reduce noise
  • Multi-URL monitoring in a single run
  • Persistent snapshots in Apify KV Store
  • Flat output fields for Apify table display
  • Error handling with detailed error reporting
  • PPE billing via Actor.charge()

v1.0

  • Basic page content comparison
  • Hash-based change detection
  • Single URL monitoring

🔄 Website Change Monitor — Monitore Mudanças em Páginas com Resumos IA

🇺🇸 English | 🇧🇷 Português

Monitore qualquer website para mudanças de conteúdo. Compare snapshots de páginas entre execuções agendadas, filtre seções específicas com seletores CSS, obtenha diffs linha a linha e receba resumos opcionais de mudanças via IA com Google Gemini. Acompanhe preços, disponibilidade de estoque, vagas de emprego, notícias ou qualquer atualização de conteúdo.

✨ Funcionalidades

  • 🔍 Detecção de mudanças — Compare snapshots de conteúdo entre execuções usando hash SHA-256
  • 🎯 Seletor CSS direcionado — Monitore apenas seções específicas da página (preços, estoque, títulos, artigos)
  • 📊 Diff linha a linha — Veja exatamente o que foi adicionado e removido com cálculo de percentual de mudança
  • 🤖 Resumos IA — Descrições humanas opcionais das mudanças detectadas via Gemini
  • 🌐 Monitoramento multi-URL — Monitore múltiplas páginas em uma única execução com busca paralela
  • 🔄 3 modos de comparaçãotext (HTML limpo), html (estrutura bruta), visual_hash (detecção de mudanças de layout)
  • ⚙️ Limite de mudança — Filtre edições menores (timestamps, anúncios) definindo um percentual mínimo de mudança
  • 💾 Snapshots persistentes — Baseline armazenado no Apify Key-Value Store, persiste entre execuções agendadas
  • 🛡️ Tratamento de erros — Requisições falhas são reportadas com detalhes do erro, nunca ignoradas silenciosamente
  • 💰 Pague por resultado — $0.03/página monitorada

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
urlsstring[]SimURLs para monitorar mudanças
cssSelectorstringNão""Seletor CSS para monitorar seções específicas (ex: .price, #stock-status, article.post)
modestringNão"text"Modo de comparação: text (HTML limpo), html (estrutura bruta) ou visual_hash (mudanças de layout)
changeThresholdinteiroNão1Mudança mínima % para reportar (0 = qualquer mudança, maior = filtra ruído, máx 100)
maxSnapshotSizeinteiroNão500000Máx caracteres por snapshot (1000-5000000)
enableAiSummarybooleanNãofalseHabilitar resumos IA via Gemini
geminiApiKeystringNãoChave da API Google Gemini para resumos IA
proxyConfigurationobjetoNãoConfiguração de proxy para evitar bloqueios de IP
navigationTimeoutSecsinteiroNão30Timeout de carregamento em segundos (5-120)
maxConcurrencyinteiroNão5Buscas paralelas de páginas (1-20)

Exemplo de Entrada

{
"urls": [
"https://www.amazon.com.br/dp/B09V3KXJPB",
"https://news.ycombinator.com",
"https://careers.google.com/jobs/results/"
],
"cssSelector": ".price",
"mode": "text",
"changeThreshold": 1,
"enableAiSummary": false
}

📤 Saída

Cada página monitorada produz um resultado:

CampoTipoDescrição
urlstringURL monitorada
statusstringStatus do resultado (Baseline armazenado / Mudança detectada / Sem mudança / Erro)
statusCodenumberCódigo de resposta HTTP
changeDetectedbooleanSe uma mudança acima do limite foi detectada
changePercentnumberPercentual do conteúdo que mudou
addedCountnumberNúmero de linhas adicionadas
removedCountnumberNúmero de linhas removidas
checkedAtstringTimestamp ISO desta verificação
previousCheckedAtstringTimestamp ISO da verificação anterior (null na primeira execução)
isFirstRunbooleanSe este é o primeiro snapshot (baseline)
modestringModo de comparação utilizado
cssSelectorstringSeletor CSS utilizado (ou null para página completa)
aiSummarystringDescrição da mudança gerada por IA (se habilitado e mudança detectada)
addedPreviewstringPreview do conteúdo adicionado (5 primeiras linhas, separadas por pipe)
removedPreviewstringPreview do conteúdo removido (5 primeiras linhas, separadas por pipe)
addedLinesstring[]Lista completa de linhas adicionadas (até 50)
removedLinesstring[]Lista completa de linhas removidas (até 50)
currentHashstringHash SHA-256 do conteúdo atual
previousHashstringHash SHA-256 do conteúdo anterior
snapshotKeystringChave do Key-Value Store para o snapshot
errorstringMensagem de erro se a busca falhou

Exemplo de Saída

Primeira execução armazena o baseline:

{
"url": "https://www.amazon.com.br/dp/B09V3KXJPB",
"status": "Baseline stored",
"statusCode": 200,
"changeDetected": false,
"changePercent": 0,
"addedCount": 0,
"removedCount": 0,
"checkedAt": "2026-03-06T10:00:00.000Z",
"previousCheckedAt": null,
"isFirstRun": true,
"mode": "text",
"cssSelector": ".price",
"aiSummary": null,
"currentHash": "a8f2e91c4b3d7e06",
"previousHash": null,
"snapshotKey": "snap__www.amazon.com.br_dp_B09V3KXJPB__a1b2c3d4"
}

Execuções subsequentes detectam mudanças:

{
"url": "https://www.amazon.com.br/dp/B09V3KXJPB",
"status": "Change detected",
"statusCode": 200,
"changeDetected": true,
"changePercent": 22,
"addedCount": 3,
"removedCount": 2,
"checkedAt": "2026-03-06T11:00:00.000Z",
"previousCheckedAt": "2026-03-06T10:00:00.000Z",
"isFirstRun": false,
"mode": "text",
"cssSelector": ".price",
"aiSummary": "O preço do produto caiu de R$ 4.299,00 para R$ 3.899,00 (redução de 9.3%). O prazo de entrega mudou de 5-7 dias úteis para 3-5 dias úteis, indicando melhor disponibilidade.",
"addedPreview": "R$ 3.899,00 | Entrega em 3-5 dias úteis | Em estoque",
"removedPreview": "R$ 4.299,00 | Entrega em 5-7 dias úteis",
"addedLines": ["R$ 3.899,00", "Entrega em 3-5 dias úteis", "Em estoque"],
"removedLines": ["R$ 4.299,00", "Entrega em 5-7 dias úteis"],
"currentHash": "c7d1f08a5e2b9634",
"previousHash": "a8f2e91c4b3d7e06",
"snapshotKey": "snap__www.amazon.com.br_dp_B09V3KXJPB__a1b2c3d4"
}

📋 Casos de Uso

  • 💰 Monitoramento de preços — Acompanhe mudanças de preços em sites de e-commerce (Amazon, MercadoLivre, etc.)
  • 💼 Vagas de emprego — Receba alertas quando novas vagas aparecem em páginas de carreiras
  • 📰 Acompanhamento de notícias — Monitore sites de notícias e blogs para atualizações e matérias novas
  • 🔍 Monitoramento de concorrentes — Detecte mudanças em websites de concorrentes (features, preços, mensagens)
  • 📦 Estoque/Disponibilidade — Monitore mudanças na disponibilidade e status de estoque de produtos
  • ⚖️ Conformidade regulatória — Acompanhe mudanças em termos de serviço, políticas de privacidade e páginas legais
  • 🏠 Imóveis — Monitore novos anúncios de imóveis ou mudanças de preços em portais imobiliários

❓ Perguntas Frequentes

P: Como agendo este actor para executar periodicamente? R: No Console do Apify, vá até a página do actor e clique em "Schedule". Configure para executar a cada hora, diariamente ou em qualquer intervalo cron. O actor automaticamente compara o snapshot de cada execução com o anterior armazenado no Key-Value Store.

P: Qual a diferença entre os três modos de comparação? R: text remove todo HTML e compara conteúdo em texto puro (melhor para a maioria dos casos). html compara a estrutura HTML bruta (detecta mudanças de formatação). visual_hash faz hash da estrutura de tags HTML sem texto (detecta mudanças de layout/design ignorando atualizações de conteúdo).

P: Por que a primeira execução nunca detecta mudanças? R: A primeira execução estabelece um snapshot baseline. Ela armazena o conteúdo atual da página no Key-Value Store para que execuções subsequentes tenham algo para comparar. Você verá mudanças a partir da segunda execução.

P: Posso monitorar apenas uma parte específica da página? R: Sim. Use o parâmetro cssSelector para direcionar elementos específicos. Por exemplo, .price para preços de produtos, #stock-status para disponibilidade, article.post para conteúdo de blog, ou h1,h2,h3 para apenas títulos.

P: Como funciona o limite de mudança? R: O limite filtra mudanças menores. Por exemplo, definir como 5 significa que apenas mudanças afetando 5% ou mais do conteúdo serão reportadas. Isso ajuda a ignorar elementos dinâmicos como timestamps, anúncios ou conteúdo específico de sessão.

💰 Preços

Este actor usa precificação Pay Per Event (PPE):

MétricaCusto
Por página monitorada$0.03

Exemplo: Monitorar 10 páginas por hora (24 execuções/dia) custa $7.20/dia.

🔗 Actors Relacionados

📝 Changelog

v2.0 (Atual)

  • 3 modos de comparação: text, html, visual_hash
  • Seletor CSS para seções específicas da página
  • Diff linha a linha com percentual de mudança
  • Resumos IA de mudanças via Google Gemini
  • Filtro de limite de mudança para reduzir ruído
  • Monitoramento multi-URL em uma única execução
  • Snapshots persistentes no Apify KV Store
  • Campos de saída planos para exibição em tabela no Apify
  • Tratamento de erros com relatório detalhado
  • Cobrança PPE via Actor.charge()

v1.0

  • Comparação básica de conteúdo de página
  • Detecção de mudanças baseada em hash
  • Monitoramento de URL única