# Recordings

## List recordings

```
GET /api/v1/recordings
```

Returns a paginated list of recordings accessible to the authenticated user.

### Query parameters

| Parameter         | Type   | Default | Description                                                      |
| ----------------- | ------ | ------- | ---------------------------------------------------------------- |
| `limit`           | number | `20`    | Number of results (1–100)                                        |
| `offset`          | number | `0`     | Pagination offset                                                |
| `search`          | string | —       | Filter by title (partial match)                                  |
| `status`          | string | —       | Filter by status (see [Recording statuses](#recording-statuses)) |
| `date_from`       | string | —       | ISO 8601 date — only return recordings created on or after       |
| `date_to`         | string | —       | ISO 8601 date — only return recordings created on or before      |
| `organization_id` | string | —       | Scope to an organization                                         |
| `folder_id`       | string | —       | Scope to a folder (requires `organization_id`)                   |

### Response

```json
{
  "data": [
    {
      "id": "uuid",
      "status": "COMPLETED",
      "title": "Weekly sync",
      "createdAt": "2025-09-19T15:00:00.000Z",
      "thumbnailUrl": "https://...",
      "progress": 1.0,
      "capabilities": {
        "canDownload": true,
        "canShare": true,
        "canViewTranscription": true,
        "canGenerateSummary": true,
        "canAskQuestions": true
      }
    }
  ],
  "pagination": {
    "total": 42,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}
```

***

## Get recording

```
GET /api/v1/recordings/:id
```

Returns full details for a single recording.

### Response

```json
{
  "data": {
    "id": "uuid",
    "status": "COMPLETED",
    "title": "Weekly sync",
    "createdAt": "2025-09-19T15:00:00.000Z",
    "updatedAt": "2025-09-19T15:30:00.000Z",
    "startedAt": "2025-09-19T15:01:00.000Z",
    "endedAt": "2025-09-19T15:30:00.000Z",
    "videoUrl": "https://...",
    "hlsUrl": "https://...",
    "downloadUrl": "https://...",
    "downloadUrlExpiresAt": "2025-09-19T21:00:00.000Z",
    "thumbnailUrl": "https://...",
    "organizationId": "org_uuid or null",
    "transcription": {
      "status": "completed",
      "language": "en",
      "speakers": ["Speaker 1", "Speaker 2"],
      "segmentsCount": 184,
      "duration": 1740.5
    },
    "summary": {
      "status": "completed",
      "content": "## Key topics\n...",
      "topics": [
        {
          "title": "Project timeline",
          "keyPoints": [
            { "point": "Launch date confirmed", "details": ["Set for Q1"] }
          ]
        }
      ]
    },
    "isLocked": false,
    "capabilities": {
      "canDownload": true,
      "canShare": true,
      "canViewTranscription": true,
      "canStartTranscription": true,
      "canRegenerateTranscription": false,
      "canRenameSpeaker": true,
      "canViewSummary": true,
      "canGenerateSummary": true,
      "canAskQuestions": true
    }
  }
}
```

***

## Get transcript segments

```
GET /api/v1/recordings/:id/transcript
```

Returns paginated transcript segments for a recording.

### Query parameters

| Parameter     | Type   | Default | Description               |
| ------------- | ------ | ------- | ------------------------- |
| `start_chunk` | number | `0`     | Chunk index to start from |
| `limit`       | number | `50`    | Number of chunks (1–100)  |

### Response

```json
{
  "data": {
    "status": "completed",
    "language": "en",
    "speakers": ["Speaker 1", "Alice"],
    "duration": 1740.5,
    "segments": [
      {
        "id": 1,
        "start": 0.5,
        "end": 3.2,
        "text": "Good morning everyone.",
        "speaker": "Alice",
        "confidence": 0.97
      }
    ],
    "pagination": {
      "total_chunks": 184,
      "has_more": true
    }
  }
}
```

***

## Update recording

```
PATCH /api/v1/recordings/:id
```

Update the title or notes of a recording. At least one field is required.

### Request body

```json
{
  "title": "New title (1–500 characters)",
  "notes": "Optional notes (max 100,000 characters)"
}
```

### Response

```json
{
  "data": { "success": true }
}
```

***

## Delete recording

```
DELETE /api/v1/recordings/:id
```

Permanently deletes a recording and all associated data (transcript, summary, shares).

### Response

```json
{
  "data": { "success": true }
}
```

{% hint style="danger" %}
Deletion is permanent and cannot be undone.
{% endhint %}

***

## Create share link

```
POST /api/v1/recordings/:id/share-link
```

Generates a public share link for the recording.

### Request body

```json
{
  "permission": "view"
}
```

| Value      | Description                                                      |
| ---------- | ---------------------------------------------------------------- |
| `view`     | Recipients can watch the video and access the transcript/summary |
| `download` | Recipients can also download the video file                      |

### Response

```json
{
  "data": {
    "share_url": "https://recordmeeting.com/app/shared/abc123",
    "share_token": "abc123",
    "permission": "view"
  }
}
```

***

## Recording statuses

| Status          | Description                                   |
| --------------- | --------------------------------------------- |
| `STARTING`      | Recording request received, setup in progress |
| `CONNECTING`    | Connecting to the Google Meet session         |
| `WAIT_APPROVAL` | Waiting for in-call approval to record        |
| `RECORDING`     | Actively recording                            |
| `PROCESSING`    | Post-recording composition and processing     |
| `TRANSCODING`   | Transcoding video for streaming               |
| `UPLOADING`     | Uploading to storage                          |
| `COMPLETED`     | Recording ready to view                       |
| `ERROR`         | Recording failed                              |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.recordmeeting.com/api-reference/recordings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
