Set up the Cloud Optimization API

This guide provides all required setup steps to start using Cloud Optimization.

About the Google Cloud console

The Google Cloud console is a web UI used to provision, configure, manage, and monitor systems that use Google Cloud products. You use the Google Cloud console to set up and manage Cloud Optimization resources.

Create a project

To use services provided by Google Cloud, you must create a project.

A project organizes all your Google Cloud resources. A project consists of the following components:

  • a set of collaborators
  • enabled APIs (and other resources)
  • monitoring tools
  • billing information
  • authentication and access controls

You can create one project, or you can create multiple projects. You can use your projects to organize your Google Cloud resources in a resource hierarchy. For more information on projects, see the Resource Manager documentation.

In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

Go to project selector

Enable billing

A billing account defines who pays for a given set of resources. Billing accounts can be linked to one or more projects. Project usage is charged to the linked billing account. You configure billing when you create a project. For more information, see the Billing documentation.

Make sure that billing is enabled for your Google Cloud project.

Enable the API

You must enable the Cloud Optimization API for your project. For more information on enabling APIs, see the Service Usage documentation.

Enable the Cloud Optimization API.

Enable the API

For Cloud Fleet Routing service users, we provide the flexibility of bringing your own distance matrix using third-party services, which is the default option in the Cloud Fleet Routing service offered by Cloud Optimization API. Alternatively, you can choose to use Google Map Platform's Distance Matrix API by enabling the Google Maps for Fleet Routing plug-in. If you choose to enable the Distance Matrix API integration, we'll pass your location data on your behalf to the Distance Matrix API. Your use of the Distance Matrix API through this optional integration is governed by the Google Map Platform''s Terms of Service. Your use of the Cloud Optimization API and Cloud Fleet Routing service (not including the location data sent to Distance Matrix API) is governed by the Google Cloud Terms of Service (including, without limitation, the associated Restricted-GA Offerings Terms when applicable).

Enable the Maps for Fleet Routing API.

Enable the API

Set up authentication

Any client application that uses the API must be authenticated and granted access to the requested resources. This section describes important authentication concepts and provides steps for setting it up. For more information, see the Authentication overview.

About service accounts

There are multiple options for authentication, but it is recommended that you use service accounts for authentication and access control. A service account provides credentials for applications, as opposed to end-users. Projects own their service accounts. You can create many service accounts for a project. For more information, see Service accounts.

About roles

When calling an API, Google Cloud requires the calling identity (any applicable person, entity, or process and their defined attributes) to have the appropriate permissions. You can grant permissions by granting roles to a service account. For more information, see the Identity and Access Management (IAM) documentation.

For the purpose of trying the Cloud Optimization API, you can use the Project > Owner role in the steps below. The Project > Owner role grants the service account full permission to resources in your project. If your service account does not require full permissions, you specify a more restrictive role using the Google Cloud console. For a list of roles and permissions, see IAM permissions reference. For information on managing permissions using IAM roles, see granting roles to service accounts.

If you need to call the GetOperation and BatchOptimizeTours API, make sure to add the service account calling the APIs with proper roles as described in the Access Control with IAM.

About service account keys

Service accounts are associated with one or more public/private key pairs. When you create a new key pair, you download the private key. The Google Cloud CLI uses your private key to generate credentials when calling the API. You are responsible for security of the private key and other management operations, such as key rotation.

Create a service account and download the private key file

Create a service account:

  1. In the Google Cloud console, go to the Create service account page.

    Go to Create service account
  2. Select your project.
  3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

    In the Service account description field, enter a description. For example, Service account for quickstart.

  4. Click Create and continue.
  5. Grant the Project > Owner role to the service account.

    To grant the role, find the Select a role list, then select Project > Owner.

  6. Click Continue.
  7. Click Done to finish creating the service account.

    Do not close your browser window. You will use it in the next step.

Create a service account key:

  1. In the Google Cloud console, click the email address for the service account that you created.
  2. Click Keys.
  3. Click Add key, and then click Create new key.
  4. Click Create. A JSON key file is downloaded to your computer.
  5. Click Close.

Use the service account key file in your environment

Provide authentication credentials to your application code by setting the environment variable GOOGLE_APPLICATION_CREDENTIALS. This variable applies only to your current shell session. If you want the variable to apply to future shell sessions, set the variable in your shell startup file, for example in the ~/.bashrc or ~/.profile file.

Linux or macOS


Replace KEY_PATH with the path of the JSON file that contains your credentials.

For example:

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"


For PowerShell:


Replace KEY_PATH with the path of the JSON file that contains your credentials.

For example:


For command prompt:


Replace KEY_PATH with the path of the JSON file that contains your credentials.

Install and initialize the Google Cloud CLI (optional)

The gcloud CLI provides a set of tools that you can use to manage resources and applications hosted on Google Cloud.

The following link provides instructions:

Install the Google Cloud CLI, then initialize it by running the following command:

gcloud init

Test the SDK and authentication

If you have set up authentication in previous steps, you can use the gcloud CLI to test your authentication environment. Execute the following command and verify that no error occurs and that credentials are returned:

gcloud auth application-default print-access-token

That command is used by all Cloud Optimization API command line REST samples to authenticate API calls.

Install the Cloud Optimization API client library

You have three options for calling the Cloud Optimization API:

The client libraries are available for several popular languages. For information on installing the client libraries, see Cloud Optimization API Client Libraries.