# Get meeting info

`GET /meeting.info`

## Description

Get detailed information about a specific meeting, including AI-generated summary, action items, and chapters.

Participants are included inline up to the `maxParticipants` limit. For meetings with more participants, use [`/meeting.participants`](/docs/api/meeting-participants) to paginate through the full list.

**Access:** Organization and Personal. Personal tokens are limited to meetings
the authenticated user participated in. Organization tokens without
[`admin:meetings:read`](/docs/guides/scopes#meeting-width-adminmeetingsread)
are limited to meetings the install's bot has access to.

**Required scope:** `meetings:read` (add `admin:meetings:read` for roam-wide org access; add `user:read` to include participants, `user:read.email` for participant emails)

---

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

## Authentication

```
Authorization: Bearer YOUR_API_KEY
```

## Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `id` | query | string | Yes | The meeting ID. |
| `maxParticipants` | query | integer | No | Maximum number of participants to resolve and include inline. Use `/meeting.participants` for full pagination. |

## Responses

### 200 - Meeting info retrieved successfully

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `id` | string | Yes | Meeting ID |
| `title` | string | Yes | Meeting title |
| `subtitle` | string | No | Meeting subtitle |
| `start` | string | Yes | Meeting start time (RFC-3339) |
| `end` | string | No | Meeting end time (RFC-3339). Omitted while the meeting is still in progress. |
| `participantCount` | integer | Yes | Total number of participants |
| `hasVideo` | boolean | Yes | Whether the meeting was video recorded — a video track exists. `true` from the moment recording starts, `true` at meeting end, and it never flips back. It does **not** mean the recording is ready to f |
| `videoStatus` | "none" | "processing" | "available" | Yes | Where the meeting's video recording is, which — unlike `hasVideo` — changes over time:  - `none` — no video track. The meeting was not recorded and no   recording will appear later. Always paired with |
| `host` | MeetingParticipant | No | Meeting host as a participant object. Requires `user:read` scope; emails are only included with `user:read.email`. Omitted when the host cannot be resolved.  |
| `participants` | MeetingParticipant[] | No | Resolved participants (up to `maxParticipants`). Requires `user:read` scope. |
| `participantsOmitted` | boolean | No | True if total participants exceeds the resolved count |
| `summary` | string | No | AI-generated meeting summary |
| `actionItems` | ActionItem[] | No | AI-extracted action items |
| `chapters` | object[] | No | Meeting chapters/segments |

**MeetingParticipant**:

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `type` | "member" | "guest" | Yes | Whether the participant is a workspace member or an external guest |
| `id` | string | Yes | The participant's address ID |
| `name` | string | Yes | Display name of the participant |
| `email` | string | No | Email address of the participant (requires `user:read.email` scope) |

**MeetingParticipant** (array item):

*See MeetingParticipant above*

**ActionItem** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `id` | string | No | Action item ID. |
| `title` | string | Yes | Action item title. |
| `description` | string | No | Longer description of the action item. |
| `complete` | boolean | No | Whether the action item has been marked complete. Omitted when false. |
| `assigneeId` | string | No | User ID this item was explicitly assigned to, if any. |
| `suggestedAssigneeId` | string | No | AI-suggested assignee user ID, if any. |
| `suggestedAssigneeName` | string | No | Display name for the assignee — resolved from `assigneeId` when set, otherwise the AI-suggested name. |
| `assignedToMe` | boolean | No | Whether this item is assigned to the authenticated user. Personal access tokens only. |
| `suggestedForMe` | boolean | No | Whether this item is AI-suggested for the authenticated user. Personal access tokens only. |

**chapters** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | string | No | Chapter name |
| `start` | integer | No | Chapter start offset in milliseconds since the meeting's `start`. |
| `synopsis` | string | No | Brief synopsis of the chapter |


#### Example Response

```json
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "title": "Weekly Team Standup",
  "start": "2025-04-07T10:00:00Z",
  "end": "2025-04-07T10:42:00Z",
  "participantCount": 8,
  "hasVideo": true,
  "videoStatus": "available",
  "host": {
    "type": "member",
    "id": "709b8a57-70bc-427a-b6f0-b16ba5297f8c",
    "name": "Alex Chen",
    "email": "alex.chen@example.com"
  },
  "participants": [
    {
      "type": "member",
      "id": "709b8a57-70bc-427a-b6f0-b16ba5297f8c",
      "name": "Alex Chen",
      "email": "alex.chen@example.com"
    },
    {
      "type": "guest",
      "id": "af6663d5-0f37-4105-95df-4fea20ef7c7c",
      "name": "Jordan Smith"
    }
  ],
  "participantsOmitted": false,
  "summary": "The team discussed Q2 roadmap priorities and assigned action items for the upcoming sprint.",
  "actionItems": [
    {
      "id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
      "title": "Update API documentation",
      "description": "Add v1 meeting endpoints to the developer docs",
      "complete": false,
      "assigneeId": "709b8a57-70bc-427a-b6f0-b16ba5297f8c",
      "suggestedAssigneeName": "Alex Chen"
    }
  ],
  "chapters": [
    {
      "name": "Sprint Review",
      "start": 0,
      "synopsis": "Reviewed completed tasks from the previous sprint"
    },
    {
      "name": "Q2 Planning",
      "start": 1140000,
      "synopsis": "Discussed priorities and resource allocation for Q2"
    }
  ]
}
```

### 400 - Bad request. Missing or invalid `id`.

### 401 - Presented invalid authentication credentials.

### 404 - Meeting not found.

### 405 - An unsupported method was requested.

### 500 - An internal error occurred.

---

*Machine-readable API documentation.*
*Full documentation: https://developer.ro.am/docs/api/meeting-info*
