# List meeting transcripts

`GET /transcript.list`

## Description

Lists all transcripts in your home Roam, filtered by date range (after/before).

This endpoint returns transcript metadata only. To retrieve the full transcript
content including cues (speaker text), summary, and action items, use
[`/transcript.info`](/docs/chat-api/get-transcript).

The ordering of results depends on the filter specified:

- When no parameters are provided, the most recent recordings are returned,
  sorted in reverse chronological order. This is equivalent to specifying `before`
  as NOW and leaving `after` unspecified.

- If `after` is specified, the results are sorted in forward chronological order.

Either dates or datetimes may be specified. Dates are interpreted in UTC.

Note that the API operates in UTC with respect to the date range filter.

**Access:** Organization and Personal. In Personal mode, only transcripts from meetings where the authenticated user was a participant are returned.

**Required scope:** `transcript:read`

---

**OpenAPI Spec:** [chat.json](https://developer.ro.am/chat.json)

## Authentication

```
Authorization: Bearer YOUR_API_KEY
```

## Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `after` | query | string | No | The datetime to begin listing transcripts (YYYY-MM-DD or RFC-3339). Defaults to "no filter".  |
| `before` | query | string | No | The datetime until which to list transcripts (YYYY-MM-DD or RFC-3339). Defaults to "now".  |
| `limit` | query | integer | No | The number of transcripts to return per response. Default is 10. |
| `cursor` | query | string | No | Opaque pagination cursor from a previous response's `nextCursor`. Do not construct cursors manually. |

## Responses

### 200 - OK

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `transcripts` | TranscriptMetadata[] | No |  |
| `nextCursor` | string | No | Returned if there is a subsequent page of transcripts. |

**TranscriptMetadata** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `id` | string | No | A unique identifier for the transcript |
| `meetingId` | string | No | A unique identifier for the meeting. A meeting may encompass 0 or multiple transcripts.  |
| `start` | string | No | Exact time when the transcript began |
| `end` | string | No | Exact time when the transcript stopped |
| `participants` | ConversationParticipant[] | No |  |

**ConversationParticipant** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | string | No |  |
| `email` | string | No |  |
| `user` | TaggedUUID | No |  |


#### Example Response

```json
{
  "transcripts": [
    {
      "id": "f9274881-c48f-4838-865d-98140ea7016d",
      "meetingId": "dde68f39-3eb0-42ef-9873-511509c8764f",
      "start": "2026-01-21T17:32:39Z",
      "end": "2026-01-21T17:48:04Z",
      "participants": [
        {
          "name": "Alex Chen",
          "email": "alex.chen@example.com",
          "user": "U-0cc74785-e31e-4403-aa5e-0cc7c1897e66"
        },
        {
          "name": "Jordan Smith",
          "email": "jordan.smith@example.com",
          "user": "U-6a897aa3-0cab-4ba4-a48b-4be14a9585d0"
        }
      ]
    },
    {
      "id": "59bbf979-ec0a-4cd7-a29b-d09bced32819",
      "meetingId": "419479dd-b506-4fa4-bd04-e1b871309fe9",
      "start": "2026-01-21T17:29:13Z",
      "end": "2026-01-21T17:32:39Z",
      "participants": [
        {
          "name": "Alex Chen",
          "email": "alex.chen@example.com",
          "user": "U-0cc74785-e31e-4403-aa5e-0cc7c1897e66"
        },
        {
          "name": "Taylor Williams",
          "email": "taylor@example.com",
          "user": "U-6a897aa3-0cab-4ba4-a48b-4be14a9585d0"
        }
      ]
    }
  ],
  "nextCursor": "MjAyNi0wMS0yMVQxNzoyODo1OS4wMDBa"
}
```

---

*Machine-readable API documentation.*
*Full documentation: https://developer.ro.am/docs/chat-api/list-transcripts*
