Skip to content
Switch branches/tags
Go to file

Google Cloud Node.js Client Libraries

Node.js idiomatic client libraries for Google Cloud Platform services.

Libraries are available on GitHub and npm for developing Node.js applications that interact with individual Google Cloud services:

Repo API Docs Install Command Enable Free Tier
Access Approval 📓 npm i @google-cloud/access-approval enable
AI Platform 📓 npm i @google-cloud/aiplatform enable
AI Platform Notebooks 📓 npm i @google-cloud/notebooks enable
API Gateway 📓 npm i @google-cloud/api-gateway enable
App Engine Admin API 📓 npm i @google-cloud/appengine-admin enable
Area120 Tables API 📓 npm i @google/area120-tables enable
Artifact Registry 📓 npm i @google-cloud/artifact-registry enable
Asset Inventory 📓 npm i @google-cloud/asset enable
Assured Workloads for Government 📓 npm i @google-cloud/assured-workloads enable
AutoML 📓 npm i @google-cloud/automl enable
Bigtable 📓 npm i @google-cloud/bigtable enable
Billing 📓 npm i @google-cloud/billing enable
Billing Budgets 📓 npm i @google-cloud/billing-budgets enable
Binary Authorization 📓 npm i @google-cloud/binary-authorization enable
Build 📓 npm i @google-cloud/cloudbuild enable
Certificate Authority Service 📓 npm i @google-cloud/security-private-ca enable
Channel API 📓 npm i @google-cloud/channel enable
Data Catalog 📓 npm i @google-cloud/datacatalog enable
Data Labeling 📓 npm i @google-cloud/datalabeling enable
Data Loss Prevention 📓 npm i @google-cloud/dlp enable
Data QnA 📓 npm i @google-cloud/data-qna enable
Dataproc 📓 npm i @google-cloud/dataproc enable
Dataproc Metastore 📓 npm i @google-cloud/dataproc-metastore enable
Datastore 📓 npm i @google-cloud/datastore enable
Datastore Session 📓 npm i @google-cloud/connect-datastore enable
Dialogflow API 📓 npm i @google-cloud/dialogflow enable
Dialogflow CX API 📓 npm i @google-cloud/dialogflow-cx enable
DNS 📓 npm i @google-cloud/dns enable
Document AI 📓 npm i @google-cloud/documentai enable
Domains 📓 npm i @google-cloud/domains enable
Error Reporting 📓 npm i @google-cloud/error-reporting enable
Firestore 📓 npm i @google-cloud/firestore enable
Firestore Session 📓 npm i @google-cloud/connect-firestore enable
Functions 📓 npm i @google-cloud/functions enable
Game Servers 📓 npm i @google-cloud/game-servers enable
GKE Hub 📓 npm i @google-cloud/gke-hub enable
Google Analytics Admin 📓 npm i @google-analytics/admin enable
Google Analytics Data 📓 npm i @google-analytics/data enable
Google BigQuery 📓 npm i @google-cloud/bigquery enable
Google BigQuery Connection 📓 npm i @google-cloud/bigquery-connection enable
Google BigQuery Data Transfer Service 📓 npm i @google-cloud/bigquery-data-transfer enable
Google BigQuery Reservation 📓 npm i @google-cloud/bigquery-reservation enable
Google BigQuery Storage 📓 npm i @google-cloud/bigquery-storage enable
Google Compute Engine 📓 npm i @google-cloud/compute enable
Google Container Analysis 📓 npm i @google-cloud/containeranalysis enable
Grafeas 📓 npm i @google-cloud/grafeas enable
IAM Policy Troubleshooter API 📓 npm i @google-cloud/policy-troubleshooter enable
IAM Service Account Credentials API 📓 npm i @google-cloud/iam-credentials enable
Internet of Things (IoT) Core 📓 npm i @google-cloud/iot enable
Key Management Service 📓 npm i @google-cloud/kms enable
Kubernetes Engine Cluster Manager API 📓 npm i @google-cloud/container enable
Logging 📓 npm i @google-cloud/logging enable
Logging for Bunyan 📓 npm i @google-cloud/logging-bunyan enable
Logging for Winston 📓 npm i @google-cloud/logging-winston enable
Managed Service for Microsoft Active Directory 📓 npm i @google-cloud/managed-identities enable
Media Translation 📓 npm i @google-cloud/media-translation enable
Memorystore for Memcached 📓 npm i @google-cloud/memcache enable
Monitoring Dashboards 📓 npm i @google-cloud/monitoring-dashboards enable
Natural Language 📓 npm i @google-cloud/language enable
Network Connectivity Center 📓 npm i @google-cloud/network-connectivity enable
Organization Policy 📓 npm i @google-cloud/org-policy enable
OS Config API 📓 npm i @google-cloud/os-config enable
OS Login 📓 npm i @google-cloud/os-login enable
Phishing Protection 📓 npm i @google-cloud/phishing-protection enable
Profiler 📓 npm i @google-cloud/profiler enable
Pub/Sub 📓 npm i @google-cloud/pubsub enable
reCAPTCHA Enterprise 📓 npm i @google-cloud/recaptcha-enterprise enable
Recommender 📓 npm i @google-cloud/recommender enable
Redis 📓 npm i @google-cloud/redis enable
Resource Manager API 📓 npm i @google-cloud/resource enable
Retail API 📓 npm i @google-cloud/retail enable
Runtime Config 📓 npm i @google-cloud/rcloadenv enable
Scheduler 📓 npm i @google-cloud/scheduler enable
Secret Manager 📓 npm i @google-cloud/secret-manager enable
Security Command Center 📓 npm i @google-cloud/security-center enable
Service Control API 📓 npm i @google-cloud/service-control enable
Service Directory 📓 npm i @google-cloud/service-directory enable
Service Management API 📓 npm i @google-cloud/service-management enable
Spanner 📓 npm i @google-cloud/spanner enable
Speech 📓 npm i @google-cloud/speech enable
Stackdriver Debugger 📓 npm i @google-cloud/debug-agent enable
Stackdriver Monitoring 📓 npm i @google-cloud/monitoring enable
Stackdriver Trace 📓 npm i @google-cloud/trace-agent enable
Storage 📓 npm i @google-cloud/storage enable
Talent Solution 📓 npm i @google-cloud/talent enable
Tasks 📓 npm i @google-cloud/tasks enable
Text-to-Speech 📓 npm i @google-cloud/text-to-speech enable
Transcoder API 📓 npm i @google-cloud/video-transcoder enable
Translation 📓 npm i @google-cloud/translate enable
Video Intelligence 📓 npm i @google-cloud/video-intelligence enable
Vision API 📓 npm i @google-cloud/vision enable
Web Risk API 📓 npm i @google-cloud/web-risk enable
Web Security Scanner 📓 npm i @google-cloud/web-security-scanner enable
Workflows 📓 npm i @google-cloud/workflows enable

