You can use the [Data API](https://developers.google.com/analytics/devguides/reporting/data/v1.md.txt) or [Admin
API](https://developers.google.com/analytics/devguides/config/admin/v1) for this quickstart:


Choose an API: [Data API](https://developers.google.com/analytics/devguides/reporting/data/v1/quickstart.md.txt "View this page for the Data API.") [Admin API](https://developers.google.com/analytics/devguides/config/admin/v1/quickstart.md.txt "View this page for the Admin API.")

<br />

You can authenticate with a [user
account](https://cloud.google.com/docs/authentication#user-accounts) or [service
account](https://cloud.google.com/docs/authentication#service-accounts):
Choose an account type: <button value="user" default="">User account</button> <button value="service">Service account</button>

In this quickstart, you create and send a
[`list`](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1beta/accounts/list.md.txt)
request.

Here's a summary of the steps:

1. Set up tools and access.
2. Enable the API.
3. Install an SDK.
4. Make an API call.

## Before you begin

1. [Install and initialize](https://cloud.google.com/sdk/docs/install) the gcloud
   CLI.

2. To generate [Application Default
   Credentials](https://cloud.google.com/docs/authentication/application-default-credentials)
   and give your account the necessary scopes, run the following:

   ```bash
   gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
   ```
3. In the [Google Analytics UI](https://analytics.google.com), grant your user
   account [access to a Google Analytics
   property](https://support.google.com/analytics/answer/9305788).

## Enable the Admin API

To select or create a [Google Cloud
project](https://cloud.google.com/resource-manager/docs/creating-managing-projects),
and enable the API, click **Enable the Google Analytics
Admin API**.
Enable the Google Analytics API

## Install an SDK

Install the SDK for your programming language.

### Java


[Java client library installation guide](https://github.com/googleapis/google-cloud-java/blob/main/java-analytics-admin/README.md)

### PHP


[PHP client library installation guide](https://github.com/googleapis/php-analytics-admin#installation)

### Python


[Python client library installation guide](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-analytics-admin/README.rst#installation)

### Node.js


[Node.js client library installation guide](https://googleapis.dev/nodejs/analytics-admin/latest/index.html#installing-the-client-library)

### .NET


[.NET client library installation guide](https://www.nuget.org/packages/Google.Analytics.Admin.V1Beta#package-manager)

### Ruby


[Ruby client library installation guide](https://github.com/googleapis/google-cloud-ruby/tree/main/google-analytics-admin-v1alpha#installation)

### Go


```
go get google.golang.org/genproto/googleapis/analytics/admin/v1beta
```

<br />

### REST


Configure your environment variables by entering the following.

Replace <var translate="no">`PROJECT_ID`</var> with the ID of your project.

```bash
  EXPORT PROJECT_ID=`PROJECT_ID`
```

<br />

## Make an API call

To verify your setup and make an API call, run the following sample.

This sample calls the
[`list`](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1beta/accounts/list.md.txt)
method. The response lists the Google Analytics accounts your

user
account has access to.

To install all the Analytics API code samples, see our [GitHub](https://github.com/googleanalytics).

### Java


[google-analytics-admin/src/main/java/com/google/analytics/admin/samples/QuickstartSample.java](https://github.com/googleanalytics/java-docs-samples/blob/main/google-analytics-admin/src/main/java/com/google/analytics/admin/samples/QuickstartSample.java) [Open in Cloud Shell](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleanalytics/java-docs-samples&page=editor&open_in_editor=google-analytics-admin/src/main/java/com/google/analytics/admin/samples/QuickstartSample.java "Open this sample or repository in the Google Cloud Shell Editor") [View on GitHub](https://github.com/googleanalytics/java-docs-samples/blob/main/google-analytics-admin/src/main/java/com/google/analytics/admin/samples/QuickstartSample.java)

```java
import com.google.analytics.admin.v1beta.Account;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient.ListAccountsPage;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient.ListAccountsPagedResponse;
import com.google.analytics.admin.v1beta.ListAccountsRequest;

/**
 * This application demonstrates the usage of the Analytics Admin API using service account
 * credentials. For more information on service accounts, see
 * https://cloud.google.com/iam/docs/understanding-service-accounts.
 *
 * <p>The following document provides instructions on setting service account credentials for your
 * application: https://cloud.google.com/docs/authentication/production
 *
 * <p>In a nutshell, you need to:
 *
 * <ol>
 *   <li>Create a service account and download the key JSON file as described at
 *       https://cloud.google.com/docs/authentication/production#creating_a_service_account.
 *   <li>Provide service account credentials using one of the following options:
 *       <ul>
 *         <li>Set the {@code GOOGLE_APPLICATION_CREDENTIALS} environment variable. The API client
 *             will use the value of this variable to find the service account key JSON file. See
 *             https://cloud.google.com/docs/authentication/production#setting_the_environment_variable
 *             for more information.
 *             <p>OR
 *         <li>Manually pass the path to the service account key JSON file to the API client by
 *             specifying the {@code keyFilename} parameter in the constructor. See
 *             https://cloud.google.com/docs/authentication/production#passing_the_path_to_the_service_account_key_in_code
 *             for more information.
 *       </ul>
 * </ol>
 *
 * <p>To run this sample using Maven:
 *
 * <pre>{@code
 * cd google-analytics-data
 * mvn compile exec:java -Dexec.mainClass="com.google.analytics.admin.samples.QuickstartSample"
 * }</pre>
 */
public class QuickstartSample {

  public static void main(String... args) throws Exception {
    listAccounts();
  }

  // This is an example snippet that calls the Google Analytics Admin API and lists all Google
  // Analytics accounts available to the authenticated user.
  static void listAccounts() throws Exception {
    // Instantiates a client using default credentials.
    // See https://cloud.google.com/docs/authentication/production for more information
    // about managing credentials.
    try (AnalyticsAdminServiceClient analyticsAdmin = AnalyticsAdminServiceClient.create()) {
      // Calls listAccounts() method of the Google Analytics Admin API and prints
      // the response for each account.
      ListAccountsPagedResponse response =
          analyticsAdmin.listAccounts(ListAccountsRequest.newBuilder().build());
      for (ListAccountsPage page : response.iteratePages()) {
        for (Account account : page.iterateAll()) {
          System.out.printf("Account name: %s%n", account.getName());
          System.out.printf("Display name: %s%n", account.getDisplayName());
          System.out.printf("Country code: %s%n", account.getRegionCode());
          System.out.printf("Create time: %s%n", account.getCreateTime().getSeconds());
          System.out.printf("Update time: %s%n", account.getUpdateTime().getSeconds());
          System.out.println();
        }
      }
    }
  }
}
```

<br />

### PHP


[google-analytics-admin/quickstart.php](https://github.com/googleanalytics/php-docs-samples/blob/main/google-analytics-admin/quickstart.php) [Open in Cloud Shell](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleanalytics/php-docs-samples&page=editor&open_in_editor=google-analytics-admin/quickstart.php "Open this sample or repository in the Google Cloud Shell Editor") [View on GitHub](https://github.com/googleanalytics/php-docs-samples/blob/main/google-analytics-admin/quickstart.php)

```php
require 'vendor/autoload.php';

use Google\Analytics\Admin\V1beta\Account;
use Google\Analytics\Admin\V1beta\Client\AnalyticsAdminServiceClient;
use Google\Analytics\Admin\V1beta\ListAccountsRequest;

/**
 * TODO(developer): Replace this variable with your Google Analytics 4
 *   property ID before running the sample.
 */
$property_id = 'YOUR-GA4-PROPERTY-ID';

// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
// See https://cloud.google.com/docs/authentication#principal for more information
// about managing credentials. For client configuration options, see
// https://docs.cloud.google.com/php/docs/reference/analytics-admin/latest.
$client = new AnalyticsAdminServiceClient();

// Calls listAccounts() method of the Google Analytics Admin API and prints
// the response for each account.
$request = new ListAccountsRequest();
$response = $client->listAccounts($request);

print 'Result:' . PHP_EOL;
foreach ($response->iterateAllElements() as $account) {
    print 'Account name: ' . $account->getName() . PHP_EOL;
    print 'Display name: ' . $account->getDisplayName() . PHP_EOL;
    print 'Country code: ' . $account->getRegionCode() . PHP_EOL;
    print 'Create time: ' . $account->getCreateTime()->getSeconds() . PHP_EOL;
    print 'Update time: ' . $account->getUpdateTime()->getSeconds() . PHP_EOL;
}
```

<br />

### Python


[google-analytics-admin/quickstart.py](https://github.com/googleanalytics/python-docs-samples/blob/main/google-analytics-admin/quickstart.py) [Open in Cloud Shell](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleanalytics/python-docs-samples&page=editor&open_in_editor=google-analytics-admin/quickstart.py "Open this sample or repository in the Google Cloud Shell Editor") [View on GitHub](https://github.com/googleanalytics/python-docs-samples/blob/main/google-analytics-admin/quickstart.py)

```python
def list_accounts(transport: str = None):
    """
    Lists the available Google Analytics accounts.

    Args:
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    from google.analytics.admin import AnalyticsAdminServiceClient

    # Using a default constructor instructs the client to use the credentials
    # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    client = AnalyticsAdminServiceClient(transport=transport)

    results = client.list_accounts()

    # Displays the configuration information for all Google Analytics accounts
    # available to the authenticated user.
    print("Result:")
    for account in results:
        print(account)

```

<br />

### Node.js


[google-analytics-admin/quickstart.js](https://github.com/googleanalytics/nodejs-docs-samples/blob/main/google-analytics-admin/quickstart.js) [Open in Cloud Shell](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleanalytics/nodejs-docs-samples&page=editor&open_in_editor=google-analytics-admin/quickstart.js "Open this sample or repository in the Google Cloud Shell Editor") [View on GitHub](https://github.com/googleanalytics/nodejs-docs-samples/blob/main/google-analytics-admin/quickstart.js)

```javascript
  // Imports the Google Analytics Admin API client library.
  const analyticsAdmin = require('@google-analytics/admin');

  // Using a default constructor instructs the client to use the credentials
  // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
  const analyticsAdminClient = new analyticsAdmin.AnalyticsAdminServiceClient();

  // Lists all Google Analytics accounts available to the authenticated user.
  async function listAccounts() {
    // Uses listAccounts() with no arguments to fetch all pages. For more
    // information on pagination in the Node.js library, see:
    // https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#auto-pagination
    const [response] = await analyticsAdminClient.listAccounts();

    console.log('Accounts:');
    for (const account of response) {
      console.log('Account name:', account.name);
      console.log('Display name:', account.displayName);
      console.log('Region code:', account.regionCode);
      console.log('Create time:', account.createTime.seconds);
      console.log('Update time:', account.updateTime.seconds);
    }
  }

  listAccounts();
```

<br />

### .NET


[analytics-admin/QuickStart/QuickStart.cs](https://github.com/googleanalytics/dotnet-docs-samples/blob/main/analytics-admin/QuickStart/QuickStart.cs) [Open in Cloud Shell](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleanalytics/dotnet-docs-samples&page=editor&open_in_editor=analytics-admin/QuickStart/QuickStart.cs "Open this sample or repository in the Google Cloud Shell Editor") [View on GitHub](https://github.com/googleanalytics/dotnet-docs-samples/blob/main/analytics-admin/QuickStart/QuickStart.cs)

```
using System;
using Google.Analytics.Admin.V1Beta;
using Google.Api.Gax;

namespace AnalyticsSamples
{
    class QuickStart
    {
        static void Main(string[] args)
        {
            AnalyticsAdminServiceClient client = AnalyticsAdminServiceClient.Create();
            PagedEnumerable<ListAccountsResponse, Account> response = client.ListAccounts(
                new ListAccountsRequest()
            );
            foreach (Account account in response)
            {
                Console.WriteLine("Account name: {0}", account.Name);
                Console.WriteLine("Display name: {0}", account.DisplayName);
                Console.WriteLine("Region code: {0}", account.RegionCode);
                Console.WriteLine("Update time: {0}", account.UpdateTime);
                Console.WriteLine("Create time: {0}", account.CreateTime);
                Console.WriteLine();
            }
        }
    }
}
```

<br />

### REST


To send this request, run the curl command from the command line or
include the REST call in your application.

```bash
curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "x-goog-user-project: ${PROJECT_ID}" \
  -H "Content-Type: application/json" \
  https://analyticsadmin.googleapis.com/v1beta/accounts
```

<br />

Here's a sample response in JSON:

```json
{
  "accounts": [
    {
      "name": "accounts/123456789",
      "createTime": "2025-01-01T00:12:23.456Z",
      "createTime": "2025-01-01T00:12:23.456Z",
      "displayName": "Demo Account",
      "regionCode": "US",
      "gmpOrganization": "marketingplatformadmin.googleapis.com/organizations/abcdef12345678"
    }
}
```

## Next steps

- [Use Google Analytics AI agent skills](https://developers.google.com/analytics/devguides/agent-skills.md.txt) to install the `google-analytics-admin-api-basics` skill for managing properties, data streams, custom dimensions, custom metrics, and product links.
- [Try the Google Analytics MCP server](https://developers.google.com/analytics/devguides/MCP.md.txt) to inspect live Google Analytics account summaries and property configurations in natural language.
- Explore the [Google Analytics Admin API overview](https://developers.google.com/analytics/devguides/config/admin/v1.md.txt).