openapi: 3.0.3 info: title: RingCentral Adaptive Cards Historical Recordings API description: RingCentral API specification version: 1.0.58-20240529-47eda8bd contact: name: RingCentral Developers Support url: https://developers.ringcentral.com/support termsOfService: https://www.ringcentral.com/legal/apilitos.html license: name: RingCentral API License Agreement url: https://www.ringcentral.com/legal/apilitos.html servers: - url: https://platform.ringcentral.com description: Production API entry point - url: https://media.ringcentral.com description: Production Media entry point - url: https://platform.devtest.ringcentral.com description: Developer sandbox API entry point - url: https://platform.devtest.ringcentral.com description: Developer sandbox Media entry point security: - OAuth2: [] tags: - name: Historical Recordings description: Historical webinar recordings management (host and admin interfaces) paths: /webinar/history/v1/company/recordings: get: tags: - Historical Recordings summary: List Webinar Recordings (Admin) description: 'Returns the list of webinar recordings (Administrator''s interface). The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. ' operationId: rcwHistoryAdminListRecordings parameters: - name: nameFragment in: query description: Filter to return only webinar recordings containing particular substring within their names required: false explode: true schema: type: string example: All-hands - $ref: '#/components/parameters/CreationTimeFrom' - $ref: '#/components/parameters/CreationTimeTo' - $ref: '#/components/parameters/RecordingStatus' - $ref: '#/components/parameters/HostUserId' - $ref: '#/components/parameters/PerPage' - $ref: '#/components/parameters/PageToken' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/RecordingAdminListResource' '400': $ref: '#/components/responses/InvalidRequest' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalError' x-throttling-group: Heavy x-app-permission: ReadWebinars /webinar/history/v1/company/recordings/{recordingId}: get: tags: - Historical Recordings summary: Get Webinar Recording (Admin) description: 'Returns the webinar recording by ID (Administrator''s interface). The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. ' operationId: rcwHistoryAdminGetRecording parameters: - $ref: '#/components/parameters/RecordingId' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/RecordingAdminExtendedItemModel' '400': $ref: '#/components/responses/InvalidRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-throttling-group: Heavy x-app-permission: ReadWebinars /webinar/history/v1/recordings: get: tags: - Historical Recordings summary: List Webinar Recordings description: 'Returns the list of webinar recordings for a given webinar host user ' operationId: rcwHistoryListRecordings parameters: - $ref: '#/components/parameters/CreationTimeFrom' - $ref: '#/components/parameters/CreationTimeTo' - $ref: '#/components/parameters/RecordingStatus' - $ref: '#/components/parameters/PerPage' - $ref: '#/components/parameters/PageToken' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/RecordingListResource' '400': $ref: '#/components/responses/InvalidRequest' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalError' x-throttling-group: Heavy x-app-permission: ReadWebinars /webinar/history/v1/recordings/{recordingId}: get: tags: - Historical Recordings summary: Get Webinar Recording description: 'Returns the webinar recording by ID (Webinar host''s interface). This API also returns sharing link if sharing is enabled. ' operationId: rcwHistoryGetRecording parameters: - $ref: '#/components/parameters/RecordingId' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/RecordingItemExtendedModel' '400': $ref: '#/components/responses/InvalidRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-throttling-group: Heavy x-app-permission: ReadWebinars /webinar/history/v1/recordings/{recordingId}/download: get: tags: - Historical Recordings summary: Get Webinar Recording Download Resource description: 'Returns the webinar recording download link (both Webinar host''s and admin interface). If called by a webinar host, the API returns error (403) if recording downloading is prohibited by company settings. The admin user who has "WebinarSettings" permission should be able to download recording regardless of current company settings. ' operationId: rcwHistoryGetRecordingDownload parameters: - $ref: '#/components/parameters/RecordingMediaType' - $ref: '#/components/parameters/RecordingId' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/RecordingDownloadModel' '400': $ref: '#/components/responses/InvalidRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' x-throttling-group: Heavy x-app-permission: ReadWebinars components: schemas: WebinarHostModel: type: object required: - host properties: host: $ref: '#/components/schemas/HostModel' RecordingItemModel: allOf: - $ref: '#/components/schemas/RecordingModel' - type: object properties: session: $ref: '#/components/schemas/SessionRefModel' RecordingExtendedModel: allOf: - $ref: '#/components/schemas/RcwResourceBaseModel' - $ref: '#/components/schemas/RecordingBaseModel' - $ref: '#/components/schemas/RecordingSharingModel' WebinarTitleModel: type: object required: - title properties: title: type: string description: Webinar title maxLength: 512 minLength: 1 example: All-Hands Webinar description: type: string description: User-friendly description of the Webinar maxLength: 4096 minLength: 0 example: Quarterly All-hands event to present recent news about our company to employees default: '' RecordingSharedStatusModel: type: boolean description: 'Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is ''Available''. ' example: true ApiErrorWithParameter: description: 'The error model with additional attributes which can be used for HTTP 400/409 This is a deprecated model: "ApiError" model can be used instead with arbitrary additional parameters ' allOf: - $ref: '#/components/schemas/ApiError' - type: object properties: parameterName: type: string description: The name of the API parameter/attribute which caused the error parameterValue: type: string description: The value of the API parameter/attribute which caused the error RecordingListResource: type: object required: - records - paging properties: records: type: array minItems: 0 items: $ref: '#/components/schemas/RecordingItemModel' paging: $ref: '#/components/schemas/RcwPagingModel' ApiError: type: object description: Generalized API error structure suitable for any error type required: - errorCode - message properties: errorCode: type: string description: Logical error code (typically, 3 letters followed with number, dash separated) example: XXX-123 message: type: string description: User-friendly error message example: Something went wrong additionalProperties: true RecordingDownloadModel: type: object required: - downloadUri - downloadContentType - downloadSize properties: downloadUri: type: string format: uri description: Download URI (available only for webinar host or admin) downloadContentType: type: string description: MIME type of the file to download. enum: - video/mp4 - audio/m4a default: video/mp4 downloadSize: type: integer format: int64 description: Download file size in bytes example: 20821092300 RecordingMediaType: type: string description: Recording file media type. 'Video' implies multiplexed audio and video. 'Audio' refers to audio only. enum: - Video - Audio example: Video default: Video HostModel: allOf: - $ref: '#/components/schemas/RcwBaseContactModel' - $ref: '#/components/schemas/RcwLinkedUserModel' ApiErrorResponseModel: type: object description: Standard error response model which is returned in case of any unsuccessful operation required: - errors properties: errors: type: array description: The array of errors (there will be just one in the most of the cases) minItems: 1 items: $ref: '#/components/schemas/ApiError' RecordingSharingModel: type: object required: - recordingSharedUri properties: recordingSharedUri: type: string format: uri readOnly: true description: Shared URI of the recording. If a password was required to join a webinar, the URI should contain the password encoded example: https://v.ringcentral.com/w/a/recording/de7yd8ew7yfsdfjh899843rgj?pw=a1b2c3d4 RcwDomainUserModel: allOf: - $ref: '#/components/schemas/RcwUserModel' - type: object required: - domain properties: domain: type: string description: Identity domain enum: - pbx - ilm default: pbx RcwResourceBaseModel: allOf: - $ref: '#/components/schemas/RcwImmutableResourceIdModel' - type: object required: - creationTime - lastModifiedTime properties: creationTime: type: string description: Object creation time format: date-time readOnly: true lastModifiedTime: type: string description: Object last modification time format: date-time readOnly: true RcwUserModel: type: object required: - userId - accountId properties: userId: type: string maxLength: 256 description: User ID accountId: type: string maxLength: 256 description: Account ID RcwPagingForwardModel: type: object required: - pageToken - perPage properties: perPage: type: integer format: int32 minimum: 1 maximum: 1000 description: Number of items per page example: 100 pageToken: type: string description: Current page token nextPageToken: type: string description: Next page token (absent for the last page of the result set) previousPageToken: type: string description: 'Previous page token (absent for the first page of the result set) May be omitted if the result set does not support backward navigation. ' RecordingBaseModel: type: object required: - status properties: status: $ref: '#/components/schemas/RecordingStatusModel' failureReason: $ref: '#/components/schemas/ApiError' duration: type: integer format: int32 readOnly: true minimum: 1 description: Recording duration in seconds example: 3600 shared: $ref: '#/components/schemas/RecordingSharedStatusModel' sharedUriExpirationTime: $ref: '#/components/schemas/RecordingSharedLinkExpiryModel' RcwImmutableResourceIdModel: type: object properties: id: type: string description: Internal object ID minLength: 1 maxLength: 20 example: '78654321' readOnly: true RcwResourceIdModel: type: object properties: id: type: string description: Internal object ID minLength: 1 maxLength: 20 example: '78654321' WebinarRefModel: allOf: - $ref: '#/components/schemas/RcwResourceIdModel' - $ref: '#/components/schemas/WebinarTitleModel' - $ref: '#/components/schemas/WebinarHostModel' RecordingStatusModel: type: string description: Recording status enum: - Processing - Available - Failed - Purged example: Available ParameterizedErrorResponseModel: type: object description: Standard error response which may include parameterized errors required: - errors properties: errors: type: array description: The array of errors (there will be just one in the most of the cases) minItems: 1 items: $ref: '#/components/schemas/ApiErrorWithParameter' SessionRefAdminModel: allOf: - $ref: '#/components/schemas/RcwResourceIdModel' - $ref: '#/components/schemas/SessionMinimalModel' - type: object properties: webinar: $ref: '#/components/schemas/WebinarRefModel' SessionRefModel: allOf: - $ref: '#/components/schemas/RcwResourceIdModel' - $ref: '#/components/schemas/SessionMinimalModel' - type: object properties: webinar: $ref: '#/components/schemas/WebinarRefModel' RecordingSharedLinkExpiryModel: type: string nullable: true format: date-time description: Time after which recording shared link cannot be accessed by recipients. example: '2023-10-01T10:05:00.000Z' RecordingAdminModel: allOf: - $ref: '#/components/schemas/RecordingItemModel' - type: object properties: session: $ref: '#/components/schemas/SessionRefAdminModel' RcwBaseContactModel: type: object properties: firstName: type: string description: First (given) name maxLength: 64 example: John x-sensitive-data: masked lastName: type: string description: Last (family) name maxLength: 64 example: Doe x-sensitive-data: masked RecordingItemExtendedModel: allOf: - $ref: '#/components/schemas/RecordingExtendedModel' - type: object properties: session: $ref: '#/components/schemas/SessionRefModel' RcwLinkedUserModel: type: object description: The internal IDs of RC-authenticated users. properties: linkedUser: $ref: '#/components/schemas/RcwDomainUserModel' RcwPagingModel: allOf: - $ref: '#/components/schemas/RcwPagingForwardModel' - type: object properties: previousPageToken: type: string description: Previous page token (absent for the first page of the result set) RecordingAdminListResource: type: object required: - records - paging properties: records: type: array minItems: 0 items: $ref: '#/components/schemas/RecordingAdminModel' paging: $ref: '#/components/schemas/RcwPagingModel' RecordingModel: allOf: - $ref: '#/components/schemas/RcwResourceBaseModel' - $ref: '#/components/schemas/RecordingBaseModel' SessionMinimalModel: type: object properties: startTime: type: string description: 'Session start time. If a session hasn''t been started this fields should be set to "scheduledStartTime" ' format: date-time endTime: type: string description: 'Session end time. If a session hasn''t been finished this fields should be set to ("startTime"+"scheduledDuration") ' format: date-time duration: type: integer format: int32 description: Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty) example: 3600 title: type: string description: Session title. If blank - derived from webinar title. maxLength: 512 example: Live Broadcasting US description: type: string maxLength: 4096 description: User-friendly description of the Session. If blank - derived from webinar title. example: Live session for US-based participants RecordingAdminExtendedItemModel: allOf: - $ref: '#/components/schemas/RecordingItemExtendedModel' - type: object properties: session: $ref: '#/components/schemas/SessionRefAdminModel' parameters: CreationTimeFrom: name: creationTimeFrom in: query description: The beginning of the time window by 'creationTime' . required: true explode: false schema: type: string format: date-time HostUserId: name: hostUserId in: query description: Identifier of the user who hosts a webinar (if omitted, webinars hosted by all company users will be returned) required: false explode: false schema: type: array maxItems: 10 minItems: 0 items: type: string minLength: 1 maxLength: 20 example: - '77777777' PerPage: name: perPage in: query description: 'The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied ' required: false explode: false schema: type: integer format: int32 minimum: 1 maximum: 1000 default: 100 example: 100 PageToken: name: pageToken in: query description: 'The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. ' required: false explode: false schema: type: string RecordingId: name: recordingId in: path description: Identifier of the Webinar recording. required: true style: simple explode: false schema: type: string example: '7637637682' RecordingMediaType: schema: $ref: '#/components/schemas/RecordingMediaType' in: query name: recordingMediaType description: 'Download file media type. - Type ''Video'' refers to a multiplexed audio and video file. - Type ''Audio'' refers to an audio only file. - Unless specified by this query parameter, a video file is returned by default when a recording is downloaded. ' required: false RecordingStatus: name: status in: query description: The status of the recording. required: false style: form explode: true schema: type: array items: $ref: '#/components/schemas/RecordingStatusModel' CreationTimeTo: name: creationTimeTo in: query description: The end of the time window by 'creationTime' . required: true explode: false schema: type: string format: date-time responses: NotFound: description: 'General response with **HTTP 404 "Not found"** status.
Reasons: the entity with given ID (typically specified in a path parameter), is not found or inaccessible ' content: application/json: schema: $ref: '#/components/schemas/ApiErrorResponseModel' Forbidden: description: 'General response with **HTTP 403 "Forbidden"** status.
Reasons: the requested operation is forbidden because of certain resource state, lack of permissions, feature unavailability, etc. ' content: application/json: schema: $ref: '#/components/schemas/ApiErrorResponseModel' InternalError: description: 'General response with **HTTP 500 "Internal Server Error"** status.
Reasons: general server-side error. ' content: application/json: schema: $ref: '#/components/schemas/ApiErrorResponseModel' InvalidRequest: description: 'General response with **HTTP 400 "Bad request"** status.
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. ' content: application/json: schema: $ref: '#/components/schemas/ParameterizedErrorResponseModel' securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://platform.ringcentral.com/restapi/oauth/authorize tokenUrl: https://platform.ringcentral.com/restapi/oauth/token refreshUrl: https://platform.ringcentral.com/restapi/oauth/token scopes: {} x-tagGroups: - name: Voice popular: true tags: - Business Hours - Call Blocking - Call Control - Call Forwarding - Call Handling Rules - Interaction Rules - State-based Rules - Call Flip - Call Log - Call History - Call Log Export - Call Monitoring Groups - Call Queues - Call Recordings - Call Recording Settings - Device SIP Registration - Greetings - IVR - RingOut - Verification Calls - name: SMS and Fax popular: true tags: - Fax - Message Exports - Message Store - Pager Messages - SMS - High Volume SMS - SMS Log Export - SMS Templates - Voicemail Broadcasting - name: Social Messaging popular: true tags: - Identities - Contents - name: Team Messaging popular: true tags: - Adaptive Cards - Bots - Calendar Events - Chats - Conversations - Compliance Exports - Contacts - Incoming Webhooks - Notes - Posts - Profile - Tasks - Teams - name: Video popular: true tags: - Bridge Management - Delegation Management - Meetings History - Meeting Recordings - RCM Meetings (Legacy) - RCM Webinars (Legacy) - name: Webinar popular: true tags: - Webinars and Sessions - Invitees - Historical Webinars - Historical Recordings - Registration Management - Registrants - Webinar Analytics - Webinar Subscriptions - name: Analytics popular: true tags: - Business Analytics - name: Artificial Intelligence popular: true tags: - Insights - Audio - Text - Status - name: Authentication tags: - OAuth 2.0 / OpenID Connect - Interoperability - name: Account tags: - Company - Custom Fields - Features - Licenses - Tax Locations - Cost Centers - Multi-Site - Phone Numbers - Presence - Regional Settings - User Permissions - User Settings - Audit Trail - Calling Rates - Appearance Customization - Account Integrations - name: Provisioning tags: - Automatic Location Updates - Devices - Extensions - Paging Only Groups - Park Locations - Phone Lines - SCIM - Shared Lines - Group Call Pickup - Delegated Lines Groups - Directed Call Pickup - IVR Apps - Video Configuration - Number Porting - SMB - Account Federation - Integrations - Enterprise Portal API - Push to Talk Provisioning - BYOC - name: Address Book tags: - External Contacts - Internal Contacts - Hybrid Directory Contacts - Overlay Contacts - External Shared Directory - name: Roles and Permissions tags: - Permissions - Role Management - Site Administration - User Groups - name: Events & Notifications tags: - Subscriptions - name: User Integrations tags: - Token Management - Calendar Management - Calendar Event Management - Calendar Presence Link - Cloud Personal Contacts - Cloud Shared Contacts - Cloud Directory - Deprecated Calendar API - name: Rooms tags: - Rooms Client API - Rooms Management API - name: App Management tags: - App Gallery - App Rating Review - Bot Provisioning - name: Workflow Builder tags: - Flows - Flow Editor - Flow Log - Flow Templates - name: Utilities tags: - API Info - Application Settings - Async Tasks - User Notifications - Client Versions - End-to-End Encryption