◇ /LANDING/REST-API

142 endpoints.
One spec.

OpenAPI 3.1, idempotency keys on every write, GCRA rate limiting, cursor-based pagination, and a consistent error envelope.

OpenAPI 3.1Idempotency keysGCRA rate limitCursor paginationWebSocket stream
01 · OPENAPI 3.1

Spec-first.
Code-generated.

The OpenAPI 3.1 spec is the source of truth. Client SDKs, server stubs, documentation, and request validation are all generated from the same YAML file.

api.relays.one · v1142 endpoints
ResourceEndpointsMethods
DNS34GET POST PUT PATCH DELETE
Domains22GET POST PUT DELETE
Certificates18GET POST DELETE
Monitoring26GET POST PUT PATCH DELETE
Incidents16GET POST PUT PATCH
Status Pages14GET POST PUT DELETE
Analytics12GET
02 · IDEMPOTENCY KEYS

Retry safely.
No duplicates.

Every write endpoint accepts an Idempotency-Key header. Retries within 24 hours return the original response from cache. Different body with same key returns 409 Conflict.

idempotent POST
03 · RATE LIMITING (GCRA)

Smooth, not bursty.
GCRA guarantees it.

Generic Cell Rate Algorithm (GCRA) provides smooth rate limiting without the thundering-herd problem of fixed-window counters. Every response includes standard rate limit headers.

PlanRPSBurstWindowAlgorithm
Free1020per-secondGCRA
Pro100200per-secondGCRA
Business5001,000per-secondGCRA
Enterprisecustomcustomper-secondGCRA
Response headers
HeaderExampleMeaning
X-RateLimit-Limit100Requests per second allowed
X-RateLimit-Remaining94Requests remaining in window
X-RateLimit-Reset1712822400Unix timestamp of window reset
Retry-After0.1Seconds to wait (on 429)
04 · CURSOR PAGINATION

No offset.
No drift.

Cursor-based pagination avoids the consistency issues of offset pagination. Results are stable even as records are created or deleted between pages.

cursor-based pagination
05 · ERROR ENVELOPE

Every error.
Same shape.

Every error response follows the same JSON envelope: machine-readable code, human-readable message, field-level details, request ID for support, and a link to the documentation.

422 Unprocessable Entity
06 · WEBSOCKET STREAM

Real-time events.
One socket.

Subscribe to a WebSocket stream and receive events as they happen. Filter by event type, zone, or resource. Reconnection and backfill are handled by the client SDK.

wss://api.relays.one/v1/streamCONNECTED
TimeEventPayload
07:12:03.112record.created{"zone":"example.com","type":"A","name":"api"}
07:12:06.540cert.issued{"domain":"*.example.com","ca":"letsencrypt"}
07:14:22.001monitor.down{"monitor":"api-http","region":"FRA"}
07:14:22.044incident.created{"id":"INC-2848","severity":"critical"}
07:18:41.220monitor.up{"monitor":"api-http","region":"FRA"}
07:18:41.300incident.resolved{"id":"INC-2848","duration":"4m19s"}

Build on Relays.
Ship today.