---
title: "List Speech-to-Video Sessions"
method: GET
path: "/v1/sessions"
tags: ["Speech-to-Video Sessions"]
---

# List Speech-to-Video Sessions

`GET /v1/sessions`

## Request

- Base URL: `https://api.bey.dev`
- URL: `https://api.bey.dev/v1/sessions`
- Auth: API key in header `x-api-key`

List your speech-to-video sessions.

Returns a cursor-paginated list of sessions, most recent first.

## Query parameters

- `limit` integer: Maximum number of objects to return.
- `cursor` string, nullable: Cursor for pagination.

## Response `200`

Paginated List of Speech-to-Video Sessions

- union
  - HasMorePageSessionResponse
    - `data` SessionResponse[], required: List of objects.
      - union
        - LivekitSessionResponse: Response body for a LiveKit speech-to-video session.
          - `id` string, required: Unique identifier of the object in the database.
          - `transport` 'livekit'
          - `avatar_id` string, required: ID of avatar to use.
          - `status` union, required
            - SessionStatusToStart: Session that has not yet started.
              - …
            - SessionStatusOngoing: Session that is currently ongoing.
              - …
            - SessionStatusCompleted: Session that has completed.
              - …
          - `url` string, required: URL of LiveKit server the avatar worker should connect to.
        - PipecatSessionResponse: Response body for a Pipecat speech-to-video session.
          - `id` string, required: Unique identifier of the object in the database.
          - `transport` 'pipecat'
          - `avatar_id` string, required: ID of avatar to use.
          - `status` union, required
            - SessionStatusToStart: Session that has not yet started.
              - …
            - SessionStatusOngoing: Session that is currently ongoing.
              - …
            - SessionStatusCompleted: Session that has completed.
              - …
          - `url` string, required: URL of Daily room the video bot should connect to.
    - `has_more` true: Whether there are more objects to fetch.
    - `next_cursor` string, required: The cursor for the next page of objects.
  - NoMorePageSessionResponse
    - `data` SessionResponse[], required: List of objects.
      - union
        - LivekitSessionResponse: Response body for a LiveKit speech-to-video session.
          - `id` string, required: Unique identifier of the object in the database.
          - `transport` 'livekit'
          - `avatar_id` string, required: ID of avatar to use.
          - `status` union, required
            - SessionStatusToStart: Session that has not yet started.
              - …
            - SessionStatusOngoing: Session that is currently ongoing.
              - …
            - SessionStatusCompleted: Session that has completed.
              - …
          - `url` string, required: URL of LiveKit server the avatar worker should connect to.
        - PipecatSessionResponse: Response body for a Pipecat speech-to-video session.
          - `id` string, required: Unique identifier of the object in the database.
          - `transport` 'pipecat'
          - `avatar_id` string, required: ID of avatar to use.
          - `status` union, required
            - SessionStatusToStart: Session that has not yet started.
              - …
            - SessionStatusOngoing: Session that is currently ongoing.
              - …
            - SessionStatusCompleted: Session that has completed.
              - …
          - `url` string, required: URL of Daily room the video bot should connect to.
    - `has_more` false: Whether there are more objects to fetch.

## Other responses

- `401`: Authentication failed. The `x-api-key` header is missing or the provided API key is invalid.
- `402`: The plan's usage limit has been reached, or the requested feature requires a plan upgrade.
- `403`: The API key is valid but not permitted to perform this action, because the resource belongs to someone else.
- `404`: The requested resource does not exist or is not accessible with this API key.
- `422`: The request is malformed. `detail` lists each field that failed validation, where it was located, and why.
- `429`: The plan's limit on the number of concurrent sessions has been reached.

## Changes

- **2026-10-20** `0469e200c235`: 1 info
  - added the non-success response with the status `402`
- **2026-10-16** `c8f80740b51c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bey-dev/apis/beyond-presence-api/changes/v1/sessions/get.md)

---

[API](https://skmtc.dev/bey-dev/apis/beyond-presence-api.md) - [All operations](https://skmtc.dev/bey-dev/apis/beyond-presence-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bey-dev/apis/beyond-presence-api/revisions/2d37d86bc5c1?raw)
