Google Cloud Client Libraries for Go

Go Reference

Go packages for Google Cloud Platform services.

import ""

To install the packages on your system, do not clone the repo. Instead:

  1. Change to your project directory:

    cd /my/cloud/project
  2. Get the package you want to use. Some products have their own module, so it’s best to go get the package(s) you want to use:

    $ go get # Replace with the package you want to use.

NOTE: Some of these packages are under development, and may occasionally make backwards-incompatible changes.

Supported APIs

Google API Status Package
Asset stable
Automl stable
BigQuery stable
Bigtable stable
Cloudbuild stable
Cloudtasks stable
Container stable
ContainerAnalysis beta
Dataproc stable
Datastore stable
Debugger stable
Dialogflow stable
Data Loss Prevention stable
ErrorReporting alpha
Firestore stable
IAM stable
IoT stable
IRM alpha
KMS stable
Natural Language stable
Logging stable
Memorystore alpha
Monitoring stable
OS Login stable
Pub/Sub stable
Phishing Protection alpha
reCAPTCHA Enterprise alpha
Recommender beta
Scheduler stable
Securitycenter stable
Spanner stable
Speech stable
Storage stable
Talent alpha
Text To Speech stable
Trace stable
Translate stable
Video Intelligence beta
Vision stable
Webrisk alpha

Alpha status: the API is still being actively developed. As a result, it might change in backward-incompatible ways and is not recommended for production use.

Beta status: the API is largely complete, but still has outstanding features and bugs to be addressed. There may be minor backwards-incompatible changes where necessary.

Stable status: the API is mature and ready for production use. We will continue addressing bugs and feature requests.

Documentation and examples are available at

Go Versions Supported

We currently support Go versions 1.11 and newer.


By default, each API will use Google Application Default Credentials for authorization credentials used in calling the API endpoints. This will allow your application to run in many environments without requiring explicit configuration.

client, err := storage.NewClient(ctx)

To authorize using a JSON key file, pass option.WithCredentialsFile to the NewClient function of the desired package. For example:

client, err := storage.NewClient(ctx, option.WithCredentialsFile("path/to/keyfile.json"))

You can exert more control over authorization by using the package to create an oauth2.TokenSource. Then pass option.WithTokenSource to the NewClient function: snip:# (auth-ts)

tokenSource := ...
client, err := storage.NewClient(ctx, option.WithTokenSource(tokenSource))


Contributions are welcome. Please, see the CONTRIBUTING document for details.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See Contributor Code of Conduct for more information.