A recorded physical activity such as a bike ride.
tid
Timestamp-based ID
Properties
avgCadence
integer
Optional
Average cadence in revolutions per minute.
minimum: 0avgHeartRate
integer
Optional
Average heart rate in beats per minute.
minimum: 0avgPower
integer
Optional
Average power output in watts.
minimum: 0avgSpeed
string
Optional
Average speed in meters per second. String-encoded decimal number.
maxLength: 64 bytescalories
integer
Optional
Estimated calories burned.
minimum: 0createdAt
string
datetime
Required
Timestamp of when this record was created.
description
string
Optional
User-provided description of the activity.
maxLength: 3000 bytesdevice
string
Optional
Name of the device that recorded the activity.
maxLength: 300 bytesdistance
string
Required
Total distance in meters. String-encoded decimal number, e.g. '51214.6'.
maxLength: 64 byteselapsedTime
integer
Required
Total elapsed time in seconds, including stopped time.
minimum: 0elevationGain
string
Optional
Total elevation gain in meters. String-encoded decimal number.
maxLength: 64 bytesmaxCadence
integer
Optional
Maximum cadence in revolutions per minute.
minimum: 0maxHeartRate
integer
Optional
Maximum heart rate in beats per minute.
minimum: 0maxPower
integer
Optional
Maximum power output in watts.
minimum: 0maxSpeed
string
Optional
Maximum speed in meters per second. String-encoded decimal number.
maxLength: 64 bytesmovingTime
integer
Required
Time spent in motion in seconds.
minimum: 0polyline
string
Optional
Encoded polyline string representing a simplified, privacy-trimmed route for map display. Uses Google's encoded polyline algorithm format. Ingestion services should simplify polylines to fit within the 20,000 byte limit. This limit may be revisited if it proves insufficient.
maxLength: 20000 bytessource
string
Optional
Where the activity data was imported from.
maxLength: 128 bytesgarmin, strava, wahoo, manual, fit-file, gpx-filesportType
string
Required
The type of activity.
maxLength: 128 bytesridestartedAt
string
datetime
Required
When the activity started.
title
string
Optional
User-provided name for the activity.
maxLength: 300 bytesView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"sportType",
"startedAt",
"elapsedTime",
"movingTime",
"distance",
"createdAt"
],
"properties": {
"title": {
"type": "string",
"maxLength": 300,
"description": "User-provided name for the activity."
},
"device": {
"type": "string",
"maxLength": 300,
"description": "Name of the device that recorded the activity."
},
"source": {
"type": "string",
"maxLength": 128,
"description": "Where the activity data was imported from.",
"knownValues": [
"garmin",
"strava",
"wahoo",
"manual",
"fit-file",
"gpx-file"
]
},
"avgPower": {
"type": "integer",
"minimum": 0,
"description": "Average power output in watts."
},
"avgSpeed": {
"type": "string",
"maxLength": 64,
"description": "Average speed in meters per second. String-encoded decimal number."
},
"calories": {
"type": "integer",
"minimum": 0,
"description": "Estimated calories burned."
},
"distance": {
"type": "string",
"maxLength": 64,
"description": "Total distance in meters. String-encoded decimal number, e.g. '51214.6'."
},
"maxPower": {
"type": "integer",
"minimum": 0,
"description": "Maximum power output in watts."
},
"maxSpeed": {
"type": "string",
"maxLength": 64,
"description": "Maximum speed in meters per second. String-encoded decimal number."
},
"polyline": {
"type": "string",
"maxLength": 20000,
"description": "Encoded polyline string representing a simplified, privacy-trimmed route for map display. Uses Google's encoded polyline algorithm format. Ingestion services should simplify polylines to fit within the 20,000 byte limit. This limit may be revisited if it proves insufficient."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp of when this record was created."
},
"sportType": {
"type": "string",
"maxLength": 128,
"description": "The type of activity.",
"knownValues": [
"ride"
]
},
"startedAt": {
"type": "string",
"format": "datetime",
"description": "When the activity started."
},
"avgCadence": {
"type": "integer",
"minimum": 0,
"description": "Average cadence in revolutions per minute."
},
"maxCadence": {
"type": "integer",
"minimum": 0,
"description": "Maximum cadence in revolutions per minute."
},
"movingTime": {
"type": "integer",
"minimum": 0,
"description": "Time spent in motion in seconds."
},
"description": {
"type": "string",
"maxLength": 3000,
"description": "User-provided description of the activity."
},
"elapsedTime": {
"type": "integer",
"minimum": 0,
"description": "Total elapsed time in seconds, including stopped time."
},
"avgHeartRate": {
"type": "integer",
"minimum": 0,
"description": "Average heart rate in beats per minute."
},
"maxHeartRate": {
"type": "integer",
"minimum": 0,
"description": "Maximum heart rate in beats per minute."
},
"elevationGain": {
"type": "string",
"maxLength": 64,
"description": "Total elevation gain in meters. String-encoded decimal number."
}
}
},
"description": "A recorded physical activity such as a bike ride."
}