app.kimbia.activity

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.

Repository @kimbia.app did:plc:gktrthagvfvzkotyr3n2foox namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authoritykimbia.app
Commit rev3mzycgfsu6c2g
Indexed

Showing version bafyreigk2wwjoeuxfwbbqd2gqa6zatbzuzlfywa3vgv4obsytqefvdl3sq. Show the latest

Record

record · key tid

Properties

altitude

string

Delta-encoded integer-metre altitude stream (same signed-varint base64 as the polyline), one value per polyline point for the elevation profile. Follows the polyline's crop; omitted when the map is hidden or no elevation was recorded.

  • maxLength: 20000

avgSpeed

string

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

  • maxLength: 64

Athlete-provided description of the activity.

  • maxLength: 3000

device

string

Name of the device that recorded the activity.

  • maxLength: 300

distance

requiredstring

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

  • maxLength: 64

Total time in seconds, stops included - the official or chip time when the athlete recorded one. Published only when the athlete makes exact times public.

  • minimum: 0

Total elevation gain in meters. String-encoded decimal.

  • maxLength: 64

movingTime

requiredinteger

Time spent in motion, in seconds.

  • minimum: 0

polyline

string

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

  • maxLength: 20000

source

string

Where the activity data was imported from: the provider that owns the record (kimbia = entered in Kimbia, file = an uploaded FIT/GPX/TCX, from-atproto = adopted from the athlete's PDS).

  • maxLength: 128
  • knownValues: strava | manual | fit-file | gpx-file | kimbia | file | from-atproto | suunto | polar | wahoo | nolio | garmin | coros

sportType

requiredstring

The type of activity.

  • maxLength: 128
  • knownValues: run | ride | swim | walk | hike | other | trail | mtb | rowing | strength | mobility | wellness | alpineski | snowboard | backcountryski | nordicski | snowshoe

startedAt

requiredstring · datetime

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

Athlete-provided name for the activity.

  • maxLength: 300

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • One private GPS activity. Distance, duration, and elevation are derived by the app from the uploaded route file.

  • A recorded physical activity such as a bike ride.

  • A multi-day training block (e.g. a training camp) grouping several activities. Kimbia publishes ONLY world-facing adventures. Totals (distance/movingTime/elevationGain) sum just the member days that are themselves public - most-restrictive-wins, so a hidden day can never leak back through the aggregate.

  • A sports activity or outdoor adventure record logged on Treeline.

  • A recording of an activity. Like running, walking, lifting weights, etc. Helpful to create the rkey tid from the start time and clock id 23 so you can upsert easily.