---
title: "List meetings"
method: GET
path: "/meetings"
tags: ["Meetings"]
---

# List meetings

`GET /meetings`

## Request

- Base URL: `https://demodesk.com/api/v2`
- URL: `https://demodesk.com/api/v2/meetings`
- Auth: HTTP bearer

Returns meetings **visible to the owner of the API key**, whether or not they were recorded, ordered by start date (oldest first).

Visibility follows the same rules as in the Demodesk app: meetings with `host_only` access are only returned to their host, and restricted groups apply.
To access "all" meetings, use an admin user who is added to all restricted groups.

`status` mirrors what Demodesk tracks. Meetings held in Zoom, Microsoft Teams or Google Meet stay `scheduled` while they run and change to `ended` shortly after their scheduled end. `ended` does not mean the external attendees showed up.
`startDate` and `endDate` are the scheduled start and end of the meeting.

A meeting that is rescheduled while you page through the results can be skipped or returned twice.

Rate limits:
- Global: 120 requests per minute per API key.
- Endpoint-specific: 60 requests per minute per API key.

## Query parameters

- `filter` object
  - `start_date_gt` string, date-time
  - `start_date_gteq` string, date-time
  - `start_date_lt` string, date-time
  - `start_date_lteq` string, date-time
  - `host_eq` string: Host selector. Accepts an email address or `me`.
  - `host_in` union: Host selectors. Each value accepts an email address or `me`.
    - string
    - string[]
  - `status_eq` 'scheduled' | 'in_progress' | 'ended' | 'canceled'
  - `status_in` union
    - 'scheduled' | 'in_progress' | 'ended' | 'canceled'
    - string[]
- `cursor` string
- `limit` integer

## Response `200`

Meetings fetched successfully.

- MeetingsIndexResponse
  - `data` MeetingListItem[], required
    - `demoId` string, required: Internal demo id as string. Matches `demoId` of the recordings list.
    - `name` string, nullable, required: Name of the meeting, usually the account or calendar event title.
    - `status` 'scheduled' | 'in_progress' | 'ended' | 'canceled', required: Meeting status as tracked by Demodesk. - `scheduled`: the meeting has not started yet - `in_progress`: the meeting is running in Demodesk - `ended`: the meeting is over - `canceled`: the meeting was canceled Meetings held in Zoom, Microsoft Teams or Google Meet keep `scheduled` while they run and change to `ended` shortly after their scheduled end. `ended` does not mean that the external attendees showed up.
    - `host` RecordingHostItem, required: The host of the demo, resolved inline so consumers don't need a follow-up users lookup.
      - `userId` string, required: ID of the demo host user as string.
      - `displayName` string, required: Human-readable name of the host.
      - `email` string, required: Email address of the host.
    - `startDate` string, date-time, required: Scheduled start of the meeting.
    - `endDate` string, date-time, nullable, required: Scheduled end of the meeting (`startDate` plus the scheduled duration). `null` when the meeting has no scheduled duration.
    - `access` 'company_wide' | 'selected_groups' | 'host_and_participants' | 'host_only', required: Access permission level of the meeting. - `company_wide`: visible to all company members - `selected_groups`: visible to members of assigned groups - `host_and_participants`: visible only to the host and participants - `host_only`: visible only to the host
    - `recordingTokens` string[], required: Tokens of the recordings of this meeting that the owner of the API key may see, for use with the recordings endpoints. `[]` means the meeting was not recorded or its recordings are not visible to the API key owner.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `meta` object, required
    - `hasNext` boolean, required
    - `limit` integer, required
    - `nextCursor` string, nullable

## Other responses

- `400`: Request validation failed.
- `401`: API key is missing or invalid.
- `403`: The authenticated user is not allowed to access this resource, e.g. it is not assigned to a company.
- `429`: Rate limit exceeded.

## Changes

- **2026-11-04** `8729e4025dc9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/demodesk/apis/demodesk-public-api/changes/meetings/get.md)

---

[API](https://skmtc.dev/demodesk/apis/demodesk-public-api.md) - [All operations](https://skmtc.dev/demodesk/apis/demodesk-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/demodesk/apis/demodesk-public-api/revisions/8729e4025dc9?raw)
