Skip to content
ScaledPapers Beta

Account

Call the API

The Checks API is at https://api.scaledpapers.com. Authenticate with a key from API Keys. Creating and revoking keys still happens in the console.

This is the same data as console checks. It is not the homepage website checker.

Create a key

API Keys in the console: Create API key, prefix, Created, Last used, and Revoke.

  1. Sign in and open API Keys. Lead: Authenticate requests to the ScaledPapers API.
  2. Click Create API key.
  3. Copy the secret and the sample curl. The page says It will not be shown again.

The list then shows the key prefix (sp_…), Created, Last used, and Revoke. Revoke if a key leaks. Requests with a revoked key stop working.

Send the secret as:

Authorization: Bearer sp_…

Unauthenticated calls return JSON 401 with {"detail":"Authorization required"}.

List your checks

curl https://api.scaledpapers.com/v1/endpoints \
  -H "Authorization: Bearer sp_…"

Pipe the body to python3 -m json.tool if you want it indented. jq only works when the body is JSON.

Each check includes id, name, type (api or http), target, enabled, interval_seconds, regions (names such as us-west-1), current_status, last_observed_at, and a 40-tick recent_ticks bar for the last 24 hours.

API checks use type: "api". Website checks use type: "http".

Add, change, or delete a check

Create:

curl https://api.scaledpapers.com/v1/endpoints \
  -H "Authorization: Bearer sp_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production health",
    "target": "https://example.com",
    "type": "api",
    "regions": ["us-west-1"]
  }'

Useful fields:

  • interval_seconds — 60 or more on the free plan
  • http_method
  • expected_status_codes
  • body_contains
  • timeout_seconds
  • follow_redirects
  • verify_ssl
  • alert_email_enabled

regions is a list of region names or city names (us-west-1, San Francisco). You must send at least one. The five Americas regions are the same as in the console.

Fetch one check: GET /v1/endpoints/{id}.

Pause or resume: PATCH /v1/endpoints/{id} with {"enabled": false} or true.

Delete: DELETE /v1/endpoints/{id}.

Private and loopback hosts are rejected. One component can be linked to only one check.

Run now, history, regions, usage

Call What it does
POST /v1/endpoints/{id}/test Same as Run now in the console
GET /v1/endpoints/{id}/history?hours=24 Recent samples (status, status_code, latency_ms, location_name, location_region)
GET /v1/endpoints/{id}/status Latest state
GET /v1/endpoints/{id}/outages Confirmed down periods
GET /v1/locations Enabled probe regions (name, region)
GET /v1/usage Plan, how many checks you are using, monthly probe count

To link a check from the API, send site_id, site_slug, and component_id together. alert_incident_enabled posts an incident when the check is down. display_metrics shows the metric on the public status page.