Billing & FinOps

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 family classes a commitment can cover in this scope

GET
/scopes/{scopeId}/billing/commitments/eligible-services

Returns the compute family CLASSES (General-purpose / Compute-optimized / …) a commitment can cover in the active scope, as { data: [CommitmentEligibleService] } — the options of the Savings-Plan classScope and the Reserved-Instance family selector in the commitment creation form. Coverage is compute-only. A class is listed only when it is BOTH (a) eligible under the admin discount matrix for at least one commitment type and (b) backed by a compute SKU of that class with a positive effective HOUR rate in the subscription's default region (ist-1 when the subscription has none), so the picker never offers a class a purchase would then reject. Keyed on the billing grain (scope_id == subscription_id). The list is not paginated and carries no meta. Validation: scopeId must resolve to a scope the caller can reach (unknown → 404 NOT_FOUND); no other inputs. RBAC: READ on billing plus the billing:read token scope, held at SUBSCRIPTION level — a grant on the path project alone is refused 403 (details.reason SUBSCRIPTION_ROLE_REQUIRED). Async & state: Synchronous read; no state change. Errors: 401 unauthenticated; 403 caller lacks subscription-level billing READ or the token scope; 404 unknown scopeId; 500 internal failure. Idempotency/Concurrency: Safe, cacheable; no idempotency key required.

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.

Path Parameters

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

Response Body

The eligible compute family classes (possibly empty).

application/json
  1. response
data*array<>
curl -X GET "https://example.com/scopes/string/billing/commitments/eligible-services"
{  "data": [    {      "id": "string",      "name": "string"    }  ]}