
changeTracking ao seu array de formats para detectar se uma página é nova, inalterada ou modificada e, opcionalmente, obter um diff estruturado do que mudou.
- Funciona com
/scrape,/crawle/batch/scrape - Dois modos de diff:
git-diffpara mudanças em nível de linha ejsonpara comparação em nível de campo - Restrito à sua equipe e, opcionalmente, a uma tag que você especificar
Como funciona
changeTracking habilitado armazena um snapshot e o compara com o snapshot anterior para essa URL. Snapshots são armazenados de forma persistente e não expiram, por isso as comparações permanecem precisas, independentemente de quanto tempo se passou entre os scrapes.
A resposta inclui estes campos no objeto
changeTracking:
Uso básico
markdown quanto changeTracking no array formats. O formato markdown é obrigatório porque o rastreio de mudanças compara as páginas com base no conteúdo em markdown.
Resposta
changeStatus é "new" e previousScrapeAt é null:
changeStatus indica se o conteúdo foi alterado:
Modo git-diff
git-diff retorna alterações linha a linha em um formato semelhante ao git diff. Passe um objeto no array formats com modes: ["git-diff"]:
Resposta
diff contém um diff em texto simples e uma representação JSON estruturada:
diff.json contém:
files: array de arquivos modificados (geralmente um por página da web)chunks: seções de alterações dentro de um arquivochanges: alterações individuais de linha comtype("add","del"ou"normal"), número da linha (ln) econtent
Modo JSON
json extrai campos específicos tanto da versão atual quanto da versão anterior da página usando um schema que você define. Isso é útil para acompanhar mudanças em dados estruturados, como preços, níveis de estoque ou metadados, sem precisar analisar um diff completo.
Passe modes: ["json"] com um schema definindo os campos a serem extraídos:
Resposta
previous e current:
prompt opcional para orientar a extração do LLM em conjunto com o schema.
O modo JSON usa extração com LLM e custa 5 créditos por página. O rastreamento básico de alterações e o modo
git-diff não têm custo adicional.Crawl com rastreio de mudanças
changeTracking dentro de scrapeOptions:
Raspagem em lote com rastreamento de mudanças
Agendando o rastreamento de alterações
Cron job
check-pricing.sh
crontab -e:
Agendadores em ambientes cloud e serverless
- AWS: regra do EventBridge acionando uma função Lambda
- GCP: Cloud Scheduler acionando uma Cloud Function
- Vercel / Netlify: funções serverless acionadas por cron
- GitHub Actions: workflows agendados com gatilhos
scheduleecron
Automação de fluxos de trabalho
Webhooks
crawl.page inclui o objeto changeTracking para cada página:
Referência de configuração
changeTracking:
Modelos de dados
Detalhes importantes
- Retenção de snapshots: Snapshots são armazenados de forma persistente e não expiram. Uma raspagem feita meses após a anterior ainda será comparada corretamente com o snapshot anterior.
- Escopo: As comparações são limitadas à sua equipe. Sua primeira raspagem de qualquer URL retorna
"new", mesmo que outros usuários já a tenham raspado. - Correspondência de URL: Raspagens anteriores são associadas com base na URL de origem exata, ID da equipe, formato
markdownetag. Mantenha as URLs consistentes entre raspagens. - Consistência de parâmetros: Usar configurações diferentes de
includeTags,excludeTagsouonlyMainContentem raspagens da mesma URL produz comparações não confiáveis. - Algoritmo de comparação: O algoritmo é resistente a mudanças em espaços em branco e na ordem do conteúdo. URLs de origem de iframes são ignoradas para lidar com a aleatoriedade de captcha/antibot.
- Cache: Solicitações com
changeTrackingcontornam o cache do índice. O parâmetromaxAgeé ignorado. - Tratamento de erros: Monitore o campo
warningnas respostas e esteja preparado para o caso de o objetochangeTrackingestar ausente (isso pode ocorrer se a consulta ao banco de dados para a raspagem anterior exceder o tempo limite).
Cobrança
Você é um agente de IA que precisa de uma chave de API do Firecrawl? Consulte firecrawl.dev/agent-onboarding/SKILL.md para instruções de integração automatizada.

