Monitors
/api/v1/me/monitorsList all monitors for the organization with pagination and filters.
Requires: Any member role
Authorization
APIKeyHeader In: header
Query Parameters
Page number
1 <= value1Items per page
1 <= value <= 10020Filter by status
Filter by monitor type
Search in name and URL
Sort field
"created_at"Sort order (asc/desc)
"desc"Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/me/monitors"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "type": "http", "url": "string", "status": "up", "interval_seconds": 0, "last_check_at": "2019-08-24T14:15:22Z", "last_response_time_ms": 0, "created_at": "2019-08-24T14:15:22Z", "uptime_24h": 0, "service_id": "641e839f-864e-4cce-98f9-40f6cbb3e9e0" } ], "pagination": {}, "meta": {}}/api/v1/me/monitorsCreate a new monitor for the organization.
Requires: Editor role or above
Authorization
HTTPBearer In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Schema for creating a monitor.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/me/monitors" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4", "name": "string", "type": "http", "url": "string", "interval_seconds": 0, "status": "up", "last_check_at": "2019-08-24T14:15:22Z", "last_response_time_ms": 0, "config": { "type": "http", "method": "GET", "timeout_ms": 1000, "expected_status": [ 100 ], "expected_body": "string", "headers": { "property1": "string", "property2": "string" }, "body": "string", "follow_redirects": true, "verify_ssl": true }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "paused_at": "2019-08-24T14:15:22Z", "service_id": "641e839f-864e-4cce-98f9-40f6cbb3e9e0", "uptime_24h": 0}/api/v1/me/monitors/{monitor_id}Get monitor details by ID.
Requires: Any member role
Authorization
APIKeyHeader In: header
Path Parameters
uuidResponse Body
application/json
application/json
curl -X GET "https://example.com/api/v1/me/monitors/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4", "name": "string", "type": "http", "url": "string", "interval_seconds": 0, "status": "up", "last_check_at": "2019-08-24T14:15:22Z", "last_response_time_ms": 0, "config": { "type": "http", "method": "GET", "timeout_ms": 1000, "expected_status": [ 100 ], "expected_body": "string", "headers": { "property1": "string", "property2": "string" }, "body": "string", "follow_redirects": true, "verify_ssl": true }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "paused_at": "2019-08-24T14:15:22Z", "service_id": "641e839f-864e-4cce-98f9-40f6cbb3e9e0", "uptime_24h": 0 }, "meta": {}}/api/v1/me/monitors/{monitor_id}Update a monitor.
Requires: Editor role or above
Gated by require_monitors_write, which also accepts a monitors:write
API key, so the actor is resolved via get_audit_actor rather than
required via get_current_user (issue #603's regression — see
app/dependencies/audit_actor.py).
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Schema for updating a monitor.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/api/v1/me/monitors/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4", "name": "string", "type": "http", "url": "string", "interval_seconds": 0, "status": "up", "last_check_at": "2019-08-24T14:15:22Z", "last_response_time_ms": 0, "config": { "type": "http", "method": "GET", "timeout_ms": 1000, "expected_status": [ 100 ], "expected_body": "string", "headers": { "property1": "string", "property2": "string" }, "body": "string", "follow_redirects": true, "verify_ssl": true }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "paused_at": "2019-08-24T14:15:22Z", "service_id": "641e839f-864e-4cce-98f9-40f6cbb3e9e0", "uptime_24h": 0}/api/v1/me/monitors/{monitor_id}Delete a monitor (soft delete).
Requires: Editor role or above
Gated by require_monitors_write, which also accepts a monitors:write
API key, so the actor is resolved via get_audit_actor rather than
required via get_current_user (issue #603's regression — see
app/dependencies/audit_actor.py).
In: header
Path Parameters
uuidResponse Body
application/json
curl -X DELETE "https://example.com/api/v1/me/monitors/497f6eca-6276-4993-bfeb-53cbbbba6f08"/api/v1/me/monitors/{monitor_id}/pausePause a monitor.
Requires: Editor role or above
Gated by require_monitors_write, which also accepts a monitors:write
API key, so the actor is resolved via get_audit_actor rather than
required via get_current_user (issue #603's regression — see
app/dependencies/audit_actor.py).
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Schema for pausing a monitor.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/me/monitors/497f6eca-6276-4993-bfeb-53cbbbba6f08/pause" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4", "name": "string", "type": "http", "url": "string", "interval_seconds": 0, "status": "up", "last_check_at": "2019-08-24T14:15:22Z", "last_response_time_ms": 0, "config": { "type": "http", "method": "GET", "timeout_ms": 1000, "expected_status": [ 100 ], "expected_body": "string", "headers": { "property1": "string", "property2": "string" }, "body": "string", "follow_redirects": true, "verify_ssl": true }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "paused_at": "2019-08-24T14:15:22Z", "service_id": "641e839f-864e-4cce-98f9-40f6cbb3e9e0", "uptime_24h": 0}/api/v1/me/monitors/{monitor_id}/resumeResume a paused monitor.
Requires: Editor role or above
Gated by require_monitors_write, which also accepts a monitors:write
API key, so the actor is resolved via get_audit_actor rather than
required via get_current_user (issue #603's regression — see
app/dependencies/audit_actor.py).
In: header
Path Parameters
uuidResponse Body
application/json
application/json
curl -X POST "https://example.com/api/v1/me/monitors/497f6eca-6276-4993-bfeb-53cbbbba6f08/resume"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4", "name": "string", "type": "http", "url": "string", "interval_seconds": 0, "status": "up", "last_check_at": "2019-08-24T14:15:22Z", "last_response_time_ms": 0, "config": { "type": "http", "method": "GET", "timeout_ms": 1000, "expected_status": [ 100 ], "expected_body": "string", "headers": { "property1": "string", "property2": "string" }, "body": "string", "follow_redirects": true, "verify_ssl": true }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "paused_at": "2019-08-24T14:15:22Z", "service_id": "641e839f-864e-4cce-98f9-40f6cbb3e9e0", "uptime_24h": 0}/api/v1/me/monitors/{monitor_id}/checksGet paginated monitoring check results for a specific monitor.
Results are ordered newest first. Use since to filter by timestamp and
limit/offset for pagination.
Requires: Any member role
Authorization
APIKeyHeader In: header
Path Parameters
uuidQuery Parameters
Number of results to return
1 <= value <= 20050Number of records to skip
0 <= value0Return checks after this timestamp
Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/me/monitors/497f6eca-6276-4993-bfeb-53cbbbba6f08/checks"{ "checks": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "monitor_id": "ff93e0f3-22fc-4809-8875-a2d24a9803b1", "is_successful": true, "response_time_ms": 0, "status_code": 0, "error_message": "string", "created_at": "2019-08-24T14:15:22Z" } ], "total": 0, "limit": 0, "offset": 0}