> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Monitoramento de páginas

> Monitore URLs conhecidas e receba alertas sobre mudanças relevantes nas páginas

O monitoramento de páginas acompanha URLs que você já conhece. Cada verificação faz scraping de cada URL no alvo, gera um diff em relação ao último snapshot retido e informa se a página está `same`, `changed`, `new`, `removed` ou `error`. É a escolha certa para páginas de preços, changelogs, páginas de documentação, anúncios de vagas, páginas de status ou qualquer URL conhecida em que uma pequena mudança faça diferença.

Esta página aborda o alvo `scrape`. Agendamento, objetivos e judging, rastreamento de mudanças, notificações e preços são compartilhados entre todos os tipos de monitoramento. Consulte a [visão geral do monitoramento](/pt-BR/features/monitoring).

<div id="create-a-page-monitor">
  ## Criar um monitor de página
</div>

Crie um monitor com um alvo `scrape` que inclui uma ou mais URLs explícitas:

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # Endpoints de monitor requerem uma API key:
    api_key="fc-YOUR-API-KEY",
  )

  monitor = firecrawl.create_monitor(
      name="Hacker News AI monitor",
      schedule={"text": "every 30 minutes", "timezone": "UTC"},
      goal=(
          "Alert when a new Hacker News story related to AI enters the top 10. "
          "Ignore changes to stories that are not about AI. "
          "Do not alert on changes outside the top 10."
      ),
      targets=[
          {
              "type": "scrape",
              "urls": ["https://news.ycombinator.com"],
          }
      ],
      notification={
          "email": {
              "enabled": True,
              "recipients": ["alerts@example.com"],
              "includeDiffs": True,
          }
      },
  )

  print(monitor.id)
  ```

  ```js Node theme={null}
  import Firecrawl from "@mendable/firecrawl-js";

  const firecrawl = new Firecrawl({
    // Endpoints de monitor requerem uma API key:
    apiKey: "fc-YOUR-API-KEY",
  });

  const monitor = await firecrawl.createMonitor({
    name: "Hacker News AI monitor",
    schedule: { text: "every 30 minutes", timezone: "UTC" },
    goal:
      "Alert when a new Hacker News story related to AI enters the top 10. Ignore changes to stories that are not about AI. Do not alert on changes outside the top 10.",
    notification: {
      email: {
        enabled: true,
        recipients: ["alerts@example.com"],
        includeDiffs: true,
      },
    },
    targets: [
      {
        type: "scrape",
        urls: ["https://news.ycombinator.com"],
      },
    ],
  });

  console.log(monitor.id);
  ```

  ```bash cURL theme={null}
  curl -s -X POST "https://api.firecrawl.dev/v2/monitor" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Hacker News AI monitor",
      "schedule": {
        "text": "every 30 minutes",
        "timezone": "UTC"
      },
      "goal": "Alert when a new Hacker News story related to AI enters the top 10. Ignore changes to stories that are not about AI. Do not alert on changes outside the top 10.",
      "notification": {
        "email": {
          "enabled": true,
          "recipients": ["alerts@example.com"],
          "includeDiffs": true
        }
      },
      "targets": [
        {
          "type": "scrape",
          "urls": ["https://news.ycombinator.com"]
        }
      ]
    }'
  ```
</CodeGroup>

Você também pode criar monitores usando a CLI do Firecrawl:

```bash CLI theme={null}
firecrawl monitor create --name "Hacker News AI" \
  --schedule "every 30 minutes" \
  --goal "Alert when a new Hacker News story related to AI enters the top 10. Ignore changes to stories that are not about AI. Do not alert on changes outside the top 10." \
  --page https://news.ycombinator.com
```

<div id="scrape-target">
  ## Alvo `scrape`
</div>

Um alvo `scrape` exige `type` e um array `urls` com pelo menos uma URL. As opções de scraping são repassadas para os jobs de scraping correspondentes. Os scrapes acionados pelo monitor usam `maxAge` com valor padrão `0`, então cada verificação executa um novo scraping, a menos que você defina explicitamente um `maxAge` diferente.

```json Scrape target theme={null}
{
  "type": "scrape",
  "urls": ["https://example.com/pricing"],
  "scrapeOptions": {
    "formats": ["markdown"],
    "maxAge": 0
  }
}
```

<div id="detecting-field-level-changes">
  ## Detectando mudanças em nível de campo
</div>

Por padrão, um monitor de página faz o diff do markdown da página. Para alertar apenas quando um **campo específico** mudar, como um preço, uma manchete, um indicador de estoque ou os itens de uma lista, adicione o formato `changeTracking` a `scrapeOptions` do alvo. Consulte [Rastreamento de mudanças](/pt-BR/features/monitoring#change-tracking) para o modo JSON e o modo misto.

<div id="shared-configuration">
  ## Configuração compartilhada
</div>

* [Agendamentos](/pt-BR/features/monitoring#schedules): cron ou intervalo em linguagem natural, com mínimo de 5 minutos.
* [Objetivos e avaliação](/pt-BR/features/monitoring#goals-and-judging): alerta apenas sobre mudanças relevantes.
* [Notificações](/pt-BR/features/monitoring#notifications): entrega por webhook e email.
* [Resultados das verificações](/pt-BR/features/monitoring#check-results): inspecione cada verificação e seus diffs por página.
* [Preços](/pt-BR/features/monitoring#pricing): 1 crédito por URL por verificação, além da avaliação opcional.
