Activities ¶
activities¶
GET /api/v1/activities/¶
List Activities
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
end |
query | No | |||
limit |
query | integer | 50 | No | |
offset |
query | integer | 0 | No | |
refreshed-token |
header | No | |||
sport |
query | array | No | ||
start |
query | No | |||
tags |
query | array | No | ||
token |
cookie | string | No |
Responses
[
{
"tags": [
"string"
],
"id": "string",
"sport": "string",
"start": "2022-04-13T15:42:05.901Z",
"end": "2022-04-13T15:42:05.901Z",
"metrics": [
"duration"
],
"source_id": "string",
"summary": null,
"laps": null,
"traces": null,
"app_metadata": null,
"duration": "string",
"start_local": "2022-04-13T15:42:05.901Z",
"end_local": "2022-04-13T15:42:05.901Z"
}
]
Schema of the response body
{
"type": "array",
"items": {
"$ref": "#/components/schemas/ActivitySummary"
},
"title": "Response List Activities Api V1 Activities Get"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/latest¶
Latest Activity
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
refreshed-token |
header | No | |||
sport |
query | No | |||
token |
cookie | string | No |
Responses
{
"tags": [
"string"
],
"id": "string",
"sport": "string",
"start": "2022-04-13T15:42:05.901Z",
"end": "2022-04-13T15:42:05.901Z",
"metrics": [
"duration"
],
"source_id": "string",
"summary": null,
"laps": null,
"traces": null,
"app_metadata": null,
"distance": null,
"devices": [
"string"
],
"duration": "string",
"start_local": "2022-04-13T15:42:05.901Z",
"end_local": "2022-04-13T15:42:05.901Z"
}
Schema of the response body
{
"properties": {
"tags": {
"items": {
"type": "string"
},
"type": "array",
"title": "Tags"
},
"id": {
"type": "string",
"title": "Id"
},
"sport": {
"type": "string",
"description": "Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary')"
},
"start": {
"type": "string",
"format": "date-time",
"title": "Start",
"description": "Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field."
},
"end": {
"type": "string",
"format": "date-time",
"title": "End",
"description": "Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field."
},
"metrics": {
"items": {
"$ref": "#/components/schemas/Metric"
},
"type": "array",
"title": "Metrics"
},
"source_id": {
"type": "string",
"title": "Source Id"
},
"summary": {
"anyOf": [
{
"$ref": "#/components/schemas/ActivitySummarySummary"
},
{
"type": "null"
}
]
},
"laps": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/Lap"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Laps"
},
"traces": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/TraceDetails"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Traces"
},
"app_metadata": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "App Metadata"
},
"distance": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Distance"
},
"devices": {
"items": {
"type": "string"
},
"type": "array",
"title": "Devices"
},
"duration": {
"type": "string",
"format": "duration",
"title": "Duration",
"readOnly": true
},
"start_local": {
"type": "string",
"format": "date-time",
"title": "Start Local",
"description": "Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date.",
"readOnly": true
},
"end_local": {
"type": "string",
"format": "date-time",
"title": "End Local",
"description": "Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date.",
"readOnly": true
}
},
"type": "object",
"required": [
"id",
"sport",
"start",
"end",
"metrics",
"source_id",
"duration",
"start_local",
"end_local"
],
"title": "ActivityDetails"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/backfill-status¶
Get Backfill Status
Description
Get the backfill status as a streaming newline-delimited JSON (NDJSON) response.
This endpoint is intended for newly connected users who your application needs to wait for historical activity data to be backfilled. It provides real-time progress updates as the backfill processes.
Streaming behavior: - Updates are sent periodically, approximately every few seconds. - Each line contains a complete JSON object followed by a newline character - Streaming automatically stops after 60 seconds
The backfill_loaded_until timestamp indicates the earliest activity date that has been
successfully loaded. As activities are backfilled from newest to oldest, this timestamp
moves backward in time toward the user's historical data.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
refreshed-token |
header | No | |||
token |
cookie | string | No |
Responses
[
null
]
Schema of the response body
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/BackfillStatus"
},
{
"$ref": "#/components/schemas/BackfillError"
}
]
},
"title": "Response Get Backfill Status Api V1 Activities Backfill Status Get"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/longitudinal-data¶
Get Longitudinal Data
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
end |
query | No | End of the local-date range (inclusive). | ||
metrics |
query | array | ['duration', 'power', 'speed', 'heart_rate'] | No | Metrics to include in the longitudinal data. Duration is always included. |
refreshed-token |
header | No | |||
segmentation_on |
query | No | |||
sport |
query | array | No | ||
start |
query | No | Start of the local-date range (each activity's own local date). | ||
token |
cookie | string | No |
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/longitudinal-mean-max¶
Get Longitudinal Mean Max
Description
The best mean-max curve across activities, as Parquet.
For a sport and metric over a date range: per duration, the best average any matching
activity sustained, and which activity it was. One row per duration, no index. Columns:
duration, <metric> (W or m/s), start (UTC timestamp at which that best effort began),
activity_id, sport, and after with fatigue states.
Durations are a fixed 19-point default (1 s to 6 h), the full grid with durations=all, or
your own list; rows exist only where an activity reached that duration. The curve is returned
as it is: mean-max can rise again at longer durations (intermittent efforts), and nothing
smooths that away.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
after |
query | No | Optional, repeatable fatigue state(s): the curve over the portion of each activity after this much accumulated work (kJ, for power) or distance (metres, for speed; experimental). At most 5; the date range is then capped at 1 year and the response gains an 'after' column. Computed from the activity's adaptive segments, which are exact at 1 to 20 s and within about 2 % beyond, so 'after=0' can differ slightly from the curve without 'after'. | ||
date |
query | No | Deprecated: use 'start' and 'end' instead. | ||
durations |
query | No | Durations to return, in seconds. Omit for the default 19 (1, 2, 5, 10, 20, 30 s; 1, 2, 3, 5, 10, 15, 20, 30 min; 1, 2, 3, 4, 6 h), pass 'all' for the full grid (1 s steps to 3 min, then 5, 10, 30 and 60 s steps), or a comma-separated list (e.g. '5,60,300,1200'). Values between stored points are interpolated. Durations no activity reached are left out. | ||
end |
query | No | End of date range (defaults to today). Used with 'start'. | ||
metric |
query | string | No | ||
refreshed-token |
header | No | |||
sport |
query | array | No | ||
start |
query | No | Start of date range. Preferred over 'date'/'window_days'. | ||
token |
cookie | string | No | ||
window_days |
query | No | Deprecated: use 'start' and 'end' instead. |
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/longitudinal-accumulated-work-duration¶
Get Longitudinal Accumulated Work Duration
Description
Warning: This endpoint is in development and subject to change.
Get longitudinal accumulated work duration (AWD) data for a given sport and metric.
Returns AWD values for each intensity level: - max: The highest daily AWD - hard: Sustainable AWD for hard workouts - medium: Sustainable AWD for medium workouts - easy: Sustainable AWD for easy workouts
Args: format: Response format - "parquet" (default) or "json"
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
date |
query | No | Deprecated: use 'start' and 'end' instead. | ||
end |
query | No | End of date range (defaults to today). Used with 'start'. | ||
format |
query | string | parquet | No | |
metric |
query | No | |||
refreshed-token |
header | No | |||
sport |
query | array | No | ||
start |
query | No | Start of date range. Preferred over 'date'/'window_days'. | ||
token |
cookie | string | No | ||
window_days |
query | No | Deprecated: use 'start' and 'end' instead. |
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/{activity_id}/data¶
Get Activity Data
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
activity_id |
path | string | No | ||
metrics |
query | array | ['duration', 'power', 'speed', 'heart_rate'] | No | |
refreshed-token |
header | No | |||
segmentation_on |
query | No | |||
token |
cookie | string | No |
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/{activity_id}/mean-max¶
Get Activity Mean Max
Description
The activity's mean-max curve, as Parquet: per duration, the best average it sustained.
One row per duration, no index. Columns: duration, <metric> (W or m/s), start (UTC
timestamp at which that best effort began). Durations as on the longitudinal endpoint: a
19-point default, durations=all, or your own list, cut at the activity's length. The curve
is returned as it is, including rises at longer durations.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
activity_id |
path | string | No | ||
durations |
query | No | Durations to return, in seconds. Omit for the default 19 (1, 2, 5, 10, 20, 30 s; 1, 2, 3, 5, 10, 15, 20, 30 min; 1, 2, 3, 4, 6 h), pass 'all' for the full grid (1 s steps to 3 min, then 5, 10, 30 and 60 s steps), or a comma-separated list (e.g. '5,60,300,1200'). Values between stored points are interpolated. Durations no activity reached are left out. | ||
metric |
query | string | No | ||
refreshed-token |
header | No | |||
token |
cookie | string | No |
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/{activity_id}/accumulated-work-duration¶
Get Activity Accumulated Work Duration
Description
Get accumulated work duration (AWD) for an activity.
AWD represents the total duration spent at each intensity level, calculated by sorting the activity data by intensity and accumulating the time spent at or above each level.
If no metric is specified, the default metric is determined by the activity's sport: - Cycling: power - Other sports: speed
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
activity_id |
path | string | No | ||
metric |
query | No | |||
refreshed-token |
header | No | |||
token |
cookie | string | No |
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/{activity_id}¶
Get Activity
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
activity_id |
path | string | No | ||
refreshed-token |
header | No | |||
token |
cookie | string | No |
Responses
{
"tags": [
"string"
],
"id": "string",
"sport": "string",
"start": "2022-04-13T15:42:05.901Z",
"end": "2022-04-13T15:42:05.901Z",
"metrics": [
"duration"
],
"source_id": "string",
"summary": null,
"laps": null,
"traces": null,
"app_metadata": null,
"distance": null,
"devices": [
"string"
],
"duration": "string",
"start_local": "2022-04-13T15:42:05.901Z",
"end_local": "2022-04-13T15:42:05.901Z"
}
Schema of the response body
{
"properties": {
"tags": {
"items": {
"type": "string"
},
"type": "array",
"title": "Tags"
},
"id": {
"type": "string",
"title": "Id"
},
"sport": {
"type": "string",
"description": "Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary')"
},
"start": {
"type": "string",
"format": "date-time",
"title": "Start",
"description": "Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field."
},
"end": {
"type": "string",
"format": "date-time",
"title": "End",
"description": "Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field."
},
"metrics": {
"items": {
"$ref": "#/components/schemas/Metric"
},
"type": "array",
"title": "Metrics"
},
"source_id": {
"type": "string",
"title": "Source Id"
},
"summary": {
"anyOf": [
{
"$ref": "#/components/schemas/ActivitySummarySummary"
},
{
"type": "null"
}
]
},
"laps": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/Lap"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Laps"
},
"traces": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/TraceDetails"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Traces"
},
"app_metadata": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "App Metadata"
},
"distance": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Distance"
},
"devices": {
"items": {
"type": "string"
},
"type": "array",
"title": "Devices"
},
"duration": {
"type": "string",
"format": "duration",
"title": "Duration",
"readOnly": true
},
"start_local": {
"type": "string",
"format": "date-time",
"title": "Start Local",
"description": "Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date.",
"readOnly": true
},
"end_local": {
"type": "string",
"format": "date-time",
"title": "End Local",
"description": "Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date.",
"readOnly": true
}
},
"type": "object",
"required": [
"id",
"sport",
"start",
"end",
"metrics",
"source_id",
"duration",
"start_local",
"end_local"
],
"title": "ActivityDetails"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
GET /api/v1/activities/{activity_id}/download¶
Download Activity
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
activity_id |
path | string | No | ||
refreshed-token |
header | No | |||
token |
cookie | string | No |
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
POST /api/v1/activities/upload¶
Upload Activity File
Description
Upload up to 10 activity files at once. Supported formats: .fit, .csv.
A FIT file carries its own sport; a CSV must include a sport column with an Open Sport
Taxonomy code (e.g. cycling.road) — there is no sport parameter. The CSV must also have a
timestamp column with offset-aware ISO 8601 datetimes (e.g. ...+02:00 or ...Z).
Returns 202 with one source per file (plan 041): {"sources": [SourceResponse, …]}. Each is
processing (accepted, ingest continues asynchronously) or failed (a per-file problem caught
at the door). Poll GET /api/v1/sources/{id} or listen for source_processed/source_failed
webhooks for the outcome. Request-shape problems (no files, too many) are an RFC 7807 4xx.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
refreshed-token |
header | No | |||
token |
cookie | string | No |
Request body
{
"files": [
"TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ="
]
}
Schema of the request body
{
"properties": {
"files": {
"items": {
"type": "string",
"format": "binary"
},
"type": "array",
"title": "Files"
}
},
"type": "object",
"required": [
"files"
],
"title": "Body_upload_activity_file_api_v1_activities_upload_post"
}
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
PUT /api/v1/activities/{activity_id}/app-metadata¶
Put Activity Metadata
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
activity_id |
path | string | No | ||
refreshed-token |
header | No | |||
token |
cookie | string | No |
Request body
Schema of the request body
{
"type": "object",
"additionalProperties": true,
"title": "Data"
}
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
DELETE /api/v1/activities/{activity_id}/app-metadata¶
Delete Activity Metadata
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
HTTPBearer |
header | string | N/A | No | JWT Bearer token |
activity_id |
path | string | No | ||
refreshed-token |
header | No | |||
token |
cookie | string | No |
Responses
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
Schemas¶
ActivityDetails¶
| Name | Type | Description |
|---|---|---|
app_metadata |
||
devices |
Array<string> | |
distance |
||
duration |
string(duration) | |
end |
string(date-time) | Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. |
end_local |
string(date-time) | Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. |
id |
string | |
laps |
||
metrics |
Array<Metric> | |
source_id |
string | |
sport |
string | Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary') |
start |
string(date-time) | Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. |
start_local |
string(date-time) | Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. |
summary |
||
tags |
Array<string> | |
traces |
ActivitySummary¶
| Name | Type | Description |
|---|---|---|
app_metadata |
||
duration |
string(duration) | |
end |
string(date-time) | Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. |
end_local |
string(date-time) | Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. |
id |
string | |
laps |
||
metrics |
Array<Metric> | |
source_id |
string | |
sport |
string | Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary') |
start |
string(date-time) | Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. |
start_local |
string(date-time) | Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. |
summary |
||
tags |
Array<string> | |
traces |
ActivitySummarySummary¶
| Name | Type | Description |
|---|---|---|
altitude |
||
cadence |
||
core_temperature |
||
distance |
||
heart_rate |
||
power |
||
smo2 |
||
speed |
||
temperature |
AltitudeSummary¶
| Name | Type | Description |
|---|---|---|
gain |
||
loss |
||
max |
||
mean |
||
min |
BackfillError¶
| Name | Type | Description |
|---|---|---|
error |
string |
BackfillStatus¶
| Name | Type | Description |
|---|---|---|
backfill_loaded_until |
Body_upload_activity_file_api_v1_activities_upload_post¶
| Name | Type | Description |
|---|---|---|
files |
Array<string(binary)> |
CadenceSummary¶
| Name | Type | Description |
|---|---|---|
max |
||
mean |
CoreTemperatureSummary¶
| Name | Type | Description |
|---|---|---|
end |
||
max |
||
mean |
||
min |
||
start |
DistanceSummary¶
| Name | Type | Description |
|---|---|---|
sum |
HeartRateSummary¶
| Name | Type | Description |
|---|---|---|
end |
||
max |
||
mean |
||
min |
||
start |
HTTPValidationError¶
| Name | Type | Description |
|---|---|---|
detail |
Array<ValidationError> |
Lap¶
| Name | Type | Description |
|---|---|---|
altitude |
||
cadence |
||
core_temperature |
||
distance |
||
duration |
string(duration) | |
end |
string(date-time) | Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. |
end_local |
string(date-time) | Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. |
heart_rate |
||
power |
||
smo2 |
||
speed |
||
start |
string(date-time) | Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. |
start_local |
string(date-time) | Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. |
temperature |
Marker¶
| Name | Type | Description |
|---|---|---|
heart_rate |
||
lactate |
||
power |
||
speed |
||
vo2 |
Metric¶
Type: string
PowerSummary¶
| Name | Type | Description |
|---|---|---|
max |
||
mean |
Smo2Summary¶
| Name | Type | Description |
|---|---|---|
end |
||
max |
||
mean |
||
min |
||
start |
SpeedSummary¶
| Name | Type | Description |
|---|---|---|
max |
||
mean |
TemperatureSummary¶
| Name | Type | Description |
|---|---|---|
end |
||
max |
||
mean |
||
min |
||
start |
TestResults¶
| Name | Type | Description |
|---|---|---|
critical_power |
||
critical_speed |
||
d_prime |
||
economy |
||
efficiency |
||
fatmax |
||
first_threshold |
||
heart_rate_max |
||
lt1 |
||
lt2 |
||
mlss |
||
second_threshold |
||
vlamax |
||
vo2max |
||
vo2peak |
||
vt1 |
||
vt2 |
||
w_prime |
TestSummary¶
| Name | Type | Description |
|---|---|---|
app_metadata |
||
created_by |
||
end |
Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. | |
end_local |
Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. | |
id |
string | |
results |
||
sport |
string | Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary') |
start |
string(date-time) | Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. |
start_local |
string(date-time) | Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. |
tags |
Array<string> | |
title |
TraceDetails¶
| Name | Type | Description |
|---|---|---|
activity |
||
app_metadata |
||
heart_rate |
||
id |
string | |
lactate |
||
lap |
||
notes |
||
power |
||
rpe |
||
speed |
||
sport |
||
tags |
Array<string> | |
test |
||
test_id |
||
test_match |
||
timestamp |
string(date-time) | Absolute instant in UTC (ISO 8601 with `Z`, e.g. `2026-05-18T15:32:00Z`). Sort, compare and merge on this; for the local wall-clock use the matching `*_local` field. |
timestamp_local |
string(date-time) | Naive local wall-clock at the record's own place/time (ISO 8601 without an offset, e.g. `2026-05-18T17:32:00`). Use for display and for grouping by local calendar date. |
vo2 |
ValidationError¶
| Name | Type | Description |
|---|---|---|
loc |
Array<> | |
msg |
string | |
type |
string |
Security schemes¶
| Name | Type | Scheme | Description |
|---|---|---|---|
| HTTPBearer | http | bearer | |
| HTTPBasic | http | basic |