# List meetings

`GET /meeting.list`

## Description

Lists all meetings 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 meetings 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:** `meetings: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 meetings (YYYY-MM-DD or RFC-3339). Defaults to "no filter".  |
| `before` | query | string | No | The datetime until which to list meetings (YYYY-MM-DD or RFC-3339). Defaults to "now".  |
| `limit` | query | integer | No | The number of meetings 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 |
|----------|------|----------|-------------|
| `meetings` | Meeting[] | No |  |
| `nextCursor` | string | No | Returned if there is a subsequent page of meetings. |

**Meeting** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `meetingId` | string | Yes | A unique identifier for the meeting |
| `place` | string | No | Internal identifier for the room location |
| `room` | string | No | Name of the room where the meeting took place |
| `roomType` | string | No | Type of the room where the meeting took place (e.g., MeetingRoom, LobbyRoom) |
| `start` | string | Yes | Exact time when the meeting began |
| `end` | string | Yes | Exact time when the meeting ended |
| `participants` | MeetingParticipant[] | No | List of participants in the meeting |
| `meetingLinkIds` | string[] | No | List of meeting link IDs used to join this meeting, if any |

**MeetingParticipant** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | string | Yes |  |
| `email` | string | No |  |
| `seconds` | integer | Yes | Duration of time that this participant was in the meeting (in seconds). |


#### Example Response

```json
{
  "meetings": [
    {
      "meetingId": "559d2f5c-4384-440d-89c0-8195871ab180",
      "place": "room-48",
      "room": "Conference Room A",
      "roomType": "MeetingRoom",
      "start": "2026-01-21T09:48:04Z",
      "end": "2026-01-21T10:54:59Z",
      "participants": [
        {
          "name": "Alex Chen",
          "email": "alex.chen@example.com",
          "seconds": 4015
        },
        {
          "name": "Jordan Smith",
          "email": "jordan.smith@example.com",
          "seconds": 4015
        }
      ]
    },
    {
      "meetingId": "dde68f39-3eb0-42ef-9873-511509c8764f",
      "place": "room-47",
      "room": "Huddle Space",
      "roomType": "MeetingRoom",
      "start": "2026-01-21T09:32:39Z",
      "end": "2026-01-21T09:47:57Z",
      "participants": [
        {
          "name": "Alex Chen",
          "email": "alex.chen@example.com",
          "seconds": 918
        },
        {
          "name": "Taylor Williams",
          "email": "taylor@example.com",
          "seconds": 918
        }
      ]
    }
  ],
  "nextCursor": "MjAyNi0wMS0yMVQwOToyOToxMy4wMDBa"
}
```

---

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