Spanner Client

Instantiating a Client

To use the API, the Client class defines a high-level interface which handles authorization and creating other objects:

from import spanner
client = spanner.Client()


  • For an overview of authentication in, see Authentication.

  • In addition to any authentication configuration, you can also set the GCLOUD_PROJECT environment variable for the Google Cloud Console project you’d like to interact with. If your code is running in Google App Engine or Google Compute Engine the project will be detected automatically. (Setting this environment variable is not required, you may instead pass the project explicitly when constructing a Client).

  • After configuring your environment, create a Client

>>> from import spanner
>>> client = spanner.Client()

or pass in credentials and project explicitly

>>> from import spanner
>>> client = spanner.Client(project='my-project', credentials=creds)

Using a Cloud Spanner Emulator

There are two ways to use the client with a Cloud Spanner emulator: programmatically or via an environment variable.

To programmatically use an emulator, you must specify the project, the endpoint of the emulator, and use anonymous credentials:

from import spanner
from google.auth.credentials import AnonymousCredentials

client = spanner.Client(
    client_options={"api_endpoint": ""},

To use an emulator via an environment variable, set the SPANNER_EMULATOR_HOST environment variable to the emulator endpoint:


Next Step

After a Client, the next highest-level object is an Instance. You’ll need one before you can interact with databases.

Next, learn about the Instance Admin.