---
title: "List transcripts"
method: GET
path: "/api/v1/initiatives/{id}/transcripts"
tags: ["Initiatives"]
---

# List transcripts

`GET /api/v1/initiatives/{id}/transcripts`

## Request

- Base URL: `https://www.useboom.ai`
- URL: `https://www.useboom.ai/api/v1/initiatives/{id}/transcripts`
- Auth: HTTP bearer

Full conversation transcripts for a page of participants, newest participant first. Use this to read or export ALL conversations of an initiative — one call per page (up to 100 participants) instead of looping the per-participant messages endpoint.

## Path parameters

- `id` string, required: Initiative id.

## Query parameters

- `limit` integer: Participants per page (default 20, max 100).
- `cursor` string: Opaque cursor from a previous page.

## Response `200`

Success

- object
  - `data` object[], required
    - `participantId` string, required
    - `phoneNumber` string, nullable, required
    - `name` string, nullable, required
    - `status` 'ACTIVE' | 'COMPLETED' | 'STOPPED' | 'EXPIRED' | 'FAILED', required: ACTIVE (conversation may still happen), COMPLETED, STOPPED (messaging halted), EXPIRED, or FAILED.
    - `createdAt` string, required: When the participant was added (ISO 8601).
    - `messages` object[], required: The full conversation, in order. Empty if no outreach yet.
      - `id` string, required
      - `direction` 'outbound' | 'inbound', required
      - `author` 'agent' | 'participant', required
      - `type` 'text' | 'media' | 'template', required
      - `text` string, required
      - `mediaUrl` string, nullable, required
      - `sentAt` string, required: ISO 8601 timestamp.
      - `initiative` object: Which initiative this message was exchanged under. Present only when reading a whole customer history (scope="customer"), where messages from several initiatives interleave.
        - `id` string, nullable, required
        - `name` string, nullable, required
  - `next_cursor` string, nullable, required

## Other responses

- `400`: Validation failed or the request cannot proceed.
- `401`: Missing, malformed, or revoked API key.
- `404`: The resource does not exist in this organization.
- `409`: Conflicts with the current state (duplicates, wrong lifecycle state).
- `422`: The request is well-formed but semantically invalid.
- `429`: Rate limit exceeded — retry after `Retry-After`.
- `500`: Internal server error.
- `503`: Transient error — retry with a narrower request.

## Changes

- **2026-11-03** `7c7a773b12ce`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/useboom/apis/boom-api/changes/api/v1/initiatives/:id/transcripts/get.md)

---

[API](https://skmtc.dev/useboom/apis/boom-api.md) - [All operations](https://skmtc.dev/useboom/apis/boom-api/llms.txt) - [OpenAPI document](https://skmtc.dev/useboom/apis/boom-api/revisions/d596d92ed092?raw)
