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

# Introducing Monitor

> Turn a set of searches into a feed. Monitor re-runs your searches on a cadence and delivers only what's new, with an optional webhook so you don't have to poll.

*Released: September 2, 2026*

**Monitor** turns a set of searches into a feed. Create a monitor with a list of search requests and a cadence, and it re-runs those searches on schedule, remembers every document it has already handed you, and delivers only what's new — no re-fetching the same results on every run.

## Highlights

* **One monitor, many searches** — A single monitor holds a list of search requests, each with its own filters, all running on the same cadence.
* **Delivers only new results** — A document is returned once and never again while the run that first delivered it is still visible.
* **Webhooks instead of polling** — Attach a webhook and get notified with `run.completed` or `run.failed` when a run finishes.
* **Full run history** — Inspect past runs, per-request outcomes, and every record a run produced.
* **Pause without losing state** — A paused monitor keeps its configuration and records; it just stops running.

## Quick Start

<CodeGroup>
  ```python Python theme={null}
  from seltz import Seltz

  client = Seltz(api_key="your-api-key")

  response = client.monitor.create(
      "ai-search-news",
      cadence="1h",
      search_requests=["best ai search engines", "ai search funding"],
  )

  monitor = response.monitor
  print(monitor.monitor_id)
  ```

  ```typescript TypeScript theme={null}
  import { Seltz } from "seltz";

  const client = new Seltz({ apiKey: "your-api-key" });

  const response = await client.monitor.create({
    name: "ai-search-news",
    cadence: "1h",
    searchRequests: ["best ai search engines", "ai search funding"],
  });

  const monitor = response.monitor;
  console.log(monitor!.monitorId);
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.seltz.ai/v1/monitors \
    -H "x-api-key: $SELTZ_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "ai-search-news",
      "cadence": "1h",
      "search_requests": [
        {"query": "best ai search engines"},
        {"query": "ai search funding"}
      ]
    }'
  ```
</CodeGroup>

<Note>
  Monitor is the product and SDK name throughout — `client.monitor.create()`, `SeltzMonitor`, etc. Only the REST resource path is plural, `/v1/monitors`, following standard REST collection-naming convention.
</Note>

<CardGroup cols={2}>
  <Card title="Concepts" icon="book" href="/monitor/concepts?utm_source=changelog&utm_medium=changelog&utm_campaign=monitor">
    Monitors, runs, records, and webhooks
  </Card>

  <Card title="Quickstart" icon="arrow-right" href="/monitor/quickstart?utm_source=changelog&utm_medium=changelog&utm_campaign=monitor">
    Create your first monitor
  </Card>
</CardGroup>
