---
title: "List Historical Webinar Sessions across Multiple Webinars"
method: GET
path: "/webinar/history/v1/sessions"
tags: ["Historical Webinars"]
---

# List Historical Webinar Sessions across Multiple Webinars

`GET /webinar/history/v1/sessions`

Returns the list of historical Webinar Sessions hosted by a current authorized user
sorted by 'endTime' in the descending order. Depending on a session status 'endTime' can
represent actual end time or scheduled end time.

## Query parameters

- `nameFragment` string
- `status` RcwSessionStatusModel[]
- `endTimeFrom` string, date-time, required
- `endTimeTo` string, date-time, required
- `perPage` integer
- `pageToken` string

## Response `200`

Successful response

- SessionGlobalListResource
  - `records` SessionGlobalResource[], required
    - `id` string — Internal object ID
    - `creationTime` string, date-time, required — Object creation time
    - `lastModifiedTime` string, date-time, required — Object last modification time
    - `webinar` WebinarRefModel, required
      - `id` string — Internal object ID
      - `title` string, required — Webinar title
      - `description` string — User-friendly description of the Webinar
      - `host` HostModel, required — The internal IDs of RC-authenticated users.
        - `firstName` string — First (given) name
        - `lastName` string — Last (family) name
        - `linkedUser` RcwDomainUserModel
          - `userId` string, required — User ID
          - `accountId` string, required — Account ID
          - `domain` 'pbx' | 'ilm', required — Identity domain
    - `startTime` string, date-time — Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime"
    - `endTime` string, date-time — Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration")
    - `duration` integer — Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty)
    - `title` string — Session title. If blank - derived from webinar title.
    - `description` string — User-friendly description of the Session. If blank - derived from webinar title.
    - `scheduledStartTime` string, date-time — Session scheduled start time.
    - `scheduledDuration` integer — The scheduled duration of the Session in seconds.
    - `timeZone` string — IANA-compatible time zone name (see https://www.iana.org/time-zones).
    - `localeCode` string — Session locale code. Can't be blank or null.
    - `panelJoinTimeOffset` integer — The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync
    - `broadcastingStartTime` string, date-time — The time when broadcasting started.
    - `broadcastingEndTime` string, date-time — The time when broadcasting ended.
    - `status` 'Scheduled' | 'Active' | 'Finished' — Webinar session status
    - `runtimeStatus` 'Idle' | 'Practice' | 'GoingLive' | 'Live' | 'Break' | 'Debrief' — Session runtime status (for 'Active' Sessions only). It is omitted (or null) if the status is not Active
    - `participantCount` integer — The number of participants (of all roles) who joined the webinar
    - `attendeeCount` integer — The number of attendees who joined the webinar
    - `uniqueParticipantCount` integer — Unique number of participants (of all roles) who joined the webinar
    - `uniqueAttendeeCount` integer — Unique number of attendees who joined the webinar
    - `videoBridgeId` string — The RCV bridge id
    - `recording` RecordingModel
      - `id` string — Internal object ID
      - `creationTime` string, date-time, required — Object creation time
      - `lastModifiedTime` string, date-time, required — Object last modification time
      - `status` 'Processing' | 'Available' | 'Failed' | 'Purged', required — Recording status
      - `failureReason` ApiError — Generalized API error structure suitable for any error type
        - `errorCode` string, required — Logical error code (typically, 3 letters followed with number, dash separated)
        - `message` string, required — User-friendly error message
      - `duration` integer — Recording duration in seconds
      - `shared` boolean — Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'.
      - `sharedUriExpirationTime` string, date-time, nullable — Time after which recording shared link cannot be accessed by recipients.
    - `livestreams` SessionLivestreamMinimalModel[] — The list of livestreams configured for the session
      - `livestreamId` string, required — Identifier of the livestream
      - `serviceProvider` string, required — Name of the livestreaming service provider
      - `livestreamStatus` 'Initialized' | 'Authorized' | 'Configured' | 'PublishSetup' | 'Publishing' | 'Paused' | 'Error' | 'Break' | 'Deleted' | 'Completed', required — Last known state of the livestream as notified by Webinar Livestreaming Controller Service (WLCS). Value may not be consistent with latest state, especially for livestream associated with OAuth2.0 based service providers. Thus, state must be obtained directly from WLCS
      - `previousLivestreamStatus` 'Initialized' | 'Authorized' | 'Configured' | 'PublishSetup' | 'Publishing' | 'Paused' | 'Error' | 'Break' | 'Deleted' | 'Completed' — Last known state of the livestream as notified by Webinar Livestreaming Controller Service (WLCS). Value may not be consistent with latest state, especially for livestream associated with OAuth2.0 based service providers. Thus, state must be obtained directly from WLCS
      - `livestreamStartTime` string, date-time — Time at which the session started to publish media to livestream service provider.
      - `error` ApiError — Generalized API error structure suitable for any error type
        - `errorCode` string, required — Logical error code (typically, 3 letters followed with number, dash separated)
        - `message` string, required — User-friendly error message
  - `paging` RcwPagingModel, required
    - `perPage` integer, required — Number of items per page
    - `pageToken` string, required — Current page token
    - `nextPageToken` string — Next page token (absent for the last page of the result set)
    - `previousPageToken` string — Previous page token (absent for the first page of the result set)

## Other responses

- `400` — General response with **HTTP 400 "Bad request"** status.<br> Reasons: unparsable request, path, query or body parameters are invalid. The error description may contain reference to particular parameter(s) which haven't passed the validation.
- `500` — General response with **HTTP 500 "Internal Server Error"** status.<br> Reasons: general server-side error.

---

[API](https://skmtc.net/ringcentral/apis/ringcentral-api.md) · [All operations](https://skmtc.net/ringcentral/apis/ringcentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ringcentral/ringcentral-api/revisions/8d602198ec97/schema)
