# List meeting recordings

`GET /recording.list`

## Description

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

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.

**Access:** Organization only.

**Required scope:** `recordings:read`

---

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

## Authentication

```
Authorization: Bearer YOUR_API_KEY
```

## Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `after` | query | string | No | The datetime to begin listing recordings (YYYY-MM-DD or RFC-3339). Defaults to "no filter".  |
| `before` | query | string | No | The datetime until which to list recordings (YYYY-MM-DD or RFC-3339). Defaults to "now".  |
| `limit` | query | integer | No | The number of recordings 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 |
|----------|------|----------|-------------|
| `recordings` | object[] | No |  |
| `nextCursor` | string | No | Returned if there is a subsequent page of recordings. |

**recordings** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `recordingId` | string | No | A unique identifier for the recording |
| `location` | string | No | Name of the Roam room where the recording took place |
| `startTime` | string | No | Exact time when the recording began |
| `endTime` | string | No | Exact time when the recording stopped |
| `videoUrl` | string | No | URL where the video file may be downloaded |


#### Example Response

```json
{
  "recordings": [
    {
      "recordingId": "9003ec0e-ea7d-41b4-93cf-ef42d730f771",
      "location": "Conference Room A",
      "startTime": "2026-01-21T14:10:54Z",
      "endTime": "2026-01-21T15:12:27Z",
      "videoUrl": "https://ro.am/recordings/video/9003ec0e-ea7d-41b4-93cf-ef42d730f771.mp4?pwd=abc123"
    },
    {
      "recordingId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "location": "Huddle Space",
      "startTime": "2026-01-21T10:00:00Z",
      "endTime": "2026-01-21T10:45:00Z",
      "videoUrl": "https://ro.am/recordings/video/a1b2c3d4-e5f6-7890-abcd-ef1234567890.mp4?pwd=def456"
    }
  ],
  "nextCursor": "MjAyNi0wMS0yMVQxMDowMDowMC4wMDBa"
}
```

---

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