Files
Checkmate/docs/api-content/index.md
T
gorkem-bwl 0d25973efb fix(docs): make the Starlight build pass
## Changes
- Bump @astrojs/starlight to ^0.32.0 so starlight-openapi 0.13's plugin
  contract (top-level setup hook) is supported
- Replace the no-arg docsLoader call with Astro's glob loader pointing
  at ../api-content so prose stays outside the Astro project tree
- Rename introduction.md → index.md and update the sidebar slug so the
  /docs/ root resolves instead of returning 404
- Commit package-lock.json so Vercel installs deterministically

## Verification
- npm run build produces 96 pages (7 narrative + 88 OpenAPI operations + 1
  releases timeline)
- /docs/, /docs/releases/, /docs/api-reference/operations/authlogin/ and
  every other route return 200 locally
- 14 release cards render with the brand-green "Latest" badge on v3.7.1
2026-05-22 14:04:52 -04:00

2.8 KiB

title, description
title description
Introduction Use the Checkmate REST API to manage monitors, incidents, status pages, notifications, and users programmatically.

Checkmate API

Checkmate exposes a REST API that mirrors everything the web UI can do. Use it to provision monitors from infrastructure-as-code, build internal dashboards, automate incident workflows, or integrate Checkmate into your existing alerting stack.

The web UI you log in to is itself just a client of this same API.

Base URL

https://<your-checkmate-host>/api/v1

Replace <your-checkmate-host> with the domain where you deployed Checkmate. For local development:

http://localhost:52345/api/v1

All endpoints are relative to this base. Every path on this page is shown without the /api/v1 prefix — prepend it when making requests.

API stability

The API is at version v1 and is considered stable. Breaking changes will only ship under a new major version (/api/v2).

What you can do

Resource What it covers
monitors Create, update, pause, and delete monitors of any type (HTTP, Ping, Port, DNS, Docker, PageSpeed, gRPC, WebSocket, Game, Hardware)
checks Read individual check results and aggregated stats
incidents List, filter, and resolve downtime incidents
notifications Manage notification channels (email, Slack, Discord, webhooks)
status-page Configure public status pages
maintenance-window Schedule maintenance windows so checks don't fire incidents
geo-checks Multi-region check results
auth Register, log in, manage users
invite Invite teammates
logs Audit and operational logs
settings Tune global Checkmate settings
queue Inspect the background-job queue (operational)
diagnostic Health and system info

What you'll need

  1. A running Checkmate instance you administer.
  2. A user account on that instance.
  3. A JWT obtained by calling POST /auth/login — see Authentication.

There is no separate "API key" concept in Checkmate. The same JWT that authenticates the web UI authenticates every API call.

Response shape

Every endpoint returns the same envelope:

{
  "success": true,
  "msg": "OK",
  "data": { /* endpoint-specific payload */ }
}

See Conventions for the full contract and Errors for failure shapes.

Quick example

# 1. Log in to get a token
TOKEN=$(curl -s -X POST https://your-checkmate-host/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"YourPass1!"}' \
  | jq -r '.data.token')

# 2. List your team's monitors
curl https://your-checkmate-host/api/v1/monitors/team/<teamId> \
  -H "Authorization: Bearer $TOKEN"

Next: Authentication.