Client libraries and sample code for Cloud SQL

The Cloud SQL Admin API is built on HTTP and JSON, so any standard HTTP client can send requests to it and parse the responses. However, instead of creating HTTP requests and parsing responses manually, you may want to use the Google APIs client libraries. The client libraries provide better language integration, improved security, and support for making calls that require user authorization.

클라이언트 라이브러리는 애플리케이션 기본 사용자 인증 정보를 사용하여 간편하게 Google API를 인증하고 API에 요청을 보낼 수 있습니다. 애플리케이션 기본 사용자 인증 정보를 사용하면 애플리케이션을 로컬에서 테스트하고 기본 코드를 변경하지 않은 상태로 배포할 수 있습니다. 코드 샘플을 포함한 자세한 내용은 Google Cloud Platform 인증 가이드를 참조하세요.

Application Default Credentials are part of the client libraries you can use to access Cloud SQL. Default credentials identify your application with either a user credential or a default service account. When working with a library, it's typical to choose credentials based on the type of environment where you run code. For example, in a development environment, you can authenticate with the gcloud auth command and the client libraries will use those credentials. For more information about environments, see Authentication overview in the Google Cloud Platform Auth Guide.

Accessing the service

Depending on the Cloud SQL Admin API client library you use, you may need to configure how the library discovers the default service path. For client libraries that use the Google APIs Discovery Service, use the API name sqladmin to build a client. This includes libraries for Python and JavaScript.

The following code snippets show how to create a client and list Cloud SQL instances in a project.


For the Client Library for Go, import the sqladmin package.

func ListInstances(projectId string) ([]*sqladmin.DatabaseInstance, error) {
	ctx := context.Background()

	// Create an http.Client that uses Application Default Credentials.
	hc, err := google.DefaultClient(ctx, sqladmin.SqlserviceAdminScope)
	if err != nil {
		return nil, err

	// Create the Google Cloud SQL service.
	service, err := sqladmin.New(hc)
	if err != nil {
		return nil, err

	// List instances for the project ID.
	instances, err := service.Instances.List(projectId).Do()
	if err != nil {
		return nil, err
	return instances.Items, nil


For the Client Library for Java, you can optionally specify the service path directly.

// Set up global SQLAdmin instance.
client = new SQLAdmin.Builder(httpTransport, JSON_FACTORY, credential)
InstancesListResponse resp = client.instances().list("PROJECT_ID").execute();
List<DatabaseInstance> list = resp.getItems();
for (DatabaseInstance d : list) {


For the Client Library for JavaScript, specify sqladmin to build a client.

gapi.client.load('sqladmin', 'v1beta4', function() { console.log('loaded');});
gapi.client.sql.instances.list({'project': PROJECT_ID}).execute(showResult);
function showResult(result) {
  // Process the result.


For the Client Library for Python, specify sqladmin to build a client.

# Construct the service object for the interacting with the Cloud SQL Admin API.
service ='sqladmin', 'v1beta4', http=http)

req = service.instances().list(project="PROJECT_ID")
resp = req.execute()
print json.dumps(resp, indent=2)

The service object queries the discovery document and use the correct service path, in this case, "sql/v1beta4/projects/".

If you are looking for code samples that show how applications can connect to Cloud SQL, see Connecting from external applications.

Libraries and sample code

Language Documentation
Dart Google API Client Library
Go Google API Client Library
Sample code: Cloud SQL Proxy
Java Google API Client Library
Google Client Developer's Guide
Sample code: Cloud SQL JDBC Socket Factory
JavaScript Google API Client Library
.NET Google API Client Library
Google Client Developer's Guide
Node.js Google API Client Library
Objective-C Google API Client Library
PHP Google API Client Library
Python Google API Client Library
Google Client Developer's Guide
Sample code: MySQL, PostgreSQL, SQL Server
Ruby Google API Client Library