Monitors API endpoint
Lists the website-change monitors on your account, most recently created first, up to 100. Each monitor has its `target_type` (`page` or `sitemap`), URL, name, cadence in minutes, enabled flag, last checked and last changed times, next check time, failure count, last error, and notification and sitemap settings.
/monitorsReturns the caller's own monitors, most recently created first, capped at 100, each including
its target_type (page or sitemap).
Requires a dashboard JWT (Authorization: Token <jwt>) or an x-api-key. Free to call.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| Authorization (header) | string | No | Dashboard JWT in the form `Token <jwt>` (use this or x-api-key) | ||
| x-api-key (header) | string | No | API key (alternative to a dashboard JWT) |
curl -X GET "https://api.crawlora.net/api/v1/monitors" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": [
{
"id": "66d2f0b1c2a4e5f6a7b8c9d0",
"url": "https://example.com/pricing",
"target_type": "page",
"cadence_minutes": 60,
"enabled": true,
"next_check_at": "2026-08-22T11:00:00Z",
"failures": 0,
"created_at": "2026-08-22T10:00:00Z",
"updated_at": "2026-08-22T10:00:00Z"
}
]
}Request schema
No body schema
Response schema
#/definitions/webmonitor.monitorListResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | array | No | ||||
| data[].cadence_minutes | integer | No | 60 | |||
| data[].created_at | string | No | 2026-08-01T00:00:00Z | |||
| data[].enabled | boolean | No | true | |||
| data[].failures | integer | No | 0 | |||
| data[].id | string | No | 66d2f0b1c2a4e5f6a7b8c9d0 | |||
| data[].last_changed_at | string | No | 2026-08-20T09:00:00Z | |||
| data[].last_checked_at | string | No | 2026-08-22T10:00:00Z | |||
| data[].last_error | string | No | ||||
| data[].name | string | No | Pricing page | |||
| data[].next_check_at | string | No | 2026-08-22T11:00:00Z | |||
| data[].notification | webmonitor.notificationDoc | No | ||||
| data[].notification.events | array | No | change.detected,run.completed | |||
| data[].notification.webhook_url | string | No | https://example.com/webhooks/crawlora | |||
| data[].sitemap | webmonitor.sitemapTargetDoc | No | ||||
| data[].sitemap.exclude_patterns | array | No | /blog/* | |||
| data[].sitemap.include_patterns | array | No | /products/* | |||
| data[].sitemap.max_urls | integer | No | 5000 | |||
| data[].target_type | string | No | page, sitemap | page | ||
| data[].updated_at | string | No | 2026-08-22T10:00:00Z | |||
| data[].url | string | No | https://example.com/pricing | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 401 | Authentication required | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/monitors" \
-H "x-api-key: $CRAWLORA_API_KEY"