Skip to main content

API Reference

REST API

Integrate CheckFast into CI/CD pipelines, custom dashboards, and monitoring stacks. Bearer-token auth, JSON in / JSON out, no client SDK required.

Personalise the curl examples

Paste a key here and we'll save it in your browser's localStorage so you can copy-paste examples without editing them. The key is never sent to our servers from this page.

Authentication

Every key-authenticated public endpoint expects a bearer token in the Authorization header. /health and /metrics are unauthenticated liveness probes.

Authorization: Bearer cf_live_<your-key>

API keys are part of the paid monitoring launch. Join the waitlist above; the reference remains public so teams can prepare CI and dashboard integrations.

Quickstart

Run a 17-dimension fast audit on any domain with a single request. Paste your key in the box above and the examples below update automatically.

curl -X POST https://checkfast.io/api/v1/public/check \
  -H "Authorization: Bearer cf_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}'

The response contains a checks object — one key per dimension, each shaped as { ok: true, data } or { ok: false, error }. See Response shape for details.

Plan requirements

ScopeRequired planEndpoints
readPro ($29/mo) or Agency ($79/mo)All public read endpoints
writeAgency ($79/mo)Reserved for future create/update endpoints

Rate limits inherit from your plan's hourly + daily check budget. 429 responses include reset timestamps in the JSON body. Paid API access is not live yet; join the waitlist to get launch access.

Endpoints

GET/api/v1/public/health

Liveness probe. No authentication required — safe for status pages and uptime monitors.

curl https://checkfast.io/api/v1/public/health
GET/api/v1/public/metrics

Prometheus text liveness metrics. No authentication required; exposes only non-sensitive service health gauges.

curl https://checkfast.io/api/v1/public/metrics
POST/api/v1/public/checkscope: read

Run the 17-dimension fast audit (email, ssl, dns, seo, whois, tech, redirects, og, schema, accessibility, headers, csp, cookies, pwa, favicon, robots, sitemap) on a domain. Returns the same payload as the /check fast lane, with no persistence side-effects.

curl -X POST https://checkfast.io/api/v1/public/check \
  -H "Authorization: Bearer cf_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}'
GET/api/v1/public/monitorsscope: read

List all monitors owned by the API key holder, ordered by most-recently created.

curl https://checkfast.io/api/v1/public/monitors \
  -H "Authorization: Bearer cf_live_YOUR_KEY"
GET/api/v1/public/monitors/:idscope: read

Fetch a single monitor by ID. 404 if the monitor does not exist or belongs to another user.

curl https://checkfast.io/api/v1/public/monitors/<uuid> \
  -H "Authorization: Bearer cf_live_YOUR_KEY"
GET/api/v1/public/monitor-runs?monitor_id=<uuid>&limit=20scope: read

Recent run rows for a monitor, ordered newest-first. Limit defaults to 20, capped at 100.

curl "https://checkfast.io/api/v1/public/monitor-runs?monitor_id=<uuid>&limit=50" \
  -H "Authorization: Bearer cf_live_YOUR_KEY"

Response shape

All errors follow the same envelope:

{
  "error": "Missing or invalid API key",
  "code": "unauthorized",
  "details": { "hint": "..." }
}

Successful responses are endpoint-specific JSON. The fast-check response contains a checks object with one entry per probe, each shaped as { ok: true, data } or { ok: false, error }.

Status codes

  • 200 — success
  • 201 — resource created
  • 400 — invalid input (missing field, bad domain shape)
  • 401 — missing or invalid API key
  • 403 — key lacks the required scope
  • 404 — resource not found or not owned by this key
  • 429 — rate limit exceeded (see Retry-After)
  • 500 — server error; safe to retry with backoff