SLOsGET /slos/{id}

GET /slos/{id}

Get SLO with latest burn event

Parameters

NameInRequiredTypeDescription
idpathyesstring

Example request

curl -X GET "/api/v1/slos/{id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

Responses

200: ok

{
  "id": "string",
  "name": "string",
  "service_id": "string",
  "metric_def_id": "string",
  "target_pct": null,
  "window_days": 0,
  "public": true,
  "unknown_policy": "down",
  "error_budget_remaining_pct": null,
  "last_evaluated_at": null,
  "created_at": "2026-01-01T00:00:00.000Z"
}

401: missing or invalid bearer token

title: unauthenticated. No bearer token was sent, or the key is invalid or revoked. detail distinguishes the two.

403: missing required scope

title: forbidden. The key is valid but does not carry read:slos.

404: not found

title: not_found. No SLO with that id is available to this key. An SLO owned by another organisation returns the same response, so a 404 does not confirm that the id is unused.

429: rate limit exceeded

title: rate_limited. A burst or daily limit was exceeded; detail names which. The body carries retry_after in seconds.

500: internal error

title: internal_error. An unhandled server error. Safe to retry.

Every error is an RFC 7807 problem detail served as application/problem+json:

{
  "type": "https://observer.example/problems/forbidden",
  "title": "forbidden",
  "status": 403,
  "detail": "missing scope: read:slos"
}

Branch on title, not on detail. See Errors and status codes for the full catalogue and the rate-limit headers.