GET /api/v1/dtt/sessions, GET /api/v1/dtt/sessions/latest, and GET /api/v1/dtt/sessions/{id} include per-session and per-segment metrics. The field names below match the JSON returned by the API.
repsMeasured
One rep is a full in-and-out cycle (insert and withdraw). The firmware counts motion in half-cycles (“strokes”); stored reps are half that count, so the value represents complete cycles as you would count them in training.
distanceTravelled
For current firmware and the normal upload path, this is the total distance moved along the depth axis during the session or segment, in meters. Insertion and withdrawal both contribute. The value is built from small position steps on the device, not a simple reps × stroke length formula.
Older sessions that used a legacy upload path may compute distance differently (for example, estimated from rep count and configured depth). When comparing very old data to recent sessions, treat distance as approximate unless you know the upload path.

