API
A typed JSON-over-HTTP API powered by ConnectRPC — every endpoint the dashboard uses, with a fully typed Node SDK on top.
The openstatus API is a typed, JSON-over-HTTP layer powered by ConnectRPC. Every action the dashboard performs is reachable from the API — same workspace, same audit log, same single API key.
Quickstart
curl https://api.openstatus.dev/rpc/openstatus.v1.MonitorService/ListMonitors \
-H "x-openstatus-key: os_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{}'
Generate a key from Settings → API Tokens.
What you can do
- Manage monitors, status pages, status reports, maintenance windows, and notification channels.
- Build dashboards or in-app integrations on top of typed JSON responses.
- Use a single key across the API, CLI, Terraform, and MCP server.
- Inspect the full schema in the OpenAPI explorer.
Node SDK
The openstatus Node SDK is a fully typed TypeScript and JavaScript client for the API — no hand-written fetch calls, no codegen step. Works in Node and Deno.
npm i @openstatus/sdk-node
import { Openstatus } from "@openstatus/sdk-node";
const client = new Openstatus({ apiKey: process.env.OPENSTATUS_API_KEY });
const monitors = await client.monitors.list();
await client.statusReports.create({ /* ... */ });
Reach out if you want us to port it to another language.
Auth & audit
Pass x-openstatus-key on every request. The token is the same one the CLI, Terraform provider, and MCP server share.
Every mutation lands in the audit log under actor_type = 'api', so you can trace any change back to a key, a user, and a transport.
Other surfaces
- Want a terminal interface or YAML config? See the CLI.
- Managing infrastructure in HCL? Use the Terraform provider.
- Want Claude or ChatGPT to call your workspace? See the MCP server.
Reference
Full schema and methods in the API reference. SDK docs at jsr.io/@openstatus/sdk-node.