latestOpenAPI 3.1.02026-08-0884673.4 KB

3c40ff85e81d

Recordings

List recordings

Returns recordings visible to the owner of the API key.

If you want to access "all" recordings, use an admin user who is added to all restricted groups. Recordings with explicit only_me permission are only accessible by said user.

Rate limits:

  • Global: 120 requests per minute per API key.
  • Endpoint-specific: 60 requests per minute per API key.
get/recordings

Query parameters

created_at_eqstring
created_at_not_eqstring
created_at_ltstring
created_at_lteqstring
created_at_gtstring
created_at_gteqstring
created_at_contstring
updated_at_eqstring
updated_at_not_eqstring
updated_at_ltstring
updated_at_lteqstring
updated_at_gtstring
updated_at_gteqstring
updated_at_contstring
demo_start_date_eqstring
demo_start_date_not_eqstring
demo_start_date_ltstring
demo_start_date_lteqstring
demo_start_date_gtstring
demo_start_date_gteqstring
demo_start_date_contstring
duration_eqstring
duration_not_eqstring
duration_ltstring
duration_lteqstring
duration_gtstring
duration_gteqstring
duration_contstring
demo_id_eqstring
demo_id_not_eqstring
demo_id_ltstring
demo_id_lteqstring
demo_id_gtstring
demo_id_gteqstring
demo_id_contstring
host_eqstring

Host selector. Accepts an email address or me.

attendee_eqstring

Attendee selector. Accepts an email address or me.

status_eq'pending' | 'ready' | 'failure' | 'cancelled' | 'expired'
status_not_eq'pending' | 'ready' | 'failure' | 'cancelled' | 'expired'
postprocessing_status_eq'pending' | 'done' | 'too_short' | 'failed'
postprocessing_status_not_eq'pending' | 'done' | 'too_short' | 'failed'
group_id_eqstring
access_eq'company_wide' | 'selected_groups' | 'host_only'
access_not_eq'company_wide' | 'selected_groups' | 'host_only'

Filter recordings by their properties.

This uses Ransack-style keys in a deep-object parameter. Filter attributes use snake_case. Common operators include eq, not_eq, cont, gteq, lteq, and in.

Common examples

  • /api/v2/recordings?filter[status_eq]=pending (allowed public values: pending, ready, failure, cancelled, expired)
  • /api/v2/recordings?filter[postprocessing_status_eq]=done (You most-likely want this - eg. transcribed, summaries generated, CRM synced, ...)
  • /api/v2/recordings?filter[status_in][]=ready&filter[status_in][]=failure (Ransack in operator with repeated array params)
  • /api/v2/recordings?filter[created_at_gteq]=2025-01-01T00:00:00Z
  • /api/v2/recordings?filter[demo_id_eq]=123
  • /api/v2/recordings?filter[host_eq]=me (recordings hosted by the current authenticated user)
  • /api/v2/recordings?filter[host_eq]=host@example.com (recordings hosted by a specific user)
  • /api/v2/recordings?filter[host_in][]=me&filter[host_in][]=manager@example.com (multiple hosts)
  • /api/v2/recordings?filter[attendee_eq]=prospect@example.com (recordings where this attendee joined)
  • /api/v2/recordings?filter[attendee_in][]=me&filter[attendee_in][]=champion@example.com (multiple attendees)
  • /api/v2/recordings?filter[group_id_eq]=99 (for access: company_wide or host_only recordings: matches by host's group membership; for access: selected_groups recordings: matches by the demo's assigned groups)
  • /api/v2/recordings?filter[group_id_in][]=99&filter[group_id_in][]=100 (multiple groups)
  • /api/v2/recordings?filter[access_eq]=host_only (allowed values: company_wide, selected_groups, host_only)

They can be combined freely.

{
  "host_eq": "me",
  "attendee_eq": "attendee@example.com",
  "status_eq": "ready",
  "status_not_eq": "failure",
  "postprocessing_status_eq": "done",
  "postprocessing_status_not_eq": "failed",
  "access_eq": "host_only",
  "access_not_eq": "selected_groups"
}
cursorstring

Opaque cursor returned by a previous list response.

limitinteger

Page size for recordings list.

Response

Recordings fetched successfully.