API Reference

Manage your monitors from your own scripts, CI pipelines, or tooling with Uptiqr's versioned REST API. Available on Pro and Business plans.

Base URL

https://www.uptiqr.com/api/v1

Authentication

Generate an API key from Settings → API Keysin your dashboard (Pro plan or higher). The raw key is shown exactly once at creation — store it somewhere safe, it can't be viewed again. Send it as a bearer token on every request:

Authorization: Bearer utq_live_xxxxxxxxxxxxxxxxxxxxxxxx

This is a separate authentication mechanism from your dashboard's session cookie — a bearer token never works against the session-based dashboard routes, and vice versa. You can revoke a key at any time from Settings; a revoked or unknown key is rejected immediately with a 401.

Rate limits

Requests are rate-limited to 120 requests per minute per API key. Once you hit the limit, requests return 429 until the window resets.

Endpoints

GET/api/v1/monitors

List every monitor on your account, newest first.

curl https://www.uptiqr.com/api/v1/monitors \
  -H "Authorization: Bearer utq_live_xxxxxxxxxxxxxxxxxxxxxxxx"
POST/api/v1/monitors

Create a new monitor. `name` is required; `url` is required for HTTP monitors (the default `monitor_type`). Fails with 403 once you're at your plan's monitor limit.

curl -X POST https://www.uptiqr.com/api/v1/monitors \
  -H "Authorization: Bearer utq_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "API",
    "url": "https://api.example.com/health",
    "check_interval_minutes": 5
  }'
GET/api/v1/monitors/:id

Fetch a single monitor by id. Returns 404 if it doesn't exist or isn't yours.

curl https://www.uptiqr.com/api/v1/monitors/3f2a9c1e \
  -H "Authorization: Bearer utq_live_xxxxxxxxxxxxxxxxxxxxxxxx"
PUT/api/v1/monitors/:id

Update a monitor. Every field is optional -- only send what you want to change. Accepts: name, url, check_interval_minutes, check_interval_seconds (30s, Pro+ only), alert_after_n_failures, alert_cooldown_minutes, alert_emails, webhook_urls, keyword, ssl_check_enabled, sms_numbers, call_numbers, heartbeat_interval_minutes, heartbeat_grace_minutes, response_time_threshold_ms, multi_location. Alert emails and phone numbers must already be verified on your account, and plan-gated fields (30s intervals, SMS, calls, multi-location) are rejected with a 403 if your plan doesn't include them.

curl -X PUT https://www.uptiqr.com/api/v1/monitors/3f2a9c1e \
  -H "Authorization: Bearer utq_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "check_interval_minutes": 1,
    "alert_after_n_failures": 2
  }'
DELETE/api/v1/monitors/:id

Delete a monitor permanently, including its ping history and incidents.

curl -X DELETE https://www.uptiqr.com/api/v1/monitors/3f2a9c1e \
  -H "Authorization: Bearer utq_live_xxxxxxxxxxxxxxxxxxxxxxxx"

Errors

Errors are returned as JSON with an error string field, alongside the usual HTTP status code (400 bad request, 401 missing/invalid/revoked key, 403 plan limit or unverified contact, 404 not found, 429 rate limited).

Questions about the API? Email support@uptiqr.com.