If the service is not listed above, google-api-nodejs-client interfaces with additional Google Cloud APIs using a legacy REST interface.

When building Node.js applications, preference should be given to the libraries listed in the table.

Enabling APIs

Before you can interact with a given Google Cloud Service, you must enable its API.

Links are available for enabling APIs in the table at the beginning of this document, and in each libraries


Download your Service Account Credentials JSON file

To use Application Default Credentials, You first need to download a set of JSON credentials for your project. Go to APIs & Auth > Credentials in the Google Developers Console and select Service account from the Add credentials dropdown.

This file is your only copy of these credentials. It should never be committed with your source code, and should be stored securely.

Once downloaded, store the path to this file in the GOOGLE_APPLICATION_CREDENTIALS environment variable.

Other Authentication Methods

Other authentication methods are outlined in the README for google-auth-library-nodejs, which is the authentication library used by all Google Cloud Node.js clients.

Example Applications

  • nodejs-getting-started - A sample and tutorial that demonstrates how to build a complete web application using Cloud Datastore, Cloud Storage, and Cloud Pub/Sub and deploy it to Google App Engine or Google Compute Engine.
  • gcloud-node-todos - A TodoMVC backend using google-cloud-node and Datastore.
  • gitnpm - Easily lookup an npm package's GitHub repo using google-cloud-node and Google App Engine.
  • gcloud-kvstore - Use Datastore as a simple key-value store.
  • hya-wave - Cloud-based web sample editor. Part of the hya-io family of products.
  • gstore-node - Google Datastore Entities Modeling library.
  • gstore-api - REST API builder for Google Datastore Entities.

Supported Node.js Versions

Our client libraries follow the Node.js release schedule. Libraries are compatible with all current active and maintenance versions of Node.js.

Client libraries targetting some end-of-life versions of Node.js are available, and can be installed via npm dist-tags. The dist-tags follow the naming convention legacy-(version).

Legacy Node.js versions are supported as a best effort:

  • Legacy versions will not be tested in continuous integration.
  • Some security patches may not be able to be backported.
  • Dependencies will not be kept up-to-date, and features will not be backported.

Legacy tags available

  • legacy-8: install client libraries from this dist-tag for versions compatible with Node.js 8.


Our libraries follow Semantic Versioning.

Please note it is currently under active development. Any release versioned 0.x.y is subject to backwards-incompatible changes at any time.

GA: Libraries defined at the GA (general availability) quality level are stable. The code surface will not change in backwards-incompatible ways unless absolutely necessary (e.g. because of critical security issues) or with an extensive deprecation period. Issues and requests against GA libraries are addressed with the highest priority.

Please note that the auto-generated portions of the GA libraries (the ones in modules such as v1 or v2) are considered to be of Beta quality, even if the libraries that wrap them are GA.

Beta: Libraries defined at the Beta quality level are expected to be mostly stable, while we work towards their release candidate. We will address issues and requests with a higher priority.

Alpha: Libraries defined at the Alpha quality level are still a work-in-progress and are more likely to get backwards-incompatible updates.


Contributions to this library are always welcome and highly encouraged.

See CONTRIBUTING for more information on how to get started.


Apache 2.0 - See LICENSE for more information.