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

# Monitor

> Track a webpage or topic on a schedule and receive updates when it changes

<Info>**Beta:** Monitor is currently in beta and enabled per account. Contact support to request access.</Info>

Monitor checks a webpage or web topic on a recurring schedule, keeps a history of each run, and
shows what changed. You can review results in the TinyFish dashboard or send them to a webhook or
email address.

## Choose What to Monitor

| Monitor   | Best for                                          | How changes are detected                                  | API type |
| --------- | ------------------------------------------------- | --------------------------------------------------------- | -------- |
| **Page**  | A known webpage, such as a pricing or status page | Compares the extracted page content with the previous run | `fetch`  |
| **Topic** | Updates that may appear across the web            | Identifies new URLs in the latest search results          | `search` |

Page Monitors run Fetch with `ttl: 0` so they prefer fresh content. Topic Monitors can return 1-10
results per run and cannot run more often than every 30 minutes.

## Create a Monitor

<Steps>
  <Step title="Open Monitor">
    Go to [agent.tinyfish.ai/monitor](https://agent.tinyfish.ai/monitor) and select **New monitor**.
  </Step>

  <Step title="Choose Page or Topic">
    For a Page Monitor, enter a public HTTP or HTTPS URL. For a Topic Monitor, enter the search
    query you want TinyFish to repeat.
  </Step>

  <Step title="Set the schedule">
    Choose how often the Monitor should run. Topic Monitors must be scheduled at least 30 minutes
    apart.
  </Step>

  <Step title="Choose delivery">
    Optionally add a webhook URL or turn on email updates. The account email is used as the default
    recipient, and you can replace it with another address.
  </Step>
</Steps>

You can also give the Monitor a name and describe the change that matters, such as `The price drops
below $500`. When content changes, TinyFish evaluates the change against that purpose and displays
the assessment with the run.

<Info>
  Creating a Monitor runs it immediately to capture a baseline. Future runs are compared with the
  latest completed result.
</Info>

## Understand Run Results

Each run has one of three outcomes:

| Outcome               | Meaning                                                                       |
| --------------------- | ----------------------------------------------------------------------------- |
| **Baseline captured** | The first successful result was saved for future comparisons.                 |
| **Changed**           | A Page's extracted content changed, or a Topic returned at least one new URL. |
| **No changes**        | The result matched the previous comparable run.                               |

For Page Monitors, open a changed run to switch between the current result and a unified diff. For
Topic Monitors, the run identifies the new result positions.

## Delivery

| Destination       | Behavior                                                                                                                                                              |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Dashboard**     | Every run is recorded in the Monitor's run history.                                                                                                                   |
| **Webhook**       | Every scheduled run is posted to the configured public URL, including runs with no changes. Failed deliveries are retried up to three times.                          |
| **Email updates** | With **Email every run** off, email is sent only when a change is detected. With it on, every completed scheduled run sends an email, including runs with no changes. |

<Note>
  **Run now** saves a new result in the dashboard but does not send webhook or email notifications.
  Notifications are sent by scheduled runs only.
</Note>

## Manage a Monitor

Open a Monitor from the dashboard to:

* **Run now** without waiting for the next scheduled check
* **Pause** future scheduled checks and resume them later
* **Edit** its name, purpose, schedule, webhook, and email delivery settings
* **Delete** the Monitor and its schedule

Pausing does not remove existing run history. Resuming recreates the schedule from the Monitor's
current configuration.

## Use the API

The REST API supports creating, listing, reading, updating, pausing, resuming, deleting, and running
Monitors.

<CardGroup cols={2}>
  <Card title="Monitor API Reference" icon="code" href="/monitor/api-reference">
    Create and manage Monitors over REST
  </Card>

  <Card title="Authentication" icon="key" href="/authentication">
    Set up an API key
  </Card>

  <Card title="Fetch API" icon="bolt" href="/fetch-api">
    Learn how Page content is extracted
  </Card>
</CardGroup>
