---
title: "Get Activity Summary"
method: GET
path: "/api/v1/users/{user_id}/summaries/activity"
tags: ["External: Summaries"]
---

# Get Activity Summary

`GET /api/v1/users/{user_id}/summaries/activity`

Returns daily aggregated activity metrics.

Aggregates time-series data (steps, energy, heart rate, etc.) by day.

## Path parameters

- `user_id` string, uuid, required

## Query parameters

- `start_date` string, date-time, required — ISO 8601 datetime (e.g. `2023-11-07T05:31:56Z`) or Unix timestamp in seconds. Date-only strings (e.g. `2023-11-07`) are also accepted and normalized to midnight UTC.
- `end_date` string, date-time, required — ISO 8601 datetime (e.g. `2023-11-07T05:31:56Z`) or Unix timestamp in seconds. Date-only strings (e.g. `2023-11-07`) are also accepted and normalized to midnight UTC.
- `cursor` string, nullable
- `limit` integer
- `sort_order` string

## Headers

- `X-Open-Wearables-API-Key` string, nullable

## Response `200`

Successful Response

- PaginatedResponseActivitySummary
  - `data` ActivitySummary[], required
    - `date` string, date, required
    - `source` SourceMetadata, required
      - `provider` string, required
      - `source` string, nullable
      - `device` string, nullable
      - `device_type` 'watch' | 'band' | 'phone' | 'scale' | 'ring' | 'other' | 'unknown' — Type of device that collected health data.
      - `device_name` string, nullable, required — Marketing name for ``device``, derived so it cannot drift from the raw model.
    - `steps` integer, nullable — Total step count
    - `distance_meters` number, nullable
    - `floors_climbed` integer, nullable — Calculated from elevation (1 floor ≈ 3m)
    - `elevation_meters` number, nullable — Raw total elevation gain
    - `active_calories_kcal` number, nullable — Active energy burned
    - `total_calories_kcal` number, nullable — Active + basal energy
    - `active_minutes` integer, nullable — Minutes with activity above threshold
    - `sedentary_minutes` integer, nullable — Minutes with minimal activity
    - `intensity_minutes` IntensityMinutes
      - `light` integer, nullable
      - `moderate` integer, nullable
      - `vigorous` integer, nullable
    - `heart_rate` HeartRateStats — Heart rate statistics for a period.
      - `avg_bpm` integer, nullable
      - `max_bpm` integer, nullable
      - `min_bpm` integer, nullable
  - `pagination` Pagination, required
    - `next_cursor` string, nullable — Cursor to fetch next page, null if no more data
    - `previous_cursor` string, nullable — Cursor to fetch previous page
    - `has_more` boolean, required — Whether more data is available
    - `total_count` integer, nullable — Total number of records matching the query
  - `metadata` TimeseriesMetadata, required
    - `resolution` 'raw' | '1min' | '5min' | '15min' | '1hour', nullable
    - `sample_count` integer, nullable
    - `start_time` string, date-time, nullable
    - `end_time` string, date-time, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/openwearables/apis/open-wearables-api.md) · [All operations](https://skmtc.net/openwearables/apis/open-wearables-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openwearables/open-wearables-api/versions/37c1c527cd8f/schema)
