PulseBeta

REST API

Everything the app does goes through https://pulse.nightroll.app/api/v1.

Authentication

Create an API key in Settings → API keys and send it as a bearer token:

curl https://pulse.nightroll.app/api/v1/checks -H "Authorization: Bearer nr_pulse_..."

A key belongs to you and one org, has scopes (read, write, admin; never more than your role allows) and an optional expiry. It stops working when you leave the org. These are not ingest keys: OTLP ingest uses pulse_ik_... keys.

Conventions

  • JSON in and out. Errors have a 4xx or 5xx status and a JSON body saying what went wrong.
  • Times are milliseconds since the epoch; durations are seconds unless the name says otherwise.
  • Every write (POST, PUT, PATCH, DELETE) is in the org’s audit log.

Endpoints

Endpoint Scope What
POST /query read Query logs or metrics; see Explore and the query API
GET /names?kind=metric|service&prefix= read Metric names or services seen in the last 7 days
GET /checks, GET /checks/:id read Checks with status, ping URL and the last 10 pings
POST /checks, PATCH /checks/:id, DELETE /checks/:id write Create, change, pause ({"paused": true}) and delete; see Checks
GET /monitors read Monitors with status and last value
POST /monitors, PATCH /monitors/:id, DELETE /monitors/:id write See Monitors
GET /events?before= read Recent alert events
GET /archive read Each archived, held or dropped day
POST /archive/retry admin Retry the archive now
GET /ingest-keys, POST /ingest-keys, DELETE /ingest-keys/:id admin Ingest keys; POST returns the key once
GET /settings, PUT /settings admin {"alert_endpoint", "grace_days"}; PUT also takes "routing_key" (write-only, "" clears it)
POST /settings/test-alert admin Send a test alert

The Shift routing key can be set in the app’s Alerts page or with an API key that has the admin scope; GET /settings only says whether it is set (routing_key_set).

Members, invites, API keys, storage, usage and the audit log are platform endpoints under /api/orgs/:org/..., managed in Settings.


Next: Limits · This page as Markdown