API Reference

Availability monitoring for CIS startups. Integrate Statusly’s uptime infrastructure into your internal tools, dashboards, and alerting pipelines.

Endpoints

Manage your uptime monitors, check results, and configure alerting rules programmatically. All endpoints return JSON responses.

Base URL: https://api.statusly.io/v1

GET /monitors

Retrieve a paginated list of all monitors in your workspace. Supports filtering by status (active, paused) and tags.

{
  "data": [
    {
      "id": "mon_8x7c9v2b",
      "url": "https://api.example.io",
      "status": "active",
      "interval_seconds": 60
    }
  ],
  "meta": { "page": 1, "total": 14 }
}

POST /monitors

Create a new uptime monitor. Requires url, type (http, tcp, dns), and interval_seconds.

{
  "url": "https://checkout.yourstore.com",
  "type": "http",
  "interval_seconds": 30,
  "tags": ["production", "payments"]
}

PUT /monitors/{id}

Update an existing monitor configuration. Partial updates are supported. Changing interval_seconds will trigger a background scheduler sync.

{
  "interval_seconds": 120,
  "tags": ["production", "payments", "migrated"]
}

DELETE /monitors/{id}

Permanently remove a monitor and its associated check history. This action cannot be undone. Returns 204 No Content on success.

curl -X DELETE https://api.statusly.io/v1/monitors/mon_8x7c9v2b \
  -H "Authorization: Bearer sk_live_9f8a7b6c5d4e3f2a1b0c"

Authentication

All API requests require a valid Bearer token. Generate your personal access token from the Dashboard under Settings → API Keys.

cURL Request

curl -X GET https://api.statusly.io/v1/monitors \
  -H "Authorization: Bearer sk_live_9f8a7b6c5d4e3f2a1b0c"

Python Request

import requests

headers = {
    "Authorization": "Bearer sk_live_9f8a7b6c5d4e3f2a1b0c"
}

response = requests.get("https://api.statusly.io/v1/monitors", headers=headers)
print(response.json())

Rate Limits

Statusly enforces rate limits to ensure platform stability. Limits are calculated per API key and reset every 60 seconds.

Standard Tier

120 requests per minute. Burst allowance of 25 requests. Returns 429 Too Many Requests with a Retry-After header when exceeded.

Enterprise Tier

1,000 requests per minute. Burst allowance of 150 requests. Includes dedicated webhook retry logic and extended timeout windows for bulk monitor creation.