Please note that the contents of this offline web site may be out of date. To access the most recent documentation visit the online version .
Note that links that point to online resources are green in color and will open in a new window.
We would love it if you could give us feedback about this material by filling this form (You have to be online to fill it)



Using the Google Cloud SQL API


Note: This documentation is for a deprected Google Cloud SQL API version. For our latest release, see Google Cloud SQL latest release .

Google Cloud SQL provides a REST API for administering your instances programmatically.

The Google Cloud SQL API provides methods for:

  • Working with instances
    • Creating and deleting instances
    • Restarting instances
    • Restoring instances from backups
    • Importing and exporting databases to and from Google Cloud Storage
  • Getting information
    • Listing instances in a project
    • Getting information about an instance
    • Getting information about backup runs
    • Listing all the available tiers of service

For details of the methods, see the Google Cloud SQL API Reference .

All requests sent to the Google Cloud SQL API must be authorized by an authenticated user.

Preview

This API is currently available to everyone. You can activate the Google Cloud SQL API as follows:

  1. Go to the Google Developers Console .
  2. Select the project for which you want to active the API.
  3. In the sidebar on the left, click APIs & auth to show the list of services you can enable for your project.
  4. Find the Google Cloud SQL API and ensure the Status is "ON".

Authorizing requests

Every request your application sends to the Google Cloud SQL API must include an authorization token. The token also identifies your application to Google.

About authorization protocols

We recommend using OAuth 2.0 to authorize requests.

If your application has certain unusual authorization requirements, such as logging in at the same time as requesting data access ( hybrid ) or domain-wide delegation of authority ( 2LO ), then you cannot currently use OAuth 2.0 tokens. In such cases, you must instead use OAuth 1.0 tokens and an API key . To find your application's API key:

  1. Go to the Google Developers Console .
  2. Select a project, or create a new one.
  3. In the sidebar on the left, expand APIs & auth . Next, click APIs . In the list of APIs, make sure the status is ON for the Google Cloud SQL API.
  4. In the sidebar on the left, select Credentials .
  5. This API supports two types of credentials. Create whichever credentials are appropriate for your project:
    • OAuth: Your application must send an OAuth 2.0 token with any request that accesses private user data. Your application sends a client ID and, possibly, a client secret to obtain a token. You can generate OAuth 2.0 credentials for web applications, service accounts, or installed applications.

      To create an OAuth 2.0 token, click Create new Client ID , provide the required information where requested, and click Create Client ID .

    • Public API access: A request that does not provide an OAuth 2.0 token must send an API key. The key identifies your project and provides API access, quota, and reports.

      To create an API key, click Create new Key and select the appropriate key type. Enter the additional information required for that key type and click Create .

Authorizing requests with OAuth 2.0

All requests to the Google Cloud SQL API must be authorized by an authenticated user.

The details of the authorization process, or "flow," for OAuth 2.0 vary somewhat depending on what kind of application you're writing. The following general process applies to all application types:

  1. When you create your application, you register it using the Google Developers Console . Google then provides information you'll need later, such as a client ID and a client secret.
  2. Activate the Google Cloud SQL API in the Google Developers Console. (If the API isn't listed in the Developers Console, then skip this step.)
  3. When your application needs access to user data, it asks Google for a particular scope of access.
  4. Google displays a consent screen to the user, asking them to authorize your application to request some of their data.
  5. If the user approves, then Google gives your application a short-lived access token .
  6. Your application requests user data, attaching the access token to the request.
  7. If Google determines that your request and the token are valid, it returns the requested data.

Some flows include additional steps, such as using refresh tokens to acquire new access tokens. For detailed information about flows for various types of applications, see Google's OAuth 2.0 documentation .

Here's the OAuth 2.0 scope information for the Google Cloud SQL API:

Scope Meaning
https://www.googleapis.com/auth/sqlservice.admin Read/write access to Google Cloud SQL Administration Dashboard.
https://www.googleapis.com/auth/cloud-platform Instances.import and Instances.export need this additional scope.

To request access using OAuth 2.0, your application needs the scope information, as well as information that Google supplies when you register your application (such as the client ID and the client secret).

Note : For more information on authorizing requests, see Authorize Requests .

Examples

This section shows some examples of submitting requests to the Google Cloud SQL API from the command line using the curl command.

Request the available tiers

To test your access to the Google Cloud SQL API, try requesting information about the available tiers (such as D1, D2 and so on). You need an access token to request the list of tiers, but you do not need any project-specific information.

The following example sends a request to list the available tiers.

curl --header 'Authorization: Bearer accessToken' \
     --header 'Content-Type: application/json' \
     https://www.googleapis.com/sql/v1beta1/tiers

Get the Google Cloud SQL instances in a project

The following example sends a request to list the Google Cloud SQL instances in the project whose ID is your-project-id .

curl --header 'Authorization: Bearer accessToken' \
     --header 'Content-Type: application/json' \
     https://www.googleapis.com/sql/v1beta1/projects/your-project-id/instances

Get information about a Google Cloud SQL instance

The following example sends a reques to get information about the your-instance-name instance in your-project-id project.

curl --header 'Authorization: Bearer accessToken' \
     --header 'Content-Type: application/json' \
     https://www.googleapis.com/sql/v1beta1/projects/your-project-id/instances/your-instance-name

Create a Google Cloud SQL instance

The following command sends a request to insert (create) a new Google Cloud SQL instance named your-instance-name in the your-project-id project. The response contains the identifier for the resulting operation. The operation resource can be polled to see if the operation completed. Upon completion, the instance resource can be polled to see if the instance creation was successful by checking the instance state. The new instance will be in tier D2.

curl --header 'Authorization: Bearer accessToken' \
     --header 'Content-Type: application/json' \
     https://www.googleapis.com/sql/v1beta1/projects/your-project-id/instances \
     --data '{"instance" : "your-instance-name", "project" : "your-project-id", "settings" : {"tier" : "D2"}}' -X POST

Import a database from a MySQL dump file on Google Cloud Storage into a Google Cloud SQL instance

The following command sends a request to import a SQL dump file into the your-instance-name instance in the your-project-id project.

curl --header 'Authorization: Bearer accessToken' \
     --header 'Content-Type: application/json' \
     https://www.googleapis.com/sql/v1beta1/projects/your-project-id/instances/your-instance-name/import  \
    --data '{"importContext" : { "kind": "sql#importContext","uri": ["gs://yourbucket/sqldumptoimport"]}}' -X POST


Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.