Console

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 signed-in user's in-app notifications

GET
/notifications

The top-bar bell and the /notifications page. One feed PER USER across every project the caller reaches, newest first, covering the last 30 days:

  • kind=alert -- an alert rule FIRING or RESOLVED (the transitions its channels were sent; never a no-data transition), in every project where the caller holds READ on the rule provider's permission key: the observability plane for the alert-rules API's rules, budgets for a budget's alert; plus the alerts of a subscription-wide budget for a caller whose SUBSCRIPTION-level grant holds budgets READ -- such an item carries subscriptionId and a null projectId;
  • kind=operation -- a FAILED operation the caller started, or one the operations feed shows the caller (reachable owning project + READ on the operation's resource plane). Read state is kept on the server per user: read on every item and unreadCount over the whole feed window (not only this page). unread=true lists only unread items. Every item names its region; region=<code> / region=global narrow the list. Errors: 401 no session; 422 invalid pagination. Idempotency/Concurrency: Safe; reading never changes read state.

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.

Query Parameters

page?integer

1-based page number.

Range1 <= value
Default1
pageSize?integer

Items per page (max 200).

Range1 <= value <= 200
Default50
unread?boolean

true -- only unread items; false -- only read items; omitted -- all.

region?string

A region code -- only the items whose region is that region; global -- only the items tied to no region (region: null); omitted -- every region. Like unread, it never changes unreadCount, which stays the whole feed's.

Match^[a-z][a-z0-9-]{1,39}$

Response Body

One page of the caller's feed plus the unread count of the whole feed.

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

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

unreadCount*integer
Range0 <= value
curl -X GET "https://example.com/notifications"
{  "data": [    {      "id": "string",      "kind": "alert",      "occurredAt": "string",      "read": true,      "tenantId": "string",      "subscriptionId": "string",      "projectId": "string",      "region": "string",      "alert": {        "eventId": "string",        "ruleId": "string",        "ruleName": "string",        "instanceId": "string",        "instanceName": "string",        "provider": "string",        "status": "FIRING",        "fromState": "OK",        "toState": "OK",        "value": 0,        "reason": "string"      },      "operation": {        "operationId": "string",        "state": "SUCCEEDED",        "action": "string",        "resourceKind": "string",        "resourceId": "string",        "resourceName": "string",        "errorCode": "string",        "errorMessage": "string"      }    }  ],  "meta": {    "page": 1,    "pageSize": 1,    "total": 0,    "hasNext": true  },  "unreadCount": 0}