app.kimbia.activity

kimbia.app

Documentation

A recorded training session or race (run, ride, swim, ...). Kimbia publishes ONLY public activities, projected to a privacy-safe public field set. This lexicon captures the core, interoperable activity fields. Floats are string-encoded decimals (DAG-CBOR has no float type); durations are integer seconds.

main record

A recorded training session or race (run, ride, swim, ...). Kimbia publishes ONLY public activities, projected to a privacy-safe public field set. This lexicon captures the core, interoperable activity fields. Floats are string-encoded decimals (DAG-CBOR has no float type); durations are integer seconds.

Record Key tid Timestamp-based ID

Properties

avgSpeed string Optional

Average speed in meters per second. String-encoded decimal.

maxLength: 64 bytes
description string Optional

Athlete-provided description of the activity.

maxLength: 3000 bytes
device string Optional

Name of the device that recorded the activity.

maxLength: 300 bytes
distance string Required

Total distance in meters. String-encoded decimal, e.g. '51214.6'.

maxLength: 64 bytes
elapsedTime integer Optional

Total/finish time in seconds. Published for races (the official or chip time).

minimum: 0
elevationGain string Optional

Total elevation gain in meters. String-encoded decimal.

maxLength: 64 bytes
movingTime integer Required

Time spent in motion, in seconds.

minimum: 0
polyline string Optional

Google encoded-polyline (precision 5) of a simplified, privacy-trimmed route for map display. Cropped by default; full for races or when the athlete opts the full track public; omitted when the map is hidden.

maxLength: 20000 bytes
source string Optional

Where the activity data was imported from.

maxLength: 128 bytes
Known values: strava, manual, fit-file, gpx-file
sportType string Required

The type of activity.

maxLength: 128 bytes
Known values: run, ride, swim, walk, hike, other
startedAt string datetime Required

When the activity started. PRIVACY NOTE: by default this is the athlete's local civil day at NOON UTC (e.g. '2026-06-30T12:00:00.000Z') - noon keeps the day correct for clients that re-zone the instant and leaks no timezone, while the exact time is hidden. When the athlete opts their exact times public, it is instead the TRUE start instant in their local zone with its real offset (e.g. '2026-06-30T09:30:00.000+02:00'). Read the date portion for the activity's day; do not assume the time-of-day is meaningful unless an offset is present.

title string Optional

Athlete-provided name for the activity.

maxLength: 300 bytes
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "sportType",
      "startedAt",
      "distance",
      "movingTime"
    ],
    "properties": {
      "title": {
        "type": "string",
        "maxLength": 300,
        "description": "Athlete-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": [
          "strava",
          "manual",
          "fit-file",
          "gpx-file"
        ]
      },
      "avgSpeed": {
        "type": "string",
        "maxLength": 64,
        "description": "Average speed in meters per second. String-encoded decimal."
      },
      "distance": {
        "type": "string",
        "maxLength": 64,
        "description": "Total distance in meters. String-encoded decimal, e.g. '51214.6'."
      },
      "polyline": {
        "type": "string",
        "maxLength": 20000,
        "description": "Google encoded-polyline (precision 5) of a simplified, privacy-trimmed route for map display. Cropped by default; full for races or when the athlete opts the full track public; omitted when the map is hidden."
      },
      "sportType": {
        "type": "string",
        "maxLength": 128,
        "description": "The type of activity.",
        "knownValues": [
          "run",
          "ride",
          "swim",
          "walk",
          "hike",
          "other"
        ]
      },
      "startedAt": {
        "type": "string",
        "format": "datetime",
        "description": "When the activity started. PRIVACY NOTE: by default this is the athlete's local civil day at NOON UTC (e.g. '2026-06-30T12:00:00.000Z') - noon keeps the day correct for clients that re-zone the instant and leaks no timezone, while the exact time is hidden. When the athlete opts their exact times public, it is instead the TRUE start instant in their local zone with its real offset (e.g. '2026-06-30T09:30:00.000+02:00'). Read the date portion for the activity's day; do not assume the time-of-day is meaningful unless an offset is present."
      },
      "movingTime": {
        "type": "integer",
        "minimum": 0,
        "description": "Time spent in motion, in seconds."
      },
      "description": {
        "type": "string",
        "maxLength": 3000,
        "description": "Athlete-provided description of the activity."
      },
      "elapsedTime": {
        "type": "integer",
        "minimum": 0,
        "description": "Total/finish time in seconds. Published for races (the official or chip time)."
      },
      "elevationGain": {
        "type": "string",
        "maxLength": 64,
        "description": "Total elevation gain in meters. String-encoded decimal."
      }
    }
  },
  "description": "A recorded training session or race (run, ride, swim, ...). Kimbia publishes ONLY public activities, projected to a privacy-safe public field set. This lexicon captures the core, interoperable activity fields. Floats are string-encoded decimals (DAG-CBOR has no float type); durations are integer seconds."
}

Lexicon Garden

@