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 and query resource quotas in the active scope
Returns the per-resource quota rows for the active scope as rendered by the Quotas page on route load: the
metered resource (vCPUs, Memory, Floating IPs, Block storage, ...), its category and unit, the current
limit, current usage, and — when a limit increase has been filed — the requested value and the request
status (REQUESTED, APPROVED, AUTO_APPROVED, REJECTED; both null when no request exists). This single
endpoint also serves the search/filter/sort/paginate behavior (billing.quota.search_filter_sort):
the UI's category selector maps to the category query parameter, the "Filter resources…" box maps to
q (matched against the resource name), and status narrows to rows with a matching request status;
sort, order, page and pageSize apply standard collection semantics.
Validation: scopeId must reference a scope the caller can access (otherwise 403 FORBIDDEN);
status must be one of REQUESTED|APPROVED|AUTO_APPROVED|REJECTED (otherwise 422 VALIDATION_FAILED);
unknown sort keys map to 422 VALIDATION_FAILED.
Async & state: Synchronous read; no state change. No SSE frames are emitted.
Errors: 401 when unauthenticated; 403 when the caller lacks read access to the scope; 422 for
malformed query parameters; 500 on backend read-model failure.
Idempotency/Concurrency: Safe, cacheable; no idempotency key required.
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.
region?stringRestrict the result set to a single region.
^[a-z][a-z0-9-]{1,39}$q?stringFree-text search.
sort?stringField to sort by (entity-specific; defaults to the entity's natural order).
order?stringSort direction.
"asc""asc""desc"page?integer1-based page number.
1 <= value1pageSize?integerItems per page (max 200).
1 <= value <= 20050category?stringFilter quota rows by resource category (UI category selector, e.g. Compute, Networking, Storage, Database, Containers).
status?stringFilter quota rows by limit-increase request status.
"REQUESTED""APPROVED""AUTO_APPROVED""REJECTED"Paginated collection of quota rows in the active scope.
application/json- 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/billing/quotas"{ "data": [ { "id": "q1", "resource": "vCPUs", "category": "Compute", "unit": "cores", "limit": 0, "usage": 0, "requested": 0, "status": "REQUESTED", "limitSource": "starter" } ], "meta": { "page": 1, "pageSize": 1, "total": 0, "hasNext": true }}