---
title: "Create"
method: POST
path: "/data/monitors"
tags: ["Data APIs", "Data monitors"]
---

# Create

`POST /data/monitors`

## Request

- Base URL: `https://api.notte.cc` (the document declares no server; this is the origin it was published from)
- URL: `https://api.notte.cc/data/monitors`
- Auth: OAuth 2
  - Password
  - Token URL: `token`

## Headers

- `X-Notte-Cache-Mode` string, nullable: Extraction cache: default, refresh, or bypass.
- `X-Notte-Cache-Max-Age-Ms` string, nullable: Maximum cached result age in milliseconds; zero forces refresh.
- `X-Notte-Cache-Ttl-Seconds` string, nullable: Shorten the server storage TTL; zero bypasses caching.
- `x-notte-request-origin` string, nullable
- `x-notte-sdk-version` string, nullable

## Request body

- CreateMonitor
  - `mode` 'web'
  - `name` string, required
  - `target` union, required
    - PageTarget
      - `url` string, required
      - `type` 'page', required
      - `instructions` string, nullable
      - `normalize_whitespace` boolean
      - `include_selectors` string[]
      - `exclude_selectors` string[]
      - `actions` union[], nullable
        - union
          - NotteApiDataApisMonitorsModelsWaitAction
            - `do` 'wait', required
            - `timeMs` integer, required
          - PerformAction
            - `do` 'perform', required
            - `action` string, required
          - ScrollAction
            - `do` 'scroll', required
            - `direction` 'up' | 'down' | 'left' | 'right'
            - `amount` union
              - …
            - `container` string, nullable
            - `maxScrolls` integer
    - SitemapTarget
      - `url` string, required
      - `type` 'sitemap', required
      - `include` string[]
      - `exclude` string[]
      - `max_urls` integer
    - ExtractTarget
      - `url` string, required
      - `type` 'extract', required
      - `instructions` string, required
      - `schema` object, nullable
      - `max_pages` integer
      - `max_depth` integer, nullable
      - `follow_subdomains` boolean
  - `change_detection` union
    - ExactDetection
      - `type` 'exact', required
    - SemanticDetection
      - `type` 'semantic', required
      - `confidence_threshold` number
  - `schedule` Interval
    - `type` 'interval'
    - `frequency` integer
    - `unit` 'minutes' | 'hours' | 'days'
  - `tags` string[]
  - `webhook` Webhook
    - `url` string, required
    - `events` string[]
    - `retry` Retry
      - `delays_seconds` integer[]

## Response `201`

Successful Response

- object

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-18** `20f8ac8dc733`: 3 info
  - added the new optional `header` request parameter `X-Notte-Cache-Max-Age-Ms`
  - added the new optional `header` request parameter `X-Notte-Cache-Mode`
  - added the new optional `header` request parameter `X-Notte-Cache-Ttl-Seconds`
- **2026-10-16** `24d67222f012`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/notte/apis/notte-api/changes/data/monitors/post.md)

---

[API](https://skmtc.dev/notte/apis/notte-api.md) - [All operations](https://skmtc.dev/notte/apis/notte-api/llms.txt) - [OpenAPI document](https://skmtc.dev/notte/apis/notte-api/revisions/d56fcbf39bc9?raw)
