REST API

Your monitors, from any script.

A JSON API for monitors, alert channels, incidents, agents and reports. The same data you see in the console, ready for your deploy scripts, dashboards and internal tools.

Monitors, alert channels, incidents, agents and reports as JSON. The same data as the console.

Included on every plan · https://culipulse.dev/v1

$ curl https://culipulse.dev/v1/monitors \    -H "Authorization: Bearer $CULIPULSE_TOKEN"{ "monitors": [  { "id": "mon_3fk9…",    "name": "Checkout API",    "type": "http",    "target": "https://api.example.com/health",    "interval_seconds": 60,    "status": "up" },  { "id": "mon_8a2c…",    "name": "Nightly backup",    "type": "heartbeat",    "status": "down", … }] }
curl https://culipulse.dev/v1/monitors \  -H "Authorization: Bearer $TOKEN"{ "monitors": [ { "name": "Checkout API",    "status": "up", … } ] }

Tokens

One token per job, with only the access it needs.

Create tokens in Settings. Give a dashboard read-only access and your deploy pipeline read and write. Revoke any of them without touching the others.

Read-only for dashboards, read and write for pipelines. Shown once. 2 tokens on Free, 10 on Solo and Pro.

  • Set an expiry, or keep it until you revoke it
  • Shown once, stored only as a fingerprint
  • 2 tokens on Free, 10 on Solo and Pro
The real CuliPulse Settings page listing two API tokens (cpk_…), one read-only and one read and write
Real Settings → API tokens page · demo account
The real CuliPulse API tokens page on a phone
Real API tokens page · demo account

Endpoints

Everything you manage in the console.

Read endpoints work with any token. Changes need a read-and-write token.

Full reference ↗
Monitors
GET/monitorsList your monitorsread
GET/monitors/{id}One monitor with its full settingsread
POST/monitorsCreate a monitor of any typewrite
PATCH/monitors/{id}Change a monitorwrite
DELETE/monitors/{id}Delete a monitorwrite
Incidents
GET/incidentsLatest incidents across your accountread
GET/monitors/{id}/incidentsIncidents for one monitorread
Alert channels
GET/channelsList where alerts goread
POST/channelsAdd a channelwrite
PATCH/channels/{id}Change routing or settingswrite
DELETE/channels/{id}Remove a channelwrite
Agents
GET/agentsList agents and when each was last seenread
DELETE/agents/{id}Remove one of your agentswrite
Reports & overview
GET/reportsYour uptime reportsread
GET/overviewAccount summary: how many monitors are up and downread
Spec
GET/openapi.jsonThe OpenAPI 3.1 specpublic

Limits & errors

No surprises when something goes wrong.

60 / 600 Requests per minute

60 on Free, 600 on Solo and Pro, per token. Go over and you get a 429 with Retry-After, never a silent drop.

Requests a minute on Free / Solo and Pro. Over the limit: 429 with Retry-After.

One error shape

Every error is a short message plus a request id to quote when you contact us.

A short message and a request id to quote when you contact us.

{ "error": "not found",  "request_id": "7c1e…" }
Built from one spec

The OpenAPI 3.1 spec is public at /v1/openapi.json. Generate a client in your language, or read the reference in the docs.

Public OpenAPI 3.1 at /v1/openapi.json.

Download openapi.json →

Make your first call in a minute.

Sign up, create a token, and curl your monitors.

Sign up, create a token, curl.