<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="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<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="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<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;previousLink&quot;: &quot;A String&quot;, # Link to previous page for this AccountSummary collection.
    &quot;items&quot;: [ # A list of AccountSummaries.
      { # JSON template for an Analytics AccountSummary. An AccountSummary is a lightweight tree comprised of properties/profiles.
        &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;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;id&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY.
            &quot;websiteUrl&quot;: &quot;A String&quot;, # Website url for this web property.
            &quot;starred&quot;: True or False, # Indicates whether this web property is starred or not.
            &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;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;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#webPropertySummary&quot;, # Resource type for Analytics WebPropertySummary.
          },
        ],
        &quot;id&quot;: &quot;A String&quot;, # Account ID.
        &quot;starred&quot;: True or False, # Indicates whether this account is starred or not.
        &quot;name&quot;: &quot;A String&quot;, # Account name.
        &quot;kind&quot;: &quot;analytics#accountSummary&quot;, # Resource type for Analytics AccountSummary.
      },
    ],
    &quot;nextLink&quot;: &quot;A String&quot;, # Link to next page for this AccountSummary collection.
    &quot;kind&quot;: &quot;analytics#accountSummaries&quot;, # Collection type.
    &quot;totalResults&quot;: 42, # The total number of results for the query, regardless of the number of results in the response.
    &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;username&quot;: &quot;A String&quot;, # Email ID of the authenticated user
    &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.
  }</pre>
</div>

</body></html>