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 compute flavor (size) catalog in the active scope
Returns the paginated, published flavor catalog offered by the region: the size picker
both the create-VM wizard and the resize dialog read. Unlike instances/images/key pairs,
the flavor catalog is GLOBAL (not owned by a tenant), so the
rows returned do not vary by tenant — only by which products the operator has PUBLISHED
(an unpublished/unpriced discovered flavor is excluded from both the page and the total
count). Each flavor's priceMonthly/priceHourly are sourced from the SAME published
catalog product the create-VM wizard and billing rate card use, so this list never
disagrees with the wizard for the same flavor. scopeId still gates the call (READ on the
compute resource key) so the gateway authorizes it exactly like the other compute reads.
Validation: scopeId must resolve to an accessible scope else 403 FORBIDDEN; order
must be asc or desc; page >= 1 and pageSize within bounds — violations map to 422
VALIDATION_FAILED.
Async & state: Synchronous read; no state change. The catalog changes only when the
collector re-syncs Nova flavors or the operator publishes/unpublishes a product.
Errors: 401 unauthenticated; 403 caller lacks a read-capable role (owner|admin|
contributor|reader) on the scope; 404 unknown scopeId; 422 malformed query parameters;
500 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.
order?stringSort direction.
"asc""asc""desc"page?integer1-based page number.
1 <= value1pageSize?integerItems per page (max 200).
1 <= value <= 20050Paginated flavor catalog.
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/compute/flavors"{ "data": [ { "id": "string", "name": "string", "family": "string", "restricted": true, "entitled": true, "vcpus": 0, "ramMb": 0, "diskGb": 0, "priceMonthly": { "amount": 0, "currency": "USD" }, "priceHourly": { "amount": 0, "currency": "USD" }, "gpu": { "count": 1, "model": "string" } } ], "meta": { "page": 1, "pageSize": 1, "total": 0, "hasNext": true }}