API · quickstart

Monitored via curl, before the coffee.

Five commands from key to running monitor. Create a key under Settings → API tokens — use a pls_test_ key to play in the sandbox first.

1 · Introspect your token

The first call to make: who am I, and what can this key do?

export UP4_API_KEY="pls_test_…"

curl -s https://app.upfour.io/v1/me \
  -H "Authorization: Bearer $UP4_API_KEY"

2 · Create a monitor

The form in the product and this call are the same thing. Idempotency-Key makes retries safe.

curl -s -X POST https://app.upfour.io/v1/monitors \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "name": "Example",
    "url": "https://example.com",
    "monitor_type": "http",
    "interval_seconds": 60,
    "regions": ["default"]
  }'

3 · List with cursors

curl -s "https://app.upfour.io/v1/monitors?limit=50&sort=-created_at" \
  -H "Authorization: Bearer $UP4_API_KEY"

Follow pagination.next_cursor until has_more is false.

4 · Pause and resume

curl -s -X POST https://app.upfour.io/v1/monitors/$MONITOR_ID/pause \
  -H "Authorization: Bearer $UP4_API_KEY"

curl -s -X POST https://app.upfour.io/v1/monitors/$MONITOR_ID/resume \
  -H "Authorization: Bearer $UP4_API_KEY"

Paused monitors send nothing and cost nothing.

5 · Delete

curl -s -X DELETE https://app.upfour.io/v1/monitors/$MONITOR_ID \
  -H "Authorization: Bearer $UP4_API_KEY"

Where next

The contract page covers envelopes, errors, pagination and rate limits; the monitors reference lists every field and has a “Try it” panel for each endpoint. Prefer webhooks over polling? Signed webhooks push every state change to you.