UpCheckDocs

REST API

Base URL, authentication, endpoints, and a create-monitor example.

Base URL

All API requests go to the UpCheck backend over HTTPS:

https://upcheck-api-a.rekwiem.com

Authentication

The API authenticates with project API keys: revocable tokens that start with upk_. A key is scoped to exactly one project, so it can read and write that project's monitors and nothing else. Account level endpoints reject API keys.

Create an API key

In the dashboard, open your project's Settings and find API keys. Name the key, optionally give it a 30 or 90 day expiry, and create it. The full key is shown once, at creation, so copy it somewhere safe. You can revoke any key from the same list.

Use the key

Send it as a Bearer token on every request:

Authorization: Bearer upk_your_key

Endpoints

MethodPathWhat it does
GET/v1/monitorsList your monitors with status
POST/v1/monitorsCreate a monitor
POST/v1/monitors/testRun one check against a draft config, nothing saved
PATCH/v1/monitors/:idUpdate a monitor, partial fields
DELETE/v1/monitors/:idDelete a monitor
GET or POST/v1/heartbeats/:id/pingHeartbeat check-in, call it from your job
GET/v1/tokensList API keys, metadata only
DELETE/v1/tokens/:idRevoke an API key

Creating keys requires a session

POST /v1/tokens only accepts a signed-in session, so a leaked key can never mint more keys. Create keys from the dashboard.

Interactive reference

The full schema lives in the API itself: GET /docs serves a rendered reference and GET /openapi.json returns the OpenAPI document, so you can generate clients or import it into your tooling.

Example: create a monitor

Only url is required. This creates an HTTP monitor on a 5 minute interval:

curl -X POST https://upcheck-api-a.rekwiem.com/v1/monitors \
  -H "Authorization: Bearer upk_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://example.com", "interval_sec": 300 }'

The response is the created monitor, including the result of its first check.