/api/v1/me
Any token
The account this token belongs to, and what the token is allowed to do. The call to make first.
A REST API over the same data the interface shows. Bearer tokens, JSON in and out, one version in the URL.
Create a token under API tokens in your account, choose the permissions it needs, and send it as a bearer token. The token is shown once and stored hashed, so if you lose it, revoke it and make another.
curl https://www.unimonitor.unibagency.com/api/v1/me \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
Tokens are minted in the browser and never through the API. Creating a credential from an existing credential is how a read-only token becomes a write token.
Each token carries an explicit list. A request to an endpoint the token was not granted answers 403 and names the permission it wanted, so you do not have to guess.
/api/v1/me
Any token
The account this token belongs to, and what the token is allowed to do. The call to make first.
/api/v1/monitors
monitors:read
List your monitors. Filter with status and active.
/api/v1/monitors/{monitor}
monitors:read
One monitor.
/api/v1/monitors
monitors:write
Create a monitor. Validated exactly as the web form is, including the outbound-address checks.
/api/v1/monitors/{monitor}
monitors:write
Update a monitor. PATCH is accepted and behaves the same.
/api/v1/monitors/{monitor}
monitors:write
Delete a monitor and its history. Answers 204.
/api/v1/incidents
incidents:read
List incidents. Filter with monitor_id, open and since.
/api/v1/incidents/{incident}
incidents:read
One incident, with the public updates posted against it.
/api/v1/incidents/{incident}/updates
incidents:manage
Post a public update. This text appears on your status page, so treat the permission accordingly.
/api/v1/monitors/{monitor}/uptime
metrics:read
Uptime for a monitor. Hourly buckets up to seven days, daily beyond. A bucket that measured nothing reports null rather than zero.
/api/v1/monitors/{monitor}/latency
metrics:read
Response times in hourly buckets, up to seven days.
/api/v1/status-pages
status-pages:read
Your status pages and how many monitors each publishes.
/api/v1/status-pages/{statusPage}
status-pages:read
One status page, with its components and their public names.
Collections always answer with data and meta, even on a single page. Pass page and per_page; per_page is capped at 100.
{
"data": [
{
"id": 12,
"name": "Client homepage",
"type": "http",
"target": "https://example.cm",
"status": "up",
"interval_seconds": 60,
"last_checked_at": "2026-09-04T08:41:00+00:00"
}
],
"meta": { "current_page": 1, "per_page": 25, "total": 1, "last_page": 1 }
}
Failures answer with an error object. The code is the stable part — branch on that rather than on the message, which changes when the wording improves or a French translation lands.
{
"error": {
"code": "missing_ability",
"message": "This token does not have the monitors:write permission.",
"required_ability": "monitors:write"
}
}
Counted per token rather than per account, so one busy integration throttles only itself. The limit is 120 requests a minute.