Observability

Preview — pending review

This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.

List alert rules in the active project

GET
/scopes/{scopeId}/observability/alert-rules

Returns the project's live alert rules, newest first, each with its current evaluation state (OK | FIRING | INSUFFICIENT_DATA) and its tag selector. A rule's state is the ROLL-UP of the instances its selector matches: FIRING while any matched instance fires, INSUFFICIENT_DATA while the selector matches nothing. target.matchedCount is resolved on this read; target.instances is EMPTY here (the per-instance states come from the single-rule read). Deleted rules are excluded. RBAC: READ on the observability plane (owner, contributor, reader).

Authorization

bearerToken
headerAuthorizationBearer <token>

An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.

Path Parameters

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

Query Parameters

page?integer

1-based page number.

Range1 <= value
Default1
pageSize?integer

Items per page (max 200).

Range1 <= value <= 200
Default50

Response Body

One page of alert rules.

application/json
  1. response
data*array<>
meta*

Pagination envelope metadata. List responses are always { data, meta } — never a naked array.

curl -X GET "https://example.com/scopes/string/observability/alert-rules"
{  "data": [    {      "id": "string",      "name": "string",      "provider": "instance_state",      "target": {        "kind": "instance_selector",        "match": {          "property1": "string",          "property2": "string"        },        "matchedCount": 0,        "monitoringDisabledCount": 0,        "instances": [          {            "id": "string",            "name": "string",            "state": "OK",            "stateSince": "string",            "lastValue": 0,            "lastEvaluatedAt": "string"          }        ]      },      "condition": {        "metric": "cpu.utilization",        "aggregation": "avg",        "comparator": "gt",        "threshold": 0,        "windowSeconds": 0,        "forSeconds": 0      },      "channelIds": [        "string"      ],      "enabled": true,      "state": "OK",      "stateSince": "string",      "lastEvaluatedAt": "string",      "createdAt": "string",      "createdBy": "string",      "updatedAt": "string"    }  ],  "meta": {    "page": 1,    "pageSize": 1,    "total": 0,    "hasNext": true  }}