Skip to content

Public API

The Monitorable API lets scripts, Terraform, Ansible, CI jobs and assistants do what you do in the dashboard: list servers, read their current and historical metrics, acknowledge incidents, mute alerts during maintenance, and add or remove servers. It is REST with JSON bodies over HTTPS. To let an AI assistant do the same, connect it to the MCP server with the same kind of key.

Base URL https://api.monitorable.io/v1
Format JSON over HTTPS; errors are application/problem+json
Authentication Authorization: Bearer mon_live_… — an organization API key
Machine-readable description https://api.monitorable.io/openapi.json (OpenAPI 3.1)

Try it with a key from the dashboard:

Terminal window
curl -H "Authorization: Bearer <your-api-key>" https://api.monitorable.io/v1/me

Organization owners and admins create keys in the dashboard under Team → API keys. Pick a preset for the job — the key’s scopes decide which endpoints it can call:

Preset For
Read-only Dashboards, reports and assistants that only look.
Automation Terraform, Ansible and CI: create, rename, delete and rotate servers, assign alert templates, mute during maintenance. It cannot read metrics or incidents.
Enrollment Images and cloud-init: a key that can only register servers.
Full Everything above in one key.

API keys and scopes lists every scope and the scope each endpoint needs. The API is included on every plan; the number of keys depends on the plan — see pricing.

There are two ways, both described in Add servers without the dashboard:

  • Create, then install. Your automation calls POST /v1/servers, gets the agent’s install command back, and runs it on the host.
  • Enroll from the host. An enrollment key goes into the image or the cloud-init user data, and each host registers itself when it boots.

Every path starts with /v1. Changes within v1 are additive — new endpoints, new optional parameters, new response fields — so write clients that ignore fields they do not know. The info.version of openapi.json is the date of the last additive change. A breaking change would ship as /v2, with Deprecation and Sunset headers on v1 for at least 12 months.