<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="fitness_v1.html">Fitness API</a> . <a href="fitness_v1.users.html">users</a> . <a href="fitness_v1.users.dataset.html">dataset</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#aggregate">aggregate(userId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Aggregates data of a certain type or stream into buckets divided by a given</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="aggregate">aggregate(userId, body=None, x__xgafv=None)</code>
  <pre>Aggregates data of a certain type or stream into buckets divided by a given
type of boundary. Multiple data sets of multiple types and from multiple
sources can be aggregated into exactly one bucket type per request.

Args:
  userId: string, Aggregate data for the person identified. Use &lt;code&gt;me&lt;/code&gt; to indicate
the authenticated user. Only &lt;code&gt;me&lt;/code&gt; is supported at this time. (required)
  body: object, The request body.
    The object takes the form of:

{ # Next id: 10
    &quot;bucketByTime&quot;: { # Specifies that data be aggregated by a single time interval. Mutually
        # exclusive of other bucketing specifications.
      &quot;period&quot;: {
        &quot;type&quot;: &quot;A String&quot;,
        &quot;value&quot;: 42,
        &quot;timeZoneId&quot;: &quot;A String&quot;, # org.joda.timezone.DateTimeZone
      },
      &quot;durationMillis&quot;: &quot;A String&quot;, # Specifies that result buckets aggregate data by exactly durationMillis time
          # frames. Time frames that contain no data will be included in the response
          # with an empty dataset.
    },
    &quot;filteredDataQualityStandard&quot;: [ # DO NOT POPULATE THIS FIELD. It is ignored.
      &quot;A String&quot;,
    ],
    &quot;bucketByActivityType&quot;: { # Specifies that data be aggregated by the type of activity being performed
        # when the data was recorded. All data that was recorded during a certain
        # activity type (.for the given time range) will be aggregated into the same
        # bucket. Data that was recorded while the user was not active will not be
        # included in the response. Mutually exclusive of other bucketing
        # specifications.
      &quot;activityDataSourceId&quot;: &quot;A String&quot;, # The default activity stream will be used if a specific activityDataSourceId
          # is not specified.
      &quot;minDurationMillis&quot;: &quot;A String&quot;, # Specifies that only activity segments of duration longer than
          # minDurationMillis are considered and used as a container for aggregated
          # data.
    },
    &quot;aggregateBy&quot;: [ # The specification of data to be aggregated. At least one aggregateBy spec
        # must be provided. All data that is specified will be aggregated using the
        # same bucketing criteria. There will be one dataset in the response for
        # every aggregateBy spec.
      { # The specification of which data to aggregate.
        &quot;dataTypeName&quot;: &quot;A String&quot;, # The data type to aggregate. All data sources providing this data type will
            # contribute data to the aggregation. The response will contain a single
            # dataset for this data type name. The dataset will have a data source ID of
            # derived:&lt;output data type name&gt;:com.google.android.gms:aggregated.
            # If the user has no data for this data type, an empty data set will be
            # returned. Note: Data can be aggregated by either the dataTypeName or the
            # dataSourceId, not both.
        &quot;dataSourceId&quot;: &quot;A String&quot;, # A data source ID to aggregate. Only data from the specified data source ID
            # will be included in the aggregation. If specified, this data source must
            # exist; the OAuth scopes in the supplied credentials must grant read access
            # to this data type. The dataset in the response will have the same data
            # source ID. Note: Data can be aggregated by either the dataTypeName or the
            # dataSourceId, not both.
      },
    ],
    &quot;bucketBySession&quot;: { # Specifies that data be aggregated by user sessions. Data that does not fall
        # within the time range of a session will not be included in the response.
        # Mutually exclusive of other bucketing specifications.
      &quot;minDurationMillis&quot;: &quot;A String&quot;, # Specifies that only sessions of duration longer than minDurationMillis are
          # considered and used as a container for aggregated data.
    },
    &quot;endTimeMillis&quot;: &quot;A String&quot;, # The end of a window of time. Data that intersects with this time
        # window will be aggregated. The time is in milliseconds since epoch,
        # inclusive.
    &quot;startTimeMillis&quot;: &quot;A String&quot;, # The start of a window of time. Data that intersects with this time
        # window will be aggregated. The time is in milliseconds since epoch,
        # inclusive.
    &quot;bucketByActivitySegment&quot;: { # Specifies that data be aggregated each activity segment recored for a user.
        # Similar to bucketByActivitySegment, but bucketing is done for each activity
        # segment rather than all segments of the same type. Mutually exclusive of
        # other bucketing specifications.
      &quot;activityDataSourceId&quot;: &quot;A String&quot;, # The default activity stream will be used if a specific activityDataSourceId
          # is not specified.
      &quot;minDurationMillis&quot;: &quot;A String&quot;, # Specifies that only activity segments of duration longer than
          # minDurationMillis are considered and used as a container for aggregated
          # data.
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;bucket&quot;: [ # A list of buckets containing the aggregated data.
      {
        &quot;session&quot;: { # Sessions contain metadata, such as a user-friendly name and time interval # Available for Bucket.Type.SESSION
            # information.
          &quot;id&quot;: &quot;A String&quot;, # A client-generated identifier that is unique across all sessions owned by
              # this particular user.
          &quot;activityType&quot;: 42, # The type of activity this session represents.
          &quot;endTimeMillis&quot;: &quot;A String&quot;, # An end time, in milliseconds since epoch, inclusive.
          &quot;description&quot;: &quot;A String&quot;, # A description for this session.
          &quot;startTimeMillis&quot;: &quot;A String&quot;, # A start time, in milliseconds since epoch, inclusive.
          &quot;name&quot;: &quot;A String&quot;, # A human readable name of the session.
          &quot;application&quot;: { # The application that created the session.
            &quot;packageName&quot;: &quot;A String&quot;, # Package name for this application. This is used as a unique
                # identifier when created by Android applications, but cannot be specified
                # by REST clients. REST clients will have their developer project number
                # reflected into the Data Source data stream IDs, instead of the packageName.
            &quot;detailsUrl&quot;: &quot;A String&quot;, # An optional URI that can be used to link back to the application.
            &quot;version&quot;: &quot;A String&quot;, # Version of the application. You should update this field whenever the
                # application changes in a way that affects the computation of the data.
            &quot;name&quot;: &quot;A String&quot;, # The name of this application. This is required for REST clients, but we
                # do not enforce uniqueness of this name. It is provided as a matter of
                # convenience for other developers who would like to identify which REST
                # created an Application or Data Source.
          },
          &quot;activeTimeMillis&quot;: &quot;A String&quot;, # Session active time. While start_time_millis and end_time_millis define
              # the full session time, the active time can be shorter and specified by
              # active_time_millis.
              # If the inactive time during the session is known, it should also be
              # inserted via a com.google.activity.segment data point with a STILL
              # activity value
          &quot;modifiedTimeMillis&quot;: &quot;A String&quot;, # A timestamp that indicates when the session was last modified.
        },
        &quot;activity&quot;: 42, # Available for Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT
        &quot;endTimeMillis&quot;: &quot;A String&quot;, # The end time for the aggregated data, in milliseconds since epoch,
            # inclusive.
        &quot;dataset&quot;: [ # There will be one dataset per AggregateBy in the request.
          { # A dataset represents a projection container for data points. They do not
              # carry any info of their own. Datasets represent a set of data points from a
              # particular data source. A data point can be found in more than one dataset.
            &quot;dataSourceId&quot;: &quot;A String&quot;, # The data stream ID of the data source that created the points in this
                # dataset.
            &quot;maxEndTimeNs&quot;: &quot;A String&quot;, # The largest end time of all data points in this possibly partial
                # representation of the dataset. Time is in nanoseconds from epoch. This
                # should also match the second part of the dataset identifier.
            &quot;minStartTimeNs&quot;: &quot;A String&quot;, # The smallest start time of all data points in this possibly partial
                # representation of the dataset. Time is in nanoseconds from epoch. This
                # should also match the first part of the dataset identifier.
            &quot;point&quot;: [ # A partial list of data points contained in the dataset, ordered by largest
                # endTimeNanos first. This list is considered complete when retrieving a
                # small dataset and partial when patching a dataset or retrieving a dataset
                # that is too large to include in a single response.
              { # Represents a single data point, generated by a particular data source.  A
                  # data point holds a value for each field, an end timestamp and an optional
                  # start time.  The exact semantics of each of these attributes are specified in
                  # the documentation for the particular data type.
                  #
                  # A data point can represent an instantaneous measurement, reading or input
                  # observation, as well as averages or aggregates over a time interval.  Check
                  # the data type documentation to determine which is the case for a particular
                  # data type.
                  #
                  # Data points always contain one value for each field of the data type.
                &quot;computationTimeMillis&quot;: &quot;A String&quot;, # DO NOT USE THIS FIELD. It is ignored, and not stored.
                &quot;dataTypeName&quot;: &quot;A String&quot;, # The data type defining the format of the values in this data point.
                &quot;endTimeNanos&quot;: &quot;A String&quot;, # The end time of the interval represented by this data point, in
                    # nanoseconds since epoch.
                &quot;startTimeNanos&quot;: &quot;A String&quot;, # The start time of the interval represented by this data point, in
                    # nanoseconds since epoch.
                &quot;originDataSourceId&quot;: &quot;A String&quot;, # If the data point is contained in a dataset for a derived data source,
                    # this field will be populated with the data source stream ID that created
                    # the data point originally.
                    #
                    # WARNING: do not rely on this field for anything other than debugging. The
                    # value of this field, if it is set at all, is an implementation detail and
                    # is not guaranteed to remain consistent.
                &quot;modifiedTimeMillis&quot;: &quot;A String&quot;, # Indicates the last time this data point was modified. Useful only in
                    # contexts where we are listing the data changes, rather than representing
                    # the current state of the data.
                &quot;rawTimestampNanos&quot;: &quot;A String&quot;, # The raw timestamp from the original SensorEvent.
                &quot;value&quot;: [ # Values of each data type field for the data point. It is expected that each
                    # value corresponding to a data type field will occur in the same order that
                    # the field is listed with in the data type specified in a data source.
                    #
                    # Only one of integer and floating point fields will be populated, depending
                    # on the format enum value within data source&#x27;s type field.
                  { # Holder object for the value of a single field in a data point.
                      #
                      # A field value has a particular format and is only ever set to one of an
                      # integer or a floating point value.
                    &quot;stringVal&quot;: &quot;A String&quot;, # String value.  When this is set, other values must not be set.
                        # Strings should be kept small whenever possible.  Data streams with large
                        # string values and high data frequency may be down sampled.
                    &quot;mapVal&quot;: [ # Map value.  The valid key space and units for the corresponding value
                        # of each entry should be documented as part of the data type definition.
                        # Keys should be kept small whenever possible. Data streams with large keys
                        # and high data frequency may be down sampled.
                      {
                        &quot;value&quot;: { # Holder object for the value of an entry in a map field of a data point.
                            #
                            # A map value supports a subset of the formats that the regular Value supports.
                          &quot;fpVal&quot;: 3.14, # Floating point value.
                        },
                        &quot;key&quot;: &quot;A String&quot;,
                      },
                    ],
                    &quot;fpVal&quot;: 3.14, # Floating point value. When this is set, other values must not be set.
                    &quot;intVal&quot;: 42, # Integer value. When this is set, other values must not be set.
                  },
                ],
              },
            ],
            &quot;nextPageToken&quot;: &quot;A String&quot;, # This token will be set when a dataset is received in response to a GET
                # request and the dataset is too large to be included in a single response.
                # Provide this value in a subsequent GET request to return the next page of
                # data points within this dataset.
          },
        ],
        &quot;startTimeMillis&quot;: &quot;A String&quot;, # The start time for the aggregated data, in milliseconds since epoch,
            # inclusive.
        &quot;type&quot;: &quot;A String&quot;, # The type of a bucket signifies how the data aggregation is performed in the
            # bucket.
      },
    ],
  }</pre>
</div>

</body></html>