Monitors

Create a website-change monitor

Creates a monitor that periodically checks a page or sitemap for changes and can notify a webhook. Free to call -- only completed check runs consume credits, at 1 credit per completed run regardless of target type or whether a change was detected. target_type defaults to "page" (exact-fingerprint diff of the page). "sitemap" watches the sitemap at url for added/removed entries instead, honoring sitemap.include_patterns/exclude_patterns (shell-style globs matched against each URL's path) and sitemap.max_urls (default 5000, hard cap 10000).

post/monitors

Request

  • Base URL: https://api.crawlora.net/api/v1
  • URL: https://api.crawlora.net/api/v1/monitors
  • Auth: API key in header x-api-key

Headers

Authorizationstring

Dashboard JWT in the form Token <jwt> (use this or x-api-key)

x-api-keystring

API key (alternative to a dashboard JWT)

Request body

cadence_minutesinteger
enabledboolean
namestring
target_type'page' | 'sitemap'
urlstring

Example request

{
  "cadence_minutes": 60,
  "enabled": true,
  "name": "Pricing page",
  "notification": {
    "events": [
      "change.detected",
      "run.completed"
    ],
    "webhook_secret": "whsec_...",
    "webhook_url": "https://example.com/webhooks/crawlora"
  },
  "sitemap": {
    "exclude_patterns": [
      "/blog/*"
    ],
    "include_patterns": [
      "/products/*"
    ],
    "max_urls": 5000
  },
  "target_type": "page",
  "url": "https://example.com/pricing"
}

Response

Created monitor

codeinteger
msgstring

Example response

{
  "code": 200,
  "data": {
    "cadence_minutes": 60,
    "created_at": "2026-08-01T00:00:00Z",
    "enabled": true,
    "id": "66d2f0b1c2a4e5f6a7b8c9d0",
    "last_changed_at": "2026-08-20T09:00:00Z",
    "last_checked_at": "2026-08-22T10:00:00Z",
    "name": "Pricing page",
    "next_check_at": "2026-08-22T11:00:00Z",
    "notification": {
      "events": [
        "change.detected",
        "run.completed"
      ],
      "webhook_url": "https://example.com/webhooks/crawlora"
    },
    "sitemap": {
      "exclude_patterns": [
        "/blog/*"
      ],
      "include_patterns": [
        "/products/*"
      ],
      "max_urls": 5000
    },
    "target_type": "page",
    "updated_at": "2026-08-22T10:00:00Z",
    "url": "https://example.com/pricing"
  },
  "msg": "OK"
}

Changes

No recorded changes to this operation across all 3 revisions of this API.