Skip to main content
GET
/
api
/
v1
/
users
/
{user_id}
/
summaries
/
body
Get Body Summary
curl --request GET \
  --url https://api.example.com/api/v1/users/{user_id}/summaries/body \
  --header 'Authorization: Bearer <token>'
{
  "source": {
    "provider": "apple_health",
    "device": "Apple Watch Series 9"
  },
  "slow_changing": {
    "weight_kg": 72.5,
    "height_cm": 175.5,
    "body_fat_percent": 18.5,
    "muscle_mass_kg": 58.2,
    "bmi": 23.5,
    "age": 32
  },
  "averaged": {
    "period_days": 7,
    "period_start": "2023-11-07T05:31:56Z",
    "period_end": "2023-11-07T05:31:56Z",
    "resting_heart_rate_bpm": 62,
    "avg_hrv_sdnn_ms": 45.2,
    "avg_hrv_rmssd_ms": 42
  },
  "latest": {
    "body_temperature_celsius": 36.6,
    "body_temperature_measured_at": "2023-11-07T05:31:56Z",
    "skin_temperature_celsius": 36.6,
    "skin_temperature_measured_at": "2023-11-07T05:31:56Z",
    "blood_pressure": {
      "avg_systolic_mmhg": 120,
      "avg_diastolic_mmhg": 80,
      "max_systolic_mmhg": 135,
      "max_diastolic_mmhg": 90,
      "min_systolic_mmhg": 110,
      "min_diastolic_mmhg": 72,
      "reading_count": 5
    },
    "blood_pressure_measured_at": "2023-11-07T05:31:56Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://openwearables.io/docs/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Headers

X-Open-Wearables-API-Key
string | null

Path Parameters

user_id
string<uuid>
required

Query Parameters

average_period
integer
default:7

Days to average vitals (1-7)

Required range: 1 <= x <= 7
latest_window_hours
integer
default:4

Hours for latest readings to be considered valid (1-24)

Required range: 1 <= x <= 24

Response

BodySummary · object | null

Successful Response

Comprehensive body metrics with semantic grouping.

Metrics are grouped by their temporal characteristics:

  • slow_changing: Slow-changing values (latest measurement)
  • averaged: Vitals averaged over a period (1 or 7 days)
  • latest: Point-in-time readings (only if recent)
source
SourceMetadata · object
required
slow_changing
BodySlowChanging · object
required

Slow-changing body composition metrics.

These are metrics that change infrequently (days/weeks between measurements). Returns the most recent recorded value for each field.

averaged
BodyAveraged · object
required

Vitals averaged over a configurable time period.

These metrics fluctuate daily and are more meaningful as averages. Period can be 1 day (current state) or 7 days (baseline trend).

latest
BodyLatest · object
required

Point-in-time metrics that are only relevant when recent.

These metrics are only returned if measured within a configurable time window. Stale readings return null to avoid displaying outdated data.