Monitors API endpoint
Returns one of your website-change monitors by `id`. The monitor includes its `target_type` (`page` or `sitemap`), URL, name, check cadence in minutes, enabled flag, last and next check times, failure count and last error, plus notification and sitemap settings.
/monitors/{id}Returns one of the caller's own monitors by id, 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) | ||
| id (path) | string | Yes | Monitor ID returned by your account monitor create/list response; replace the illustrative example with your own ID | 66d2f0b1c2a4e5f6a7b8c9d0 |
curl -X GET "https://api.crawlora.net/api/v1/monitors/66d2f0b1c2a4e5f6a7b8c9d0" \ -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.monitorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | webmonitor.monitorDoc | 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 |
| 404 | Monitor not found | #/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/66d2f0b1c2a4e5f6a7b8c9d0" \
-H "x-api-key: $CRAWLORA_API_KEY"