---
title: "List DTT training sessions"
method: GET
path: "/dtt/sessions"
tags: ["DTT Sessions"]
---

# List DTT training sessions

`GET /dtt/sessions`

Returns all Deepthroat Trainer training sessions with their segment results, ordered by most recent first.

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

List of DTT sessions

- DttSessionListResponse
  - `ok` true, required
  - `data` object, required
    - `data` DttSessionDetail[], required
      - `id` integer — Session ID
      - `bubble_id` string — Unique public identifier
      - `name` string, nullable — Session name
      - `passed` boolean, nullable — Whether session was passed overall
      - `created_at` string, date-time — Session timestamp
      - `trainer_id` integer — Trainer device ID
      - `settings_id` integer, nullable — Template ID used
      - `TrainerSegment` DttTrainerSegment[]
        - `id` integer
        - `type` 'repetition' | 'endurance' | 'freeform' | 'bounce' — Segment type
        - `passed` boolean, nullable — Whether segment was passed
        - `percentGrade` number — Performance grade percentage
        - `points` integer — Points earned
        - `durationMeasured` integer — Actual duration in seconds
        - `durationTarget` integer — Target duration in seconds
        - `repsMeasured` integer — Actual repetitions
        - `repsTarget` integer — Target repetitions
        - `speedMeasured` number — Actual speed
        - `speedTarget` number — Target speed
        - `targetDepth` number — Target depth
        - `targetWindow` number — Target window
        - `longestDeepthroat` number — Longest deepthroat duration
        - `strokeLength` number — Stroke length
        - `distanceTravelled` number — Total distance travelled
        - `order` integer — Segment order
        - `createdAt` string, date-time
    - `pagination` Pagination, required
      - `limit` integer, required — Number of records returned
      - `offset` integer, required — Number of records skipped

## Other responses

- `401` — Authentication required or token invalid
- `500` — Internal server error

---

[API](https://skmtc.net/researchanddesire/apis/research-and-desire-api.md) · [All operations](https://skmtc.net/researchanddesire/apis/research-and-desire-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/researchanddesire/research-and-desire-api/versions/9c6dc82bb579/schema)
