Always Online Start free

Quickstart

Create your first monitor with a single request. The API accepts JSON and returns the object it created, including the assigned id.

Authentication

All requests are authenticated with a bearer token scoped to one account. Tokens are shown once at creation time.

curl -s https://api.alwaysonline123.ru/v1/monitors \
  -H "Authorization: Bearer $AO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","interval":30}'

Monitors

A monitor is a URL plus an interval. Supported check types are http, tcp and icmp. Assertions are optional; without them a monitor is considered up when the status code is below 400.

{
  "id": "mon_8f2c1a",
  "url": "https://example.com",
  "type": "http",
  "interval": 30,
  "assertions": { "status": [200, 204], "max_ms": 1500 },
  "regions": ["eu-west", "us-east", "ap-south"]
}

Alerts

Alerts fire after two consecutive failures from distinct regions, which removes the most common source of noise. Recovery notifications are sent immediately.

Status page

Status pages are served from a subdomain you control. TLS is issued automatically once the CNAME resolves.

Webhooks

Webhook payloads are signed with HMAC-SHA256 using your endpoint secret. Reject anything whose X-AO-Signature does not verify.

X-AO-Signature: t=1762089600,v1=5f0d9c0e7c...

Rate limits

Read endpoints allow 600 requests per minute per token; writes allow 60. Exceeding either returns 429 with a Retry-After header.