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.
Get an API token's detail and usage read model
Retrieves the API token detail page read model for one API token: the token record (name, description, masked
prefix, scopes, creator, created/expiry timestamps, last-used time and IP, CIDR allowlist, status) plus the
usage panels — the recent call log (method, path, HTTP status, source IP, latency) and the 14-day call/error
volume series. The full secret is never present in this response; only the non-sensitive prefix is shown.
Validation: scopeId must be an accessible scope and apiTokenId must reference a token within it;
unknown or out-of-scope ids map to NOT_FOUND (404). No mutation parameters exist.
Async & state: Synchronous read; no state change.
Errors: 401 when unauthenticated; 403 when the caller lacks IAM read permission on the scope; 404 when
the token does not exist in this scope; 500 on read-model failure.
Idempotency/Concurrency: Safe, cacheable; no idempotency key required. The response carries
no ETag; rotate, revoke and delete do not check If-Match.
bearerTokenAuthorizationBearer <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.
scopeId*stringOpaque ownership+authorization scope resolving to tenant + subscription + project.
apiTokenId*stringIdentifier of the API token.
API token detail read model including recent calls and usage series (secret omitted).
application/json- response
Detail read model — token record plus usage panels.
id*stringToken identifier, e.g. "tok_a1b2".
name*stringToken name (lowercase letters, digits, hyphens), e.g. "ci-deploy-prod".
description*stringFree-text purpose description.
prefix*stringNon-sensitive secret prefix shown in the UI, e.g. "pc_live_7Qx9".
scopes*array<string>Granted permission scopes, e.g. "compute:write", "billing:read".
createdBy*stringDisplay name of the user who created the token.
createdAt*stringdate-timeexpiresAt*|Expiry timestamp, or null when the token never expires.
date-timelastUsedAt*|When the token last authenticated a call, or null if never used.
date-timelastUsedIp*|Source IP of the most recent call, or null if never used.
ipAllowlist*array<string>CIDR allowlist; empty array = no restriction (any IP).
status*ApiTokenStatusLifecycle status of an API token.
"ACTIVE""EXPIRED""REVOKED"recentCalls*array<>Recent call log, newest first.
usageSeries*array<>14-day call/error volume series.
curl -X GET "https://example.com/scopes/string/iam/api-tokens/string"{ "id": "string", "name": "string", "description": "string", "prefix": "string", "scopes": [ "string" ], "createdBy": "string", "createdAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z", "lastUsedAt": "2019-08-24T14:15:22Z", "lastUsedIp": "string", "ipAllowlist": [ "string" ], "status": "ACTIVE", "recentCalls": [ { "id": "string", "at": "2019-08-24T14:15:22Z", "method": "GET", "path": "string", "status": 0, "ip": "string", "latencyMs": 0 } ], "usageSeries": [ { "label": "string", "calls": 0, "errors": 0 } ]}