# Get meeting transcript

`GET /transcript.info`

## Description

Retrieve a transcript by ID from your home Roam. Works for both completed and live (ongoing) meetings.

For live meetings (during Magic Minutes), the `end` field will be empty. Use the `sinceOffset` parameter to poll for incremental transcript updates — only cues with `startOffset` greater than or equal to the given value are returned.

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

**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 |
|------|-----|------|----------|-------------|
| `id` | query | string | No | The transcript id. |
| `sinceOffset` | query | integer | No | Only return cues with `startOffset` greater than or equal to this value (milliseconds since transcript start). Use this to poll for incremental transcript updates during live meetings. Omit or pass `0 |

## Responses

### 200 - OK

| 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 |  |
| `cues` | TranscriptCue[] | No |  |
| `eventName` | string | No | Name of meeting event associated with the transcript (optional) |
| `summary` | string | No | Magic Minutes Summary |
| `actionItems` | TranscriptActionItem[] | No | Action items identified during the meeting. |
| `meetingLinkId` | string | No | Meeting link identifier, if this transcript is from a scheduled calendar event |
| `invitees` | string[] | No | Email addresses of calendar event invitees |

**ConversationParticipant** (array item):

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

**TaggedUUID**:

A UUID prefixed by a tag identifying the specific type of object
**TranscriptCue** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `speaker` | string | Yes | Name of the person speaking |
| `text` | string | Yes | The transcribed text of what was said. |
| `startOffset` | integer | Yes | Milliseconds from the start of the transcript when the utterance began. |
| `endOffset` | integer | Yes | Milliseconds from the start of the transcript when the utterance ended. |

**TranscriptActionItem** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | Yes | Short name for the action item. |
| `description` | string | No | Additional context or details about the action item. |
| `assignee` | string | No | Person responsible for the action item, if known. |


#### Example Response

```json
{
  "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"
    }
  ],
  "summary": "The team discussed Q1 priorities and assigned action items for the upcoming product launch.",
  "cues": [
    {
      "speaker": "Alex Chen",
      "text": "Good morning everyone. Let's review our Q1 priorities.",
      "startOffset": 0,
      "endOffset": 4500
    },
    {
      "speaker": "Jordan Smith",
      "text": "I've prepared the roadmap document. Should I share my screen?",
      "startOffset": 4500,
      "endOffset": 9200
    },
    {
      "speaker": "Alex Chen",
      "text": "Yes, please go ahead. We should also discuss the launch timeline.",
      "startOffset": 9200,
      "endOffset": 14000
    }
  ],
  "actionItems": [
    {
      "title": "Finalize roadmap document",
      "description": "Complete the Q1 roadmap with updated timelines and share with stakeholders.",
      "assignee": "U-6a897aa3-0cab-4ba4-a48b-4be14a9585d0"
    },
    {
      "title": "Schedule launch planning meeting",
      "description": "Set up a follow-up meeting with the product team to finalize launch details.",
      "assignee": "U-0cc74785-e31e-4403-aa5e-0cc7c1897e66"
    }
  ]
}
```

---

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