Skip to main content
The Observer API lives at https://use.observer/api/v1. All endpoints require an Authorization: Bearer <api_key> header. Keys are scoped per organisation and per capability (read:metrics, write:incidents, etc.). Pick an operation from the sidebar to view its parameters, request / response schemas, and a working curl example. To check what a key can do, call GET /me. It needs no scope and returns the key’s scopes, the plan, quotas with current usage, and the rate limits. For config-as-code, the observer command-line tool wraps the config endpoints so you can apply and export from version control. See Command-line tool.

Conventions

  • Timestamps in responses are RFC 3339 in UTC with millisecond precision, for example 2026-01-31T12:00:00.123Z. Date-only values stay YYYY-MM-DD. Request parameters such as since accept an ISO 8601 date or date-time; one without an offset is read as UTC.
  • Lists return { "items": [...], "next_cursor": ... }. Pass limit (default 50, at most 200) and, for the next page, cursor set to the previous next_cursor. next_cursor is null on the last page. GET /pages pages the same way, ordered by subdomain.
  • Incidents and maintenances list newest first by creation time. Each list item carries type (Incident or Maintenance). The state filter takes open, resolved or all (the default): an incident is resolved once it has been resolved, and a maintenance once it has completed, been canceled or been resolved; everything else is open.
  • Incident messages (messages[]) carry only id, type, description and date, oldest first.
  • Incident notes: GET /incidents/{id}/notes returns items and next_cursor (always null: an incident holds at most 500 notes). The same list is also returned as data, a deprecated alias kept for one release. Read items.
  • Errors are problem details with a stable title. See Errors and status codes.