Skip to content

HTTP API

The dashboard uses this API, and so can you. Every running collector also serves an interactive reference at /docs (Swagger UI), for example localhost:8000/docs.

Authentication

Send either:

  • a key in the X-Reqly-Key header: the ingest key, the read key, or a project key (rqk_…)
  • a session in Authorization: Bearer <token>, from POST /v1/auth/login

The Access column below means:

Access Who
Read the read key (only while PUBLIC_DASHBOARD=true), a session, or a key with the read scope
Ingest the ingest key, or a project key with the ingest scope
Admin the ingest key, an admin session, or a project key with the admin scope

Endpoints about one service check it against the caller's projects; list endpoints only return what the caller may see. See Projects, keys & sign-in.

Ingest

Method Path Access Description
POST /v1/ingest Ingest Batch of request events, ≤ 1,000 per call, validated one by one. Spec
POST /otlp/v1/traces Ingest OTLP/HTTP traces, protobuf or JSON, gzip. OpenTelemetry

Metrics

Method Path Access Description
GET /v1/services Read Services with recorded traffic
GET /v1/services/{service}/routes Read Route templates for a service
GET /v1/metrics/summary?service_name=&window=&route= Read Latency and error-rate series, status codes, top routes, requests/min and release markers. window: 1h (default), 6h, 24h, 7d
GET /v1/services/{service}/releases Read Recent releases: first/last seen, volume, error rate, p95

Alerts, SLOs and reports

Method Path Access Description
GET /v1/alerts?service_name=&status= Read Open alerts, or recent ones with status=all: hourly anomalies, SLO burn and LLM cost spikes
GET /v1/slos?service_name= Read SLOs with SLI, budget left, burn rates and state
PUT /v1/slos Admin Create or update an SLO. Fields
DELETE /v1/slos/{id} Admin Delete an SLO
GET /v1/insights/latest?service_name= Read Latest weekly report
POST /v1/insights/generate?service_name= Read Generate the report now. 5/min; cached for 10 minutes; 404 for a service with no data

API depth

Method Path Access Description
PUT /v1/services/{service}/openapi Admin Upload an OpenAPI 3 / Swagger 2 spec, JSON or YAML. ?base_path= prefixes its paths
GET /v1/services/{service}/openapi/drift Read Undocumented, unused and deprecated-but-called operations
DELETE /v1/services/{service}/openapi Admin Remove the spec
GET /v1/services/{service}/consumers?window= Read Top consumers. window: 24h, 7d (default), 30d
GET /v1/services/{service}/consumers/{id}?window= Read One consumer's routes and daily requests
GET /v1/services/{service}/llm-usage?window= Read LLM tokens and cost per route, model and day
POST /v1/ask Read Ask Reqly: {"service_name", "question"}. 5/min per IP, ASK_DAILY_LIMIT per day. Details

Projects and keys

Method Path Access Description
GET /v1/projects Read Projects the caller can see, with their services
POST /v1/projects Admin of every project Create a project: {"slug", "name"}
PUT /v1/projects/{id}/services Admin of every project Move a service, and its data, to the project
GET / POST /v1/projects/{id}/keys Project admin List keys, or create one: {"name", "scopes"}. The key is returned once
POST /v1/keys/{id}/revoke Project admin Revoke a key
GET / POST /v1/projects/{id}/members Admin of every project List or add members
DELETE /v1/projects/{id}/members/{user_id} Admin of every project Remove a member

Sign-in

Method Path Access Description
GET /v1/auth/config none Whether the dashboard is public
POST /v1/auth/login none, 10/min per IP Username and password → session token
POST /v1/auth/logout Session End the session
GET /v1/auth/me Session The signed-in user
POST /v1/auth/password Session Change the password; ends all of the user's sessions

Health

Method Path Access Description
GET /v1/health none Returns {"status": "ok"}

Limits

  • Ingest: 600 requests/min per client IP.
  • Request bodies over 16 MB are refused with 413, chunked bodies included.
  • Errors are JSON: {"detail": "..."}. 401 means an unknown or missing key; 403 means a valid key without the right scope or project.