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

# Live Monitors

> Watch any webpage, API, or RSS feed — Sift alerts you when something changes

Watch any public URL and get notified when something changes. Class seats, price drops, blog posts, API data — Sift checks on a schedule and texts you the moment your condition is met.

<Note>
  Free users get up to **3 active monitors**. Premium users get unlimited monitors.
</Note>

## What You Can Ask

```
"Watch this page for open seats in CS 301"
"Alert me if Bitcoin drops below $60k"
"Monitor this RSS feed for new posts"
"Tell me when this API response changes"
"Show my monitors"
"Pause my seat watcher"
```

## How Monitors Work

Every monitor has three parts:

1. **Target** — The URL to watch (webpage, API endpoint, or RSS feed)
2. **Condition** — What change to look for (text changes, contains a keyword, number threshold, new entries)
3. **Alert** — Where to send the notification (iMessage, email, push)

Sift polls the URL on a schedule (as often as every minute) and evaluates your condition against the latest content.

## Monitor Types

<CardGroup cols={3}>
  <Card title="Webpage" icon="globe">
    Watch any public webpage. Optionally target a specific element with a CSS selector — like a seat count, price, or status field.
  </Card>

  <Card title="API" icon="code">
    Poll a JSON API endpoint. Extract a specific value with a JSON path — like a price field, stock level, or status code.
  </Card>

  <Card title="RSS Feed" icon="rss">
    Watch an RSS or Atom feed for new entries. Get alerted when new posts, articles, or updates are published.
  </Card>
</CardGroup>

## Conditions

| Condition          | What it does                                | Best for                          |
| ------------------ | ------------------------------------------- | --------------------------------- |
| **Text changes**   | Alerts when page content changes at all     | General monitoring                |
| **Contains**       | Alerts when content includes a keyword      | Seat availability, status changes |
| **Not contains**   | Alerts when a keyword disappears            | Sold-out detection                |
| **Number above**   | Alerts when a value exceeds a threshold     | Stock prices, scores              |
| **Number below**   | Alerts when a value drops below a threshold | Price drops, inventory            |
| **Number changes** | Alerts when any numeric value changes       | Price tracking                    |
| **New entry**      | Alerts when a new RSS/Atom entry appears    | Blog posts, news                  |
| **JSON changes**   | Alerts when API response data changes       | API monitoring                    |

## Example Monitors

<AccordionGroup>
  <Accordion title="Class Seat Watcher">
    **Type:** Webpage · **Condition:** Contains "Open"

    Paste your university's course registration page. Sift watches for open seats and texts you the moment one appears.

    > "Watch [https://registrar.university.edu/course/CS301](https://registrar.university.edu/course/CS301) for open seats"
  </Accordion>

  <Accordion title="Price Drop Alert">
    **Type:** API · **Condition:** Number below threshold

    Track a product price via its API. Get alerted when it drops below your target.

    > "Alert me if this drops below \$50"
  </Accordion>

  <Accordion title="Blog / News Watcher">
    **Type:** RSS · **Condition:** New entry

    Follow a professor's blog, department news feed, or any RSS source. Sift texts you when new content is published.

    > "Watch this RSS feed and tell me when there's a new post"
  </Accordion>

  <Accordion title="API Change Detector">
    **Type:** API · **Condition:** JSON changes

    Monitor any public API endpoint for data changes — weather alerts, server status, sports scores, or anything with a JSON response.

    > "Tell me when this API response changes"
  </Accordion>

  <Accordion title="Job Posting Watcher">
    **Type:** Webpage · **Condition:** Text changes

    Watch a company's careers page for new postings. Sift detects when the page content changes and alerts you.

    > "Watch this careers page and tell me when new jobs are posted"
  </Accordion>

  <Accordion title="Availability Checker">
    **Type:** Webpage · **Condition:** Contains keyword

    Watch an event page, restaurant reservation system, or appointment scheduler for open slots.

    > "Watch this page for 'available' and text me when it shows up"
  </Accordion>
</AccordionGroup>

## Creating a Monitor

Describe what you want to watch in natural language:

<CodeGroup>
  ```text Webpage monitors theme={null}
  "Watch this registration page for open seats in CS 301"
  "Monitor this page and alert me if the text changes"
  "Watch this page for the word 'available'"
  ```

  ```text API monitors theme={null}
  "Track Bitcoin price and alert me if it drops below $60k"
  "Watch this API endpoint and tell me when the data changes"
  "Monitor this stock API and alert me if the price goes above $200"
  ```

  ```text RSS monitors theme={null}
  "Watch this blog's RSS feed for new posts"
  "Monitor this news feed and text me when there's something new"
  "Follow this professor's blog and alert me about new articles"
  ```
</CodeGroup>

## Managing Monitors

| Action | What to say               |
| ------ | ------------------------- |
| List   | "Show my monitors"        |
| Pause  | "Pause my seat watcher"   |
| Resume | "Resume my price tracker" |
| Delete | "Delete my blog monitor"  |

## Delivery Channels

Monitor alerts can be delivered via:

* **iMessage** — Fastest for time-sensitive alerts like seat openings
* **Email** — Good for less urgent updates
* **Push notification** — Quick mobile alerts

## How It Differs from Automations

|                 | Monitors                             | Automations                         |
| --------------- | ------------------------------------ | ----------------------------------- |
| **Watches**     | External URLs                        | Internal Sift data                  |
| **Trigger**     | Content change on a webpage/API/feed | Schedule, email, or event           |
| **Use case**    | "Alert me when this page changes"    | "Every morning, summarize my day"   |
| **Data source** | Any public URL                       | Your calendar, tasks, email, Canvas |

## Polling & Limits

* **Minimum interval:** 1 minute
* **Maximum interval:** 24 hours
* **Default interval:** 5 minutes
* **Rate limiting:** Sift respects `robots.txt` and limits requests to one per domain every 5 seconds
* **Auto-disable:** Monitors that fail 10 times in a row are automatically paused
* **Notification cooldown:** 30 minutes between repeat alerts for the same monitor (configurable)

## Tips

* **Use CSS selectors for precision** — Instead of watching an entire page, target the specific element that matters (e.g., a seat count or price)
* **Start with longer intervals** — 5-minute polling is fine for most use cases; save 1-minute polling for truly time-sensitive things
* **iMessage for urgency** — Use iMessage delivery for monitors where speed matters (seat openings, price drops)
* **Set expiration dates** — For temporary monitors (like class registration), set an expiry so they clean up automatically
* **Combine with automations** — Use a monitor for external watching and an automation for internal follow-up actions
