app.thedistance.activity

thedistance.app View official

{
  "id": "app.thedistance.activity",
  "defs": {
    "main": {
      "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."
          },
          "images": {
            "type": "array",
            "items": {
              "ref": "#image",
              "type": "ref"
            },
            "maxLength": 8,
            "description": "Photos from 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."
    },
    "image": {
      "type": "object",
      "required": [
        "image"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "maxLength": 3000,
          "description": "Alt text for the image."
        },
        "image": {
          "type": "blob",
          "accept": [
            "image/jpeg",
            "image/png",
            "image/webp"
          ],
          "maxSize": 10000000
        },
        "aspectRatio": {
          "ref": "#aspectRatio",
          "type": "ref"
        }
      }
    },
    "aspectRatio": {
      "type": "object",
      "required": [
        "width",
        "height"
      ],
      "properties": {
        "width": {
          "type": "integer",
          "minimum": 1
        },
        "height": {
          "type": "integer",
          "minimum": 1
        }
      },
      "description": "Width and height of the image, used for layout before the image loads."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against app.thedistance.activity

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:x52h4ttzfk5rxxdmzinoevgo
CID
bafyreied54mn53ibqbh5bsccwft5idlf7gbpvksu3sxeqrsityhkl23tji
Indexed At
2026-04-20 18:27 UTC
AT-URI
at://did:plc:x52h4ttzfk5rxxdmzinoevgo/com.atproto.lexicon.schema/app.thedistance.activity

Lexicon Garden

@