List GCP planned purchases

Returns the laddering projections for the billing account, grouped by PS4C product line
(service) and region. Each service group lists one entry per available
gcp-purchases-projection document for that scope (compute scopes are global;
cloud_sql scopes are per-region).

With no filters, returns all existing projection documents in stable order: service groups
ordered compute first, then cloud_sql; within each group, regions sorted with global
first, then remaining regions alphabetically. Services with no projection documents are omitted
(not returned as empty groups). When a filter matches no documents, the response is an
empty items array (not 404). Partial projection documents return only the fields
available in storage.

gcp_service and region filters: omit both to return all available services and
their regions; supply gcp_service alone to return all regions for that service; supply
both to return a single service/region scope. region requires gcp_service — a request
with region but no gcp_service returns 400 with code gcp_service_required. Invalid
gcp_service or region values return 400 with code validation_failed.

404 is returned only when the billing account does not exist or the caller cannot access
it. A billing account that is not onboarded for PS4C still returns 200 with an empty
items array when no projection documents exist — use
GET /ps4commitments/v1/gcp/billing-accounts (or get-by-id) for onboarding status.

Pagination: results are paginated by service group (a whole group is never split
across pages). Groups keep the stable service order above. Use maxResults to limit
page size (default 50, max 500). When more groups remain, the response includes a
non-null pageToken; pass it unchanged on the next request with the same query parameters
(gcp_service, region, maxResults). rowCount is the number of service groups in
this page. An invalid pageToken returns 400 with code pagination_token_invalid; an
expired token returns 400 with code pagination_token_expired.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required
^[A-Z0-9]{6}-[A-Z0-9]{6}-[A-Z0-9]{6}$

GCP Billing Account ID (format XXXXXX-XXXXXX-XXXXXX; the account that owns the CUDs) that scopes the request.

Query Params
string
enum

Filter by PerfectScale for Commitments GCP product line. Omit to return all product lines. Matching is case-insensitive; the value is lowercased before validation.

Show Details
computeCompute commitment type (CUDs). Global scope only (`region=global`).
cloud_sqlCloud SQL commitment type (CUDs). Regional scope only (`region` is a concrete region, never `global`).
Allowed:
string
^(global|[a-z]+(_[a-z0-9]+)+)$

Filter by region scope, in lower_snake_case wire form (for example us_east1), or the
literal global. Requires gcp_service; a request with region but no gcp_service
returns 400 with code gcp_service_required. When both are omitted, all available
regions for all available product lines are returned.

The value is format-validated, not checked against a closed region list: compute accepts
only global, cloud_sql accepts only concrete regions (never global), and a value that
is malformed or incompatible with gcp_service returns 400 with code validation_failed.
A well-formed, service-compatible region with no data returns 200 with an empty result.
Matching is case-insensitive; the value is lowercased before validation.

string

Opaque cursor token returned by a previous list response. Omit to start from the beginning; an empty or absent token in a response means there are no more results. Do not parse it. A structurally invalid cursor returns 400 with code pagination_token_invalid; an expired cursor returns 400 with code pagination_token_expired — restart pagination from the beginning.

integer
1 to 500
Defaults to 50

Maximum number of items to return. Server may return fewer. Defaults to 50; maximum 500.

Headers
string

Customer (tenant) ID for the request. This is separate from authentication: you still pass your personal or service account API token in the Authorization header (Bearer <token>). See Get Started.

When to omit (most callers): If your personal or service account token belongs to a single customer, omit this header. The API resolves that customer from the token.

When to send: If your credential can access more than one customer, set X-Tenant-Id to the customer ID you want to act on. A service account can select an active direct or nested descendant of its home customer; the endpoint's normal permissions, entitlements, and resource-ownership checks still apply. A service-account target outside that customer subtree returns 403 Forbidden. Prefer this header over the legacy customerContext query parameter, which only applies to legacy API keys and is ignored by personal and service account tokens.

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json