## 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
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
- A running Checkmate instance you administer.
- A user account on that instance.
- 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.