<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.management.html">management</a> . <a href="analytics_v3.management.accountSummaries.html">accountSummaries</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(max_results=None, start_index=None)</a></code></p>
<p class="firstline">Lists account summaries (lightweight tree comprised of accounts/properties/profiles) to which the user has access.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(max_results=None, start_index=None)</code>
  <pre>Lists account summaries (lightweight tree comprised of accounts/properties/profiles) to which the user has access.

Args:
  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.

Returns:
  An object of the form:

    { # An AccountSummary collection lists a summary of accounts, properties and views (profiles) to which the user has access. Each resource in the collection corresponds to a single AccountSummary.
    &quot;kind&quot;: &quot;analytics#accountSummaries&quot;, # Collection type.
    &quot;items&quot;: [ # A list of AccountSummaries.
      { # JSON template for an Analytics AccountSummary. An AccountSummary is a lightweight tree comprised of properties/profiles.
        &quot;name&quot;: &quot;A String&quot;, # Account name.
        &quot;kind&quot;: &quot;analytics#accountSummary&quot;, # Resource type for Analytics AccountSummary.
        &quot;webProperties&quot;: [ # List of web properties under this account.
          { # JSON template for an Analytics WebPropertySummary. WebPropertySummary returns basic information (i.e., summary) for a web property.
            &quot;name&quot;: &quot;A String&quot;, # Web property name.
            &quot;profiles&quot;: [ # List of profiles under this web property.
              { # JSON template for an Analytics ProfileSummary. ProfileSummary returns basic information (i.e., summary) for a profile.
                &quot;name&quot;: &quot;A String&quot;, # View (profile) name.
                &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
                &quot;kind&quot;: &quot;analytics#profileSummary&quot;, # Resource type for Analytics ProfileSummary.
                &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
                &quot;id&quot;: &quot;A String&quot;, # View (profile) ID.
              },
            ],
            &quot;level&quot;: &quot;A String&quot;, # Level for this web property. Possible values are STANDARD or PREMIUM.
            &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for this web property.
            &quot;kind&quot;: &quot;analytics#webPropertySummary&quot;, # Resource type for Analytics WebPropertySummary.
            &quot;websiteUrl&quot;: &quot;A String&quot;, # Website url for this web property.
            &quot;id&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY.
            &quot;starred&quot;: True or False, # Indicates whether this web property is starred or not.
          },
        ],
        &quot;starred&quot;: True or False, # Indicates whether this account is starred or not.
        &quot;id&quot;: &quot;A String&quot;, # Account ID.
      },
    ],
    &quot;startIndex&quot;: 42, # The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.
    &quot;previousLink&quot;: &quot;A String&quot;, # Link to previous page for this AccountSummary collection.
    &quot;itemsPerPage&quot;: 42, # 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.
    &quot;nextLink&quot;: &quot;A String&quot;, # Link to next page for this AccountSummary collection.
    &quot;username&quot;: &quot;A String&quot;, # Email ID of the authenticated user
    &quot;totalResults&quot;: 42, # The total number of results for the query, regardless of the number of results in the response.
  }</pre>
</div>

</body></html>