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

# List DTT training sessions

`GET /dtt/sessions`

## Request

- Base URL: `https://dashboard.researchanddesire.com/api/v1`
- URL: `https://dashboard.researchanddesire.com/api/v1/dtt/sessions`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `/oauth/authorize`
    - Token URL: `/oauth/token` scopes: `dtt:read`

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

## Changes

- **2026-09-22** `2411203b3c10`: 2 info
  - the endpoint scheme security `bearerAuth` was added to the API
  - the endpoint scheme security `oauth2` was added to the API

[Operation history](https://skmtc.dev/researchanddesire/apis/research-and-desire-api/changes/dtt/sessions/get.md)

---

[API](https://skmtc.dev/researchanddesire/apis/research-and-desire-api.md) - [All operations](https://skmtc.dev/researchanddesire/apis/research-and-desire-api/llms.txt) - [OpenAPI document](https://skmtc.dev/researchanddesire/apis/research-and-desire-api/revisions/682fc4d7f6d5?raw)
