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 the alert rules derived from the project's budgets

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

Returns the alert rules the platform keeps in step with the project's budgets: one rule per budget threshold on the spent metric and one forecast rule at 100 %, each with its current evaluation state. The rules are read-only here -- they change when the budget (its thresholds or alert recipient) changes, and disappear when the budget is deleted. A budget's alert cycle is its period: a new period resolves an alert that is still open and alerts again when the new period crosses the threshold. RBAC: READ on budgets (owner, contributor, reader, billing-ops). The general alert-rules API (gated on observability) never lists these rules.

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 budget 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/budget-alert-rules"
{  "data": [    {      "id": "string",      "name": "string",      "budgetId": "string",      "metric": "spent",      "thresholdPercent": 0,      "channelIds": [        "string"      ],      "enabled": true,      "state": "OK",      "stateSince": "string",      "lastEvaluatedAt": "string",      "updatedAt": "string"    }  ],  "meta": {    "page": 1,    "pageSize": 1,    "total": 0,    "hasNext": true  }}