Meetings

Retrieve a list of meetings

Returns external, non-cancelled meetings that have a recorded call and fall entirely within the from/to window. A processed transcript is not required, so a meeting can appear before its transcript is available.

Ordering. Results are sorted by startTime ascending, then by meeting id ascending, so the order is deterministic even when many meetings share the same startTime.

Window semantics. By default (windowMatch=contained) a meeting is included only if startTime >= from and endTime <= to, so a meeting that ends after to is not returned for that window. Set windowMatch=start to match on start time only (from <= startTime <= to); each meeting then falls in exactly one of a series of consecutive windows (de-duplicate by id in case a meeting starts exactly on a boundary). With the default, overlap adjacent windows by at least your longest expected meeting duration and de-duplicate by id.

Paging (recommended: cursor). Every non-empty page includes nextCursor. Pass it back as cursor (with the same filters and pageSize) to get the next page; stop when nextCursor is null. Cursor paging continues strictly after the last meeting you received, so meetings created or deleted earlier in the window do not cause duplicates or gaps, and deep pages stay fast. A meeting created mid-pull that sorts before your position is not returned; pick it up on your next re-pull. cursor cannot be combined with pageNumber.

Paging (offset). pageNumber paging is still supported. Pages are offset-based and are not a snapshot: meetings created, deleted, or changed between requests can shift later pages. Iterate pageNumber from 1 until a page returns an empty meetings array. Requesting a page beyond the last page returns { "meetings": [], "pageCount": 0, "nextCursor": null }. There is no maximum pageNumber, but deep offsets get slower, so prefer cursor or narrower time windows for large backfills.

pageCount is recomputed on every request from the current data; with cursor, it counts the pages remaining from the cursor, including the current one. Always pass an explicit to: when omitted it defaults to the current time, so the window grows between page requests.

Change tracking. Every field is read live on each request and the response does not include an updatedAt field. Transcripts can be added or reprocessed after a meeting first appears, Salesforce IDs change when links are re-mapped (including via POST /v1/meeting/remap), and attendee and host details reflect the current user records. To pick up these changes, re-fetch recent windows.

Recommended backfill pattern. Use fixed from/to windows with windowMatch=start, page with cursor, de-duplicate by id, periodically re-pull recent windows, and pace requests using X-RateLimit-Remaining and Retry-After.

Rate limits. This endpoint shares the organization-wide limit described in API Access.

get/v1/meetings

Request

Query parameters

fromstring date-time required

Return meetings whose startTime is at or after this date-time (ISO 8601 format). Required.

tostring date-time

With the default windowMatch=contained, return meetings whose endTime is at or before this date-time (ISO 8601 format); with windowMatch=start, whose startTime is. Defaults to the current time. Must not be earlier than from.

windowMatch'contained' | 'start'

How meetings are matched against the from/to window. contained (default) requires startTime >= from and endTime <= to. start requires only from <= startTime <= to, so meetings that end after to are included.

pageNumbernumber

The page number to retrieve (1-based indexing). Defaults to 1 if not specified.

cursorstring

Opaque cursor from a previous response's nextCursor. Returns the page that follows it. Use the same filters and pageSize as the request that produced it. Cannot be combined with pageNumber.

pageSizenumber

The maximum number of meetings to return per page. Must be between 1 and 50. Defaults to 10 if not specified.

salesforceAccountIdstring

Filter meetings associated with a specific Salesforce account. Optional, must be 18 characters in length. Cannot be used with salesforceOpportunityId.

salesforceOpportunityIdstring

Filter meetings associated with a specific Salesforce opportunity. Optional, must be 18 characters in length. Cannot be used with salesforceAccountId.

attendeeEmailAddressesstring[]

Filter meetings that include all of the provided attendee email addresses. Up to 20 addresses.

sourceTypesstring

Filter meetings by source type(s). Provide a comma-separated list of source types. Valid values: AIRCALL, ATTENTION, CHORUS, CLOUDTALK, DIALPAD, GONG, MINDTICKLE, MOMENTUM, MS_TEAMS, ORUM, OUTREACH, RINGCENTRAL, SALESLOFT, SALESLOFT_CI, USER_PROVIDED, VONAGE, WEBEX, WINGMAN, WISER, ZOOM, ZOOM_PHONE

includeDownloadUrlboolean

When set to true, includes a temporary pre-signed download URL (valid for 2 hours) for each meeting that has a recording available. Defaults to false.

Response

A list of meetings.

pageCountnumber

Total number of pages for the current query, recomputed on every request. Returns 0 when the requested page is empty, including pages beyond the last page. With cursor, counts the pages remaining from the cursor, including this one.

nextCursorstring nullable

Pass as cursor to fetch the next page. null when there are no more results.

Changes