> ## 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.

# Supervisión de páginas

> Supervisa URLs conocidas y recibe alertas cuando haya cambios significativos en la página

La supervisión de páginas vigila URL que ya conoces. En cada comprobación se hace scraping de cada URL del objetivo, se compara con la última instantánea guardada y se informa si la página está `same`, `changed`, `new`, `removed` o `error`. Es la opción adecuada para páginas de precios, registros de cambios, páginas de documentación, ofertas de empleo, páginas de estado o cualquier URL conocida en la que un pequeño cambio sea importante.

Esta página cubre el objetivo `scrape`. La programación, los objetivos y la evaluación, el seguimiento de cambios, las notificaciones y los precios se comparten entre todos los tipos de monitor. Consulta la [visión general de la supervisión](/es/features/monitoring).

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

Crea un monitor con un objetivo de `scrape` que incluye una o varias URL explícitas:

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

  firecrawl = Firecrawl(
    # Los endpoints de supervisión requieren una 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({
    // Los endpoints de supervisión requieren una 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>

También puedes crear monitores desde la CLI de 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">
  ## Objetivo de scrape
</div>

Un objetivo `scrape` requiere `type` y un array `urls` con al menos una URL. Las opciones de scrape se pasan a los trabajos de scrape subyacentes. En los scrapes activados por el monitor, `maxAge` tiene el valor predeterminado `0`, por lo que cada comprobación realiza un scrape nuevo, a menos que establezcas explícitamente un `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">
  ## Detectar cambios a nivel de campo
</div>

De forma predeterminada, un monitor de página compara el markdown de la página. Para alertar solo cuando cambie un **campo específico**, como un precio, un titular, un indicador de disponibilidad o los elementos de una lista, añade un formato `changeTracking` en `scrapeOptions` del objetivo. Consulta [Seguimiento de cambios](/es/features/monitoring#change-tracking) para el modo JSON y el modo mixto.

<div id="shared-configuration">
  ## Configuración compartida
</div>

* [Programaciones](/es/features/monitoring#schedules): cadencia con cron o en lenguaje natural, con un mínimo de 5 minutos.
* [Objetivos y evaluación](/es/features/monitoring#goals-and-judging): alerta solo ante cambios significativos.
* [Notificaciones](/es/features/monitoring#notifications): envío por webhook y correo electrónico.
* [Resultados de las comprobaciones](/es/features/monitoring#check-results): revisa cada comprobación y sus diffs por página.
* [Precios](/es/features/monitoring#pricing): 1 crédito por URL y por comprobación, más evaluación opcional.
