Platform

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 caller's recent operations

GET
/operations

The caller's most recent operations, newest first, as one bounded window (limit, no offset pagination: meta.page is always 1, meta.pageSize echoes limit, meta.total is the number of rows returned and meta.hasNext is always false). Visibility is the same rule as GET /operations/{operationId}: an operation owned by a live project is visible only to a caller with a role in THAT project, a tenant/subscription-level operation (or one whose project no longer exists) to anyone reaching its tenant; on top, the caller must hold READ on the operation's resource plane (issue), so a compute-only role never sees storage operations. A bearer is confined to its home tenant. With projectId the feed is narrowed to that project (and its tenant's tenant-level operations). Validation: limit 1–100 (default 50), else 422; projectId must be reached by the caller, else 404 (unknown and unreached are indistinguishable). Async & state: Synchronous read; no state change. Errors: 401; 404 projectId not reached; 422 limit out of range; 500. Idempotency/Concurrency: Safe.

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

projectId?string

Narrow the feed to one project the caller reaches.

limit?integer

Maximum number of operations returned.

Range1 <= value <= 100
Default50

Response Body

The caller's recent operations.

application/json
  1. response

A bounded, newest-first window of operations (meta.page 1, meta.hasNext false).

data*array<>
meta*

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

curl -X GET "https://example.com/operations"
{  "data": [    {      "id": "string",      "action": "string",      "state": "PENDING",      "resourceKind": "string",      "resourceId": "string",      "resourceName": "string",      "principalId": "string",      "sourceIp": "string",      "progressPercent": 0,      "error": {        "code": "string",        "message": "string",        "field": "string",        "details": {},        "retryable": false      },      "warning": {        "code": "string",        "message": "string",        "field": "string",        "details": {},        "retryable": false      },      "startedAt": "string",      "finishedAt": "string",      "createdAt": "string",      "updatedAt": "string"    }  ],  "meta": {    "page": 1,    "pageSize": 1,    "total": 0,    "hasNext": true  }}