---
title: "List lock sessions"
method: GET
path: "/lkbx/session"
tags: ["Lock Sessions"]
---

# List lock sessions

`GET /lkbx/session`

## Request

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

Returns a summary list of all lock sessions you have access to (past and present). Includes sessions owned by linked users — e.g. a lockee you keyhold for — alongside your own; use `ownerId` to distinguish owners.

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

List of lock sessions

- LockSessionListResponse
  - `ok` true, required
  - `data` object, required
    - `data` LockSessionSummary[], required
      - `id` integer: Session ID
      - `bubbleId` string: Unique public identifier
      - `publicId` string: Public session ID
      - `ownerId` integer: Owner user ID
      - `name` string: Session name
      - `lockState` 'pending' | 'locked' | 'completed' | 'abandoned' | 'break': Current lock state
      - `duration` integer, nullable: Lock duration in seconds. `null` when the keyholder hid the timer and the caller is not a keyholder of this session.
      - `startDate` string, date-time, nullable: Session start time
      - `endDate` string, date-time, nullable: Session end time. `null` when the keyholder hid the timer and the caller is not a keyholder of this session.
      - `isActive` boolean: Whether session is active
      - `isFrozen` boolean: Whether the session clock is frozen, e.g. by Chaster. A frozen session's end date is stale.
      - `isTimeDisplayed` boolean: Whether the lockee may see the remaining time. When false, `endDate` and `duration` are `null` for callers who are not keyholders.
      - `revealTimeBeforeUnlock` integer, nullable: Seconds before unlock at which a hidden timer becomes visible to the lockee on an active, unfrozen session. `null` when never revealed early.
      - `createdAt` string, date-time: Creation timestamp
      - `keyholderIds` integer[]: IDs of the users assigned as keyholders for this session. An empty array means a self-lock (no keyholder). Resolve IDs to usernames via the Users endpoints.
    - `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
- `404`: User not found
- `500`: Internal server error

## Changes

- **2026-10-15** `682fc4d7f6d5`: 1 breaking, 4 info
  - the response property `data/data/items/duration` became nullable for the status `200`
  - added the non-success response with the status `404`
  - added the optional property `data/data/items/isFrozen` to the response with the `200` status
  - added the optional property `data/data/items/isTimeDisplayed` to the response with the `200` status
  - …1 more
- **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
- **2026-07-26** `9c6dc82bb579`: 1 info
  - added the optional property `data/data/items/keyholderIds` to the response with the `200` status

[Operation history](https://skmtc.dev/researchanddesire/apis/research-and-desire-api/changes/lkbx/session/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)
