Account Summaries: list

Requires authorization

Lists account summaries (lightweight tree comprised of accounts/properties/profiles) to which the user has access. Try it now or see an example.

Request

HTTP request

GET https://www.googleapis.com/analytics/v3/management/accountSummaries

Parameters

Parameter name Value Description
Optional query parameters
max-results integer The maximum number of account summaries to include in this response, where the largest acceptable value is 1000.
start-index integer An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.

Authorization

This request requires authorization with at least one of the following scopes (read more about authentication and authorization).

Scope
https://www.googleapis.com/auth/analytics.edit
https://www.googleapis.com/auth/analytics.readonly

Request body

Do not supply a request body with this method.

Response

If successful, this method returns a response body with the following structure:

{
  "kind": "analytics#accountSummaries",
  "username": string,
  "totalResults": integer,
  "startIndex": integer,
  "itemsPerPage": integer,
  "previousLink": string,
  "nextLink": string,
  "items": [
    management.accountSummaries Resource
  ]
}
Property name Value Description Notes
kind string Collection type.
username string Email ID of the authenticated user
totalResults integer The total number of results for the query, regardless of the number of results in the response.
startIndex integer The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.
itemsPerPage integer The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
items[] list A list of AccountSummaries.

Examples

Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).

Java

Uses the Java client library.

/**
 * Note: This code assumes you have an authorized Analytics service object.
 * See the Account Summaries Developer Guide for details.
 */

/**
 * Example #1:
 * Requests a list of all account summaries for the authorized user.
 */
try {
  AccountSummaries accountSummaries = service.management().
      accountSummaries().list().execute();
} catch (IOException e) {
  System.out.println("An error occurred: " + e);
}

/**
 * Example #2:
 * The results of the list method are stored in the accountSummaries object.
 * The following code shows how to iterate through them.
 **/
public static void printAccountSummaries(AccountSummaries accountSummaries) {
  for (AccountSummary account : accountSummaries.getItems()) {
    System.out.println(account.getName() + " (" + account.getId() + ")");
    printPropertySummaries(account);
  }
}


private static void printPropertySummaries(AccountSummary accountSummary) {
  for (WebPropertySummary property : accountSummary.getWebProperties()) {
    System.out.println("  " + property.getName() + " ("
        + property.getId() + ")");
    System.out.println("  [" + property.getWebsiteUrl() + " | "
        + property.getLevel() + "]");
    printProfileSummary(property);
  }
}


private static void printProfileSummary(WebPropertySummary webPropertySummary) {
  for (ProfileSummary profile : webPropertySummary.getProfiles()) {
    System.out.println("    " + profile.getName()
        + " (" + profile.getId() + ") | " + profile.getType());
  }
}

PHP

Uses the PHP client library.

/**
 * Note: This code assumes you have an authorized Analytics service object.
 * See the Account Summaries Developer Guide for details.
 */

/**
 * Example #1:
 * Requests a list of all account summaries for the authorized user.
 */
try {
  $accounts = $analytics->management_accountSummaries
      ->listManagementAccountSummaries();
} catch (apiServiceException $e) {
  print 'There was an Analytics API service error '
        . $e->getCode() . ':' . $e->getMessage();

} catch (apiException $e) {
  print 'There was a general API error '
      . $e->getCode() . ':' . $e->getMessage();
}

/**
 * Example #2:
 * The results of the list method are stored in the accounts object.
 * The following code shows how to iterate through them.
 */
foreach ($accounts->getItems() as $account) {
  $html = <<<HTML
<pre>
Account id   = {$account->getId()}
Account kind = {$account->getKind()}
Account name = {$account->getName()}
HTML;

  // Iterate through each Property.
  foreach ($account->getWebProperties() as $property) {
    $html .= <<<HTML
Property id          = {$property->getId()}
Property kind        = {$property->getKind()}
Property name        = {$property->getName()}
Internal property id = {$property->getInternalWebPropertyId()}
Property level       = {$property->getLevel()}
Property URL         = {$property->getWebsiteUrl()}
HTML;

    // Iterate through each view (profile).
    foreach ($property->getProfiles() as $profile) {
      $html .= <<<HTML
Profile id   = {$profile->getId()}
Profile kind = {$profile->getKind()}
Profile name = {$profile->getName()}
Profile type = {$profile->getType()}
HTML;
    }
  }
  $html .= '</pre>';
  print $html;
}

Python

Uses the Python client library.

# Note: This code assumes you have an authorized Analytics service object.
# See the Account Summaries Developer Guide for details.

# Example #1:
# Requests a list of all account summaries for the authorized user.
try:
  account_summaries = analytics.management().accountSummaries().list().execute()

except TypeError, error:
  # Handle errors in constructing a query.
  print 'There was an error in constructing your query : %s' % error

except HttpError, error:
  # Handle API errors.
  print ('There was an API error : %s : %s' %
         (error.resp.status, error.resp.reason))


# Example #2:
# The results of the list method are stored in the account_summaries object.
# The following code shows how to iterate through them.

for account in account_summaries.get('items', []):
  print '\n%s (%s)' % (account.get('name'), account.get('id'))
  print_property_summaries(account)


def print_property_summaries(account_summary):
  if account_summary:
    for property in account_summary.get('webProperties', []):
      print '   %s (%s)' % (property.get('name'), property.get('id'))
      print '   [%s | %s]' % (property.get('websiteUrl'), property.get('level'))
      print_profile_summary(property)


def print_profile_summary(property_summary):
  if property_summary:
    for profile in property_summary.get('profiles', []):
      print '     %s (%s) | %s' % (profile.get('name'), profile.get('id'),
                                   profile.get('type'))

JavaScript

Uses the JavaScript client library.

/*
 * Note: This code assumes you have an authorized Analytics client object.
 * See the Account Summaries Developer Guide for details.
 */

/*
 * Example 1:
 * Requests a list of all account summaries for the authorized user.
 */
function listAccountSummaries() {
  var request = gapi.client.analytics.management.accountSummaries.list();
  request.execute(handleResponse);
}

/*
 * Example 2:
 * The results of the list method are passed as the response object.
 * The following code shows how to iterate through them.
 */
function handleResponse(response) {
  if (response && !response.error) {
    if (response.items) {
      printAccountSummaries(response.items);
    }
  } else {
    console.log('There was an error: ' + response.message);
  }
}


function printAccountSummaries(accounts) {
  for (var i = 0, account; account = accounts[i]; i++) {
    console.log('Account id: ' + account.id);
    console.log('Account name: ' + account.name);
    console.log('Account kind: ' + account.kind);

    // Print the properties.
    if (account.webProperties) {
      printProperties(account.webProperties);
    }
  }
}


function printProperties(properties) {
  for (var j = 0, property; property = properties[j]; j++) {
    console.log('Property id: ' + property.id);
    console.log('Property name: ' + property.name);
    console.log('Property kind: ' + property.kind);
    console.log('Internal id: ' + property.internalWebPropertyId);
    console.log('Property level: ' + property.level);
    console.log('Property url: ' + property.websiteUrl);

    // Print the views (profiles).
    if (property.profiles) {
      printProfiles(property.profiles);
    }
  }
}


function printProfiles(profiles) {
  for (var k = 0, profile; profile = profiles[k]; k++) {
    console.log('Profile id: ' + profile.id);
    console.log('Profile name: ' + profile.name);
    console.log('Profile kind: ' + profile.kind);
    console.log('Profile type: ' + profile.type);
  }
}

Try it!

Use the APIs Explorer below to call this method on live data and see the response. Alternatively, try the standalone Explorer.