A sports activity or outdoor adventure record logged on Treeline.
tid
Timestamp-based ID
Properties
clonedFrom
ref
com.atproto.repo.strongRef
Optional
Optional reference to the activity this record was saved from (Save as My Activity). The AppView checks the source's reuse rules at index time and hides this record's geometry and co-athlete link when they are not met.
coAthletes
array
of
string
did
Optional
DIDs of athletes who participated in this activity together.
maxLength: 50 itemscreatedAt
string
datetime
Required
Record creation timestamp on client/PDS (ISO 8601 UTC format).
description
string
Optional
Detailed notes, trip report, weather observations, or gear notes.
maxLength: 30000 bytesmaxGraphemes: 3000 graphemesdeviceInfo
ref
#deviceMetadata
Optional
Recording hardware or sensor device metadata.
endedAt
string
datetime
Optional
Timestamp when the activity finished (ISO 8601 UTC format).
gearRef
ref
com.atproto.repo.strongRef
Optional
Optional reference to a world.treeline.gear.item used in this activity.
geometry
ref
#geometry
Optional
Simplified GeoJSON LineString path (recommended <= 250 points) for lightweight relay and feed distribution.
hideStartEndMeters
integer
Optional
Distance trimmed from each end of the public preview only. The original telemetry blob remains untrimmed and publicly retrievable.
minimum: 0maximum: 100000privacy
string
Optional
AppView visibility, not confidentiality of the public repository or original blob. New clients publish public or unlisted; unsupported restricted values must fail closed.
public, unlisted, followers, private, permissionedpublicrawBlob
blob
Optional
Full-resolution original raw telemetry file (.fit, .gpx, .tcx) stored directly as an ATProto blob on the athlete's PDS.
maxSize: 52.4 MBroute
ref
com.atproto.repo.strongRef
Optional
Optional reference to a world.treeline.route.record course or trail guide followed.
routeRef
ref
com.atproto.repo.strongRef
Optional
Optional reference to a world.treeline.route.record followed.
sport
string
Required
Sport or activity type category.
run, trail_run, walk, hike, ride, mountain_bike, gravel_ride, e_bike, road_bike, handcycle, ski, snowboard, backcountry_ski, nordic_ski, roller_ski, swim, open_water_swim, kayak, canoe, rowing, paddleboard, surf, kitesurf, windsurf, sail, climb, boulder, mountaineering, wheelchair, workout, yoga, crossfit, weight_training, pilates, hiit, otherstartedAt
string
datetime
Required
Timestamp when the activity started (ISO 8601 UTC format).
stats
ref
#stats
Optional
Summary metrics and telemetry statistics for the activity.
tags
array
of
string
Optional
Categorization tags (e.g. race, commute, intervals, summits).
maxLength: 20 itemstitle
string
Required
Display title of the activity (e.g., Morning Trail Run, Grand Canyon R2R2R).
maxLength: 3000 bytesmaxGraphemes: 300 graphemesView raw schema
{
"description": "A sports activity or outdoor adventure record logged on Treeline.",
"key": "tid",
"record": {
"properties": {
"clonedFrom": {
"description": "Optional reference to the activity this record was saved from (Save as My Activity). The AppView checks the source's reuse rules at index time and hides this record's geometry and co-athlete link when they are not met.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"coAthletes": {
"description": "DIDs of athletes who participated in this activity together.",
"items": {
"format": "did",
"type": "string"
},
"maxLength": 50,
"type": "array"
},
"createdAt": {
"description": "Record creation timestamp on client/PDS (ISO 8601 UTC format).",
"format": "datetime",
"type": "string"
},
"description": {
"description": "Detailed notes, trip report, weather observations, or gear notes.",
"maxGraphemes": 3000,
"maxLength": 30000,
"type": "string"
},
"deviceInfo": {
"description": "Recording hardware or sensor device metadata.",
"ref": "#deviceMetadata",
"type": "ref"
},
"endedAt": {
"description": "Timestamp when the activity finished (ISO 8601 UTC format).",
"format": "datetime",
"type": "string"
},
"gearRef": {
"description": "Optional reference to a world.treeline.gear.item used in this activity.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"geometry": {
"description": "Simplified GeoJSON LineString path (recommended <= 250 points) for lightweight relay and feed distribution.",
"ref": "#geometry",
"type": "ref"
},
"hideStartEndMeters": {
"description": "Distance trimmed from each end of the public preview only. The original telemetry blob remains untrimmed and publicly retrievable.",
"maximum": 100000,
"minimum": 0,
"type": "integer"
},
"privacy": {
"default": "public",
"description": "AppView visibility, not confidentiality of the public repository or original blob. New clients publish public or unlisted; unsupported restricted values must fail closed.",
"knownValues": [
"public",
"unlisted",
"followers",
"private",
"permissioned"
],
"type": "string"
},
"rawBlob": {
"accept": [
"application/gpx+xml",
"application/vnd.ant.fit",
"application/vnd.garmin.tcx+xml",
"application/octet-stream",
"application/xml",
"text/xml"
],
"description": "Full-resolution original raw telemetry file (.fit, .gpx, .tcx) stored directly as an ATProto blob on the athlete's PDS.",
"maxSize": 52428800,
"type": "blob"
},
"route": {
"description": "Optional reference to a world.treeline.route.record course or trail guide followed.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"routeRef": {
"description": "Optional reference to a world.treeline.route.record followed.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"sport": {
"description": "Sport or activity type category.",
"knownValues": [
"run",
"trail_run",
"walk",
"hike",
"ride",
"mountain_bike",
"gravel_ride",
"e_bike",
"road_bike",
"handcycle",
"ski",
"snowboard",
"backcountry_ski",
"nordic_ski",
"roller_ski",
"swim",
"open_water_swim",
"kayak",
"canoe",
"rowing",
"paddleboard",
"surf",
"kitesurf",
"windsurf",
"sail",
"climb",
"boulder",
"mountaineering",
"wheelchair",
"workout",
"yoga",
"crossfit",
"weight_training",
"pilates",
"hiit",
"other"
],
"type": "string"
},
"startedAt": {
"description": "Timestamp when the activity started (ISO 8601 UTC format).",
"format": "datetime",
"type": "string"
},
"stats": {
"description": "Summary metrics and telemetry statistics for the activity.",
"ref": "#stats",
"type": "ref"
},
"tags": {
"description": "Categorization tags (e.g. race, commute, intervals, summits).",
"items": {
"maxLength": 64,
"type": "string"
},
"maxLength": 20,
"type": "array"
},
"title": {
"description": "Display title of the activity (e.g., Morning Trail Run, Grand Canyon R2R2R).",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
}
},
"required": [
"title",
"sport",
"startedAt",
"createdAt"
],
"type": "object"
},
"type": "record"
}