Ingest daily activity summaries
Up to 500 items per request. Each item carries a stable `client_id` partners own; replays return `duplicate` rather than creating a second sample. Partner-sourced samples are stamped server-side with `provider: partner:{tenant_slug}` and de-duplicated against OAuth/native data on read. Use `is_backfill=true` for historical batch loads to suppress real-time downstream side-effects.
Authorization
MemberBearer Member-scoped JWT minted by POST /v1/auth/token. Required on every /v1/users/{user_id}/... route; the token's sub claim must match the path user_id.
In: header
Path Parameters
uuidHeader Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://loading/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/metrics/activity/summary" \ -H "Content-Type: application/json" \ -d '{ "data": [ {} ] }'{
"data": [
{
"client_id": "string",
"status": "accepted",
"sample_id": "c94907f0-0a7b-412b-9563-59396ce4afee",
"error": {}
}
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Activity metrics for a date range
Daily activity rollups (steps, calories, distance, heart rate, intensity minutes) over a `start_date`/`end_date` window. Optional `type` filter selects a single metric family. Reads merge OAuth/native provider data with partner-ingested samples; duplicates are de-duplicated server-side.
Sleep summaries for a date range
Nightly aggregate (duration, efficiency, stage totals, HR, HRV, respiratory rate) per night in the window. For per-stage intervals, use `GET /metrics/sleep/stream`; both share a `sample_id` for joining.