This document explains how to view your reservations or future reservation requests. To learn more about the different types of reservations, see Provisioning type.
When you view your reservations or future reservation requests, you can do the following:
View reservation settings. This review helps you verify the details of your reservations, ensure that they meet your needs, and plan for capacity.
Determine the number of consumable instances. This check helps you determine how many Compute Engine instances can consume your reserved capacity.
Limitations
You can only view a shared reservation or shared future reservation request in the project where you created it.
Before you begin
-
If you haven't already, then set up authentication.
Authentication is
the process by which your identity is verified for access to Google Cloud services and APIs.
To run code or samples from a local development environment, you can authenticate to
Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Go
To use the Go samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
For more information, see Set up authentication for a local development environment.
Java
To use the Java samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
For more information, see Set up authentication for a local development environment.
Node.js
To use the Node.js samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
For more information, see Set up authentication for a local development environment.
Python
To use the Python samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
For more information, see Set up authentication for a local development environment.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
Required roles
To get the permissions that you need to view reservations or future reservation requests,
ask your administrator to grant you the
Compute Admin (roles/compute.admin
) IAM role on the project.
For more information about granting roles, see Manage access to projects, folders, and organizations.
This predefined role contains the permissions required to view reservations or future reservation requests. To see the exact permissions that are required, expand the Required permissions section:
Required permissions
The following permissions are required to view reservations or future reservation requests:
-
To view a list of reservations:
compute.reservations.list
on the project -
To view a list of future reservation requests:
compute.futureReservations.list
on the project -
To view the details of a reservation:
compute.reservations.get
on the project -
To view the details of a future reservation request:
compute.futureReservations.get
on the project
You might also be able to get these permissions with custom roles or other predefined roles.
View reservation settings
The following sections explain how to view the settings of your reservations or future reservation requests.
View reservations
To view the settings of one or more reservations, use one of the following methods described in this section:
To view an overview of all reservations in your project, view a list of your reservations.
To view the full details of a single reservation, view the details of the reservation.
To view the deleteAtTime
and reservationSharingPolicy
fields
(Preview) in a reservation, view the details
of a reservation using the Google Cloud CLI, or view reservations using the
REST API. If you don't require these fields, then view reservations by
selecting any of the following options:
Console
In the Google Cloud console, go to the Reservations page.
On the On-demand reservations tab (default), the table lists each reservation, and each table column describes a property.
Optional: To refine your list of reservations, in the
Filter field, select the properties that you want to filter the reservations by.To view the details of a reservation, in the Name column, click the name of the reservation.
A page that gives the details of the reservation opens.
gcloud
To view a list of your reservations, use the
gcloud compute reservations list
command:gcloud compute reservations list
The output is similar to the following example:
NAME: r-01 IN_USE_COUNT: 0 COUNT: 5 ZONE: us-central1-a SHARE_TYPE: LOCAL NAME: r-02 IN_USE_COUNT: 3 COUNT: 10 ZONE: us-central1-f SHARE_TYPE: LOCAL
Optionally, to refine a list of reservations using a filter expression, include the
--filter
flag:gcloud compute reservations list \ --filter="FILTER_EXPRESSION"
Replace
FILTER_EXPRESSION
with a filter expression.To view the details of a reservation, use the
gcloud compute reservations describe
command:gcloud compute reservations describe RESERVATION_NAME \ --zone=ZONE
Replace the following:
RESERVATION_NAME
: the name of an existing reservation.ZONE
: the zone where the reservation exists.
The output is similar to the following example:
creationTimestamp: '2024-10-11T03:25:23.192-07:00' id: '4488228526648280060' kind: compute#reservation name: r-01 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/r-01 shareSettings: shareType: LOCAL specificReservation: assuredCount: '50' count: '50' inUseCount: '25' instanceProperties: machineType: n2-standard-2 specificReservationRequired: false status: READY zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a
Go
To view a list of your reservations, use the following code sample:
To view the details of a reservation, use the following code sample:
Java
To view a list of your reservations, use the following code sample:
To view the details of a reservation, use the following code sample:
Node.js
To view a list of your reservations, use the following code sample:
To view the details of a reservation, use the following code sample:
Python
To view a list of your reservations, use the following code sample:
To view the details of a reservation, use the following code sample:
REST
To view a list of your reservations, make a
GET
request to thereservations.list
method:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations
Replace the following:
PROJECT_ID
: the ID of the project where you created your reservations.ZONE
: the zone where your reservations exist.
The output is similar to the following example:
{ "kind": "compute#reservation", "id": "4100668622331754141", "creationTimestamp": "2019-09-27T08:21:14.707-07:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-05", "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a", "name": "reservation-05", "specificReservation": { "instanceProperties": { "machineType": "n1-standard-2" }, "count": "100", "inUseCount": "0", "assuredCount": "100" }, "specificReservationRequired": false, "status": "READY", "shareSettings": { "shareType": "LOCAL" } }, { "kind": "compute#reservation", "id": "2533514314332214789", "creationTimestamp": "2019-09-27T08:21:14.707-07:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04", "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a", "name": "reservation-04", "specificReservation": { "instanceProperties": { "machineType": "n1-standard-2", "guestAccelerators": [ { "acceleratorType": "nvidia-tesla-t4", "acceleratorCount": 1 } ], "localSsds": [ { "diskSizeGb": "375", "interface": "SCSI" } ] }, "count": "50", "inUseCount": "25", "assuredCount": "50" }, "specificReservationRequired": false, "status": "READY", "shareSettings": { "shareType": "LOCAL" } }
Optionally, to refine a list of reservations using a filter expression, include the
filter
query parameter:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations?filter=FILTER_EXPRESSION
Replace
FILTER_EXPRESSION
with a filter expression that uses URL-encoded values.To view the details of a reservation, make a
GET
request to thereservations.get
method.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
Replace the following:
PROJECT_ID
: the ID of the project where you created the reservation.ZONE
: the zone where the reservation exists.RESERVATION_NAME
: the name of an existing reservation.
The output is similar to the following example:
{ "kind": "compute#reservation", "id": "4488228526648280060", "creationTimestamp": "2024-10-11T03:25:23.192-07:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/davide-experimental/zones/us-central1-a/reservations/r-01", "zone": "https://www.googleapis.com/compute/v1/projects/davide-experimental/zones/us-central1-a", "name": "r-01", "specificReservation": { "instanceProperties": { "machineType": "n2-standard-2" }, "count": "50", "inUseCount": "25", "assuredCount": "50" }, "specificReservationRequired": false, "status": "READY", "shareSettings": { "shareType": "LOCAL" } }
View future reservation requests
To view the settings of one or more future reservation requests, use one of the following methods described in this section:
To view an overview of all future reservation requests in your project, view a list of your requests.
To view the full details of a single future reservation request, view the details of the request.
To view future reservation requests, select one of the following options:
Console
In the Google Cloud console, go to the Reservations page.
Click the Future reservations tab.
The table lists each future reservation request, and each table column describes a property.
Optional: To refine your list of requests, in the
Filter field, select the properties that you want to filter the requests by.To view the details of a request, in the Name column, click the name of the request.
A page that gives the details of the future reservation request opens.
gcloud
To view a list of your future reservation requests, use the
gcloud beta compute future-reservations list
command:gcloud beta compute future-reservations list
The output is similar to the following example:
NAME: fr-04 TOTAL_COUNT: 100 START_TIME: 2025-07-20T07:00:00Z END_TIME: 2025-08-05T07:00:00Z PROCUREMENT_STATUS: FULFILLED ZONE: us-east1-a NAME: fr-05 TOTAL_COUNT: 10 START_TIME: 2025-07-20T07:00:00Z END_TIME: 2025-12-01T00:00:00Z PROCUREMENT_STATUS: PENDING_APPROVAL ZONE: us-west1-c
Optionally, to refine a list of future reservation requests using a filter expression, include the
--filter
flag:gcloud beta compute future-reservations list \ --filter="FILTER_EXPRESSION"
Replace
FILTER_EXPRESSION
with a filter expression.To view the details of a future reservation request, use the
gcloud beta compute future-reservations describe
command:gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \ --zone=ZONE
Replace the following:
FUTURE_RESERVATION_NAME
: the name of an existing future reservation request.ZONE
: the zone where the future reservation request exists.
The output is similar to the following example:
autoCreatedReservationsDeleteTime: '2025-05-02T01:00:00Z' creationTimestamp: '2025-03-23T10:08:31.613-07:00' id: '5212276518668495076' kind: compute#futureReservation name: fr-01 planningStatus: SUBMITTED selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/fr-01 selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/5212276518668495076 shareSettings: shareType: LOCAL specificSkuProperties: instanceProperties: machineType: n1-standard-64 totalCount: '800' status: existingMatchingUsageInfo: count: '3' timestamp: '2025-03-30T01:00:00Z' lockTime: '2025-03-30T17:09:59.297799Z' procurementStatus: APPROVED timeWindow: endTime: '2025-05-02T01:00:00Z' startTime: '2025-04-30T17:30:00Z' zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a
REST
To view a list of your future reservation requests, make a
GET
request to the betafutureReservations.list
method:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
Replace the following:
PROJECT_ID
: the ID of the project where you created your future reservation requests.ZONE
: the zone where your future reservation requests exist.
The output is similar to the following example:
{ "id": "projects/my-project/zones/us-east1-a/futureReservations", "items": [ { "id": "743865190848184978", "creationTimestamp": "2025-03-23T18:16:45.274-07:00", "selfLink": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-a/futureReservations/fr-base", "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-a/futureReservations/743865190848184978", "zone": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-a", "name": "fr-base", "specificSkuProperties": { "instanceProperties": { "machineType": "n1-standard-1" }, "totalCount": "100" }, "planningStatus": "SUBMITTED", "timeWindow": { "endTime": "2025-05-02T01:00:00Z", "startTime": "2025-04-30T17:30:00Z" }, "status": { "procurementStatus": "FULFILLED", "lockTime": "2025-03-30T07:00:00Z", "existingMatchingUsageInfo": { "count": "3", "timestamp": "2025-03-30T01:00:00Z" } }, "kind": "compute#futureReservation" }, ... ], "selfLink": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-a/futureReservations", "etag": "AnzKY34l-cvvV-JnniESJ0dtQvQ=/hvc4jaHpxFAZmOt1FVtKNgzZu-M=", "kind": "compute#futureReservationsListResponse" }
Optionally, to refine a list of future reservation requests using a filter expression, include the
filter
query parameter:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/aggregated/futureReservations?filter=FILTER_EXPRESSION
Replace
FILTER_EXPRESSION
with a filter expression that uses URL-encoded values.To view the details of a future reservation request, make a
GET
request to the betafutureReservations.get
method:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME
Replace the following:
PROJECT_ID
: the ID of the project where you created the future reservation request.ZONE
: the zone where the future reservation request exists.FUTURE_RESERVATION_NAME
: the name of an existing future reservation request.
The output is similar to the following:
{ "autoCreatedReservationsDeleteTime": "2025-05-02T01:00:00Z", "creationTimestamp": "2025-03-23T10:08:31.613-07:00", "id": "5212276518668495076", "kind": "compute#futureReservation", "name": "fr-01", "planningStatus": "SUBMITTED", "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/fr-01", "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/5212276518668495076", "shareSettings": { "shareType": "LOCAL" }, "specificSkuProperties": { "instanceProperties": { "machineType": "n1-standard-64" }, "totalCount": "800" }, "status": { "lockTime": "2025-03-30T17:09:59.297799Z", "procurementStatus": "APPROVED", "existingMatchingUsageInfo": { "count": "3", "timestamp": "2025-03-30T01:00:00Z" } }, "timeWindow": { "endTime": "2025-05-02T01:00:00Z", "startTime": "2025-04-30T17:30:00Z" }, "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a" }
Determine the number of consumable instances
To determine the number of compute instances that can consume your reserved capacity, do one of the following:
To view the maximum number of instances that can consume a reservation, see Consumable instances in a reservation.
To view the number of instances that Compute Engine plans to reserve for a future reservation request at its start time, see Consumable instances in a future reservation request.
Consumable instances in a reservation
When you view the details of a reservation, you can view how many compute instances are consuming the reservation, and how many instances can consume it, by checking the following fields:
Assured count (
assuredCount
): the number of instances reserved in the zone of the reservation for your project, and for any project a shared reservation is shared with.Total count (
count
): the number of reserved instances specified in the reservation. This number should match the assured count.Machines in use (
inUseCount
): the number of running instances in your project, or a project a shared reservation is shared with, that are consuming the reservation.
For example, if the assured count (assuredCount
) and total count (count
) are
both 50, and the number of instances consuming the reservation (inUseCount
) is
25, then 25 more instances can consume the reservation before it's fully
consumed.
Consumable instances in a future reservation request
You can determine the number of compute instances for which Compute Engine creates a reservation at a future reservation request start time. For a draft, pending approval, or approved request, you can determine this number as follows:
View how many running instances and unused reservations in your project, and in any project the request is shared with, match the request properties.
Subtract the number of matching running instances and unused reservations from the total count in the request.
You can determine the number of consumable instances for single or multiple requests at once. For multiple requests, use the Google Cloud console or REST API. For single requests, select any of the following options:
Console
In the Google Cloud console, go to the Reservations page.
Click the Future reservations tab.
The table lists each future reservation request, and each table column describes a property.
To determine the number of instances that Compute Engine plans to reserve for a request at its start time, subtract the Matching count column from the Total count column.
The Matching count column shows one of the following warnings:
Matching count is zero: there are no matching running instances or unused reservations in your project, or in any project that your request is shared with.
Matching count equals Total count: Compute Engine won't reserve any instances for your request at its star time.
If you modify a request, or create new instances or reservations that match the request, then Compute Engine updates the Matching count column within 30 minutes.
Optional: To check when the Matching count column was last updated in a request, do the following:
In the Name column, click the name of the request.
A page that gives the details of the future reservation request opens.
In the Resource details section, check the Last matching usage evaluation time field.
gcloud
To view the details of a future reservation request, use the
gcloud beta compute future-reservations describe
command:gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \ --zone=ZONE
Replace the following:
FUTURE_RESERVATION_NAME
: the name of an existing future reservation request.ZONE
: the zone where the future reservation request exists.
In the output, find the
count
andtotalCount
fields:... specificSkuProperties: ... totalCount: '100' status: existingMatchingUsageInfo: count: '50' timestamp: '2025-03-30T01:00:00Z' ... procurementStatus: DRAFTING ...
Subtract the value of
count
fromtotalCount
. For example, ifcount
is 50 andtotalCount
is 100, then Compute Engine automatically creates a reservation for 50 instances at the request start time.If you modify the request, or create new instances or reservations that match the request, then Compute Engine updates the
existingMatchingUsageInfo
field within 30 minutes. To verify when this field was last updated, check the value ofexistingMatchingUsageInfo.timestamp
.
REST
To view a list of your future reservation requests, make a
GET
request to the betafutureReservations.list
method. In the request URL, include thefilter
query parameter and specify to show only thename
,specificSkuProperties
, andstatus
fields:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?fields=items.name,items.specificSkuProperties,items.status
Replace the following:
PROJECT_ID
: the ID of the project where you created your future reservation requests.ZONE
: the zone where the future reservation request exists.
In the output, find the
count
andtotalCount
fields for each draft, pending approval, or approved request:{ "items": [ { "specificSkuProperties": { ... totalCount: "100" }, "name": "fr-01", "status": { "procurementStatus": "APPROVED", ... existingMatchingUsageInfo: { count: "50", "timestamp": "2025-01-22T07:54:26.295Z" } } }, { "specificSkuProperties": { ... totalCount: "20" }, "name": "fr-02", "status": { "procurementStatus": "DRAFTING", ... existingMatchingUsageInfo: { "count": "2", "timestamp": "2025-01-22T07:54:26.295Z" } } } ] }
For each request, subtract the value of
count
fromtotalCount
. For example, ifcount
is 50 andtotalCount
is 100, then Compute Engine automatically creates a reservation for 50 instances at the request start time.If you modify a request, or create new instances or reservations that match the request, then Compute Engine updates the
existingMatchingUsageInfo
field within 30 minutes. To verify when this field was last updated, check the value ofexistingMatchingUsageInfo.timestamp
.
What's next
Learn how to attach reservations to commitments.
Learn how to consume reservations.
Learn how to modify reservations.
Learn how to delete reservations.