Monitors are the core resource in OpsMind. Each monitor tracks a single HTTP endpoint and accumulates a history of status checks, response times, and AI-generated insights. All monitor endpoints are protected by JWT authentication — make sure you include a validDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/LENINMORENO13/OpsMind/llms.txt
Use this file to discover all available pages before exploring further.
Authorization: Bearer <token> header on every request (see the Authentication guide for details).
The
isActive field defaults to true and checkInterval defaults to 300 seconds (5 minutes). These are the schema defaults used by the background cron worker. You can supply isActive and checkInterval in the body of a PATCH request to override them for a specific monitor.Create a monitor
Register a new HTTP endpoint for monitoring by sending aPOST request to /api/v1/monitors. Both name and url are required. OpsMind enforces URL uniqueness across all monitors — attempting to register an already-monitored URL returns a 400 error.
cURL
201 Created
Response
| Status | Condition |
|---|---|
400 | name or url is missing from the request body |
400 | A monitor with the same url already exists |
401 | Missing or invalid JWT token |
500 | Unexpected server error |
List all monitors
Retrieve every registered monitor with aGET request to /api/v1/monitors. The response contains a flat array of monitor objects — no pagination is applied, so the full list is returned in a single call.
cURL
200 OK
Response
| Field | Type | Description |
|---|---|---|
id | integer | Auto-incremented primary key |
name | string | Human-readable label for the monitor |
url | string | The HTTP endpoint being monitored (unique) |
isActive | boolean | Whether the cron worker includes this monitor in its checks |
checkInterval | integer | Polling interval in seconds (default 300) |
lastStatus | ServiceStatus | Most recent status: UP, DOWN, DEGRADED, or PENDING |
createdAt | datetime | ISO 8601 timestamp of creation |
updatedAt | datetime | ISO 8601 timestamp of last modification |
Update a monitor
Partially update a monitor’sname, url, isActive, or checkInterval using a PATCH request to /api/v1/monitors/:id. Only the fields you include in the request body are changed — omitted fields remain unchanged.
cURL
200 OK
Response
| Status | Condition |
|---|---|
400 | :id is not a valid integer |
404 | No monitor found with the given id (Prisma record-not-found) |
409 | The new url already belongs to a different monitor ("URL_DUPLICATED") |
401 | Missing or invalid JWT token |
500 | Unexpected server error |
Delete a monitor
Permanently remove a monitor and all of its associated data by sending aDELETE request to /api/v1/monitors/:id. The Prisma schema uses onDelete: Cascade, so all Log records and AIInsight records linked to this monitor are automatically removed from the database in the same operation.
cURL
200 OK
Response
| Status | Condition |
|---|---|
400 | :id is not a valid integer |
404 | No monitor found with the given id |
401 | Missing or invalid JWT token |
500 | Unexpected server error |
View monitor history
Query the last 10 check logs for any monitor by its ID.
Real-time status
Run a live health check across all registered monitors at once.