openapi: 3.0.3 info: title: RingCentral Adaptive Cards Webinar Subscriptions 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: Webinar Subscriptions description: General interface to manage webinar subscriptions paths: /webinar/notifications/v1/subscriptions: get: tags: - Webinar Subscriptions summary: List Webinar Subscriptions description: Returns a list of webinar subscriptions created by the user for the current authorized client application. operationId: rcwN11sListSubscriptions responses: '200': description: List of Subscriptions content: application/json: schema: $ref: '#/components/schemas/SubscriptionListResource' '500': $ref: '#/components/responses/InternalError' '503': $ref: '#/components/responses/ServiceNotAvailable' x-request-max-body-size: 100m x-availability: High x-throttling-group: Light post: tags: - Webinar Subscriptions summary: Create Webinar Subscription description: Creates a new webinar subscription for the current authorized user / client application. operationId: rcwN11sCreateSubscription requestBody: description: JSON body content: application/json: schema: $ref: '#/components/schemas/CreateWebhookSubscriptionRequest' required: true responses: '201': description: Successful response content: application/json: schema: $ref: '#/components/schemas/SubscriptionInfo' '400': $ref: '#/components/responses/InvalidRequest' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalError' '503': $ref: '#/components/responses/ServiceNotAvailable' x-request-max-body-size: 100m x-availability: High x-throttling-group: Medium /webinar/notifications/v1/subscriptions/{subscriptionId}: get: tags: - Webinar Subscriptions summary: Get Webinar Subscription description: Returns the webinar subscription by ID operationId: rcwN11sGetSubscription parameters: - $ref: '#/components/parameters/SubscriptionId' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/SubscriptionInfo' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' '503': $ref: '#/components/responses/ServiceNotAvailable' x-request-max-body-size: 100m x-availability: High x-throttling-group: Light put: tags: - Webinar Subscriptions summary: Update Webinar Subscription description: 'Updates the existing subscription. The client application can extend/narrow the list of events for which it receives notifications within this subscription. If event filters are specified, calling this method modifies them for the existing subscription. The method also allows setting the subscription expiration time. If other than `events` and `expiresIn` parameters are passed in the request they will be ignored. If the request body is empty then the specified subscription will be just renewed without any event filter modifications and with default expiration time. ' operationId: rcwN11sUpdateSubscription parameters: - $ref: '#/components/parameters/SubscriptionId' requestBody: description: JSON body content: application/json: schema: $ref: '#/components/schemas/UpdateSubscriptionRequest' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/SubscriptionInfo' '400': $ref: '#/components/responses/InvalidRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' '503': $ref: '#/components/responses/ServiceNotAvailable' x-request-max-body-size: 100m x-availability: High x-throttling-group: Medium delete: tags: - Webinar Subscriptions summary: Cancel Webinar Subscription description: Cancels the existing webinar subscription. operationId: rcwN11sDeleteSubscription parameters: - $ref: '#/components/parameters/SubscriptionId' responses: '204': description: No Content '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' '503': $ref: '#/components/responses/ServiceNotAvailable' x-request-max-body-size: 100m x-availability: High x-throttling-group: Medium /webinar/notifications/v1/subscriptions/{subscriptionId}/renew: post: tags: - Webinar Subscriptions summary: Renew Webinar Subscription description: Renews the existing webinar subscription. operationId: rcwN11sRenewSubscription parameters: - $ref: '#/components/parameters/SubscriptionId' responses: '200': description: Subscription renewed successfully content: application/json: schema: $ref: '#/components/schemas/SubscriptionInfo' '400': $ref: '#/components/responses/InvalidRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalError' '503': $ref: '#/components/responses/ServiceNotAvailable' x-request-max-body-size: 100m x-availability: High x-throttling-group: Light components: schemas: WebhookDeliveryModeRequest: type: object required: - transportType - address properties: transportType: type: string description: The transport type for this subscription, or the channel by which an app should be notified of an event enum: - WebHook address: type: string format: uri description: 'The URL to which notifications should be delivered. This is only applicable for the `WebHook` transport type, for which it is a required field. ' example: https://acme.com/myservice/webhook verificationToken: type: string description: An optional validation token used to verify the authenticity of the incoming webhook. Applicable only for the `WebHook` transport type. writeOnly: true CreateWebhookSubscriptionRequest: allOf: - $ref: '#/components/schemas/UpdateSubscriptionRequest' - type: object required: - deliveryMode properties: deliveryMode: $ref: '#/components/schemas/WebhookDeliveryModeRequest' MobileDeliveryMode: allOf: - $ref: '#/components/schemas/MobileDeliveryModeRequest' - type: object required: - encryption properties: encryption: type: boolean description: Specifies if notification messages will be encrypted or not. enum: - false readOnly: true NotificationDeliveryMode: description: Notification delivery transport information anyOf: - $ref: '#/components/schemas/WebhookDeliveryMode' - $ref: '#/components/schemas/MobileDeliveryMode' - $ref: '#/components/schemas/PubNubDeliveryMode' - $ref: '#/components/schemas/WebSocketDeliveryMode' discriminator: propertyName: transportType mapping: WebHook: '#/components/schemas/WebhookDeliveryMode' RC/APNS: '#/components/schemas/MobileDeliveryMode' RC/GCM: '#/components/schemas/MobileDeliveryMode' PubNub: '#/components/schemas/PubNubDeliveryMode' WebSocket: '#/components/schemas/WebSocketDeliveryMode' 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 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 DisabledFilterInfo: type: object required: - filter - reason properties: filter: type: string description: Event filter that is disabled for the user reason: type: string description: Reason why the filter is disabled for the user message: type: string description: Error message WebSocketDeliveryMode: type: object required: - transportType properties: transportType: type: string description: The transport type for this subscription, or the channel by which an app should be notified of an event enum: - WebSocket 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' UpdateSubscriptionRequest: type: object required: - eventFilters properties: eventFilters: type: array description: The list of event filters corresponding to events the user is subscribed to minItems: 1 items: type: string minLength: 1 expiresIn: type: integer format: int32 minimum: 1 example: 1200 description: 'Subscription lifetime in seconds. The maximum subscription lifetime depends upon the specified `transportType`: | Transport type | Maximum permitted lifetime | | ------------------- | ------------------------------ | | `WebHook` | 315360000 seconds (10 years) | | `RC/APNS`, `RC/GSM` | 7776000 seconds (90 days) | | `PubNub` | 900 seconds (15 minutes) | | `WebSocket` | n/a (the parameter is ignored) | ' WebhookDeliveryMode: type: object required: - transportType - address - encryption properties: transportType: type: string description: The transport type for this subscription, or the channel by which an app should be notified of an event enum: - WebHook address: type: string format: uri description: 'The URL to which notifications should be delivered. This is only applicable for the `WebHook` transport type, for which it is a required field. ' example: https://acme.com/myservice/webhook encryption: type: boolean description: Specifies if notification messages will be encrypted or not. enum: - false readOnly: true PubNubDeliveryMode: allOf: - $ref: '#/components/schemas/PubNubDeliveryModeRequest' - type: object required: - address - subscriberKey - secretKey - encryption properties: address: type: string description: 'PubNub channel name ' example: 54770517599294_6dda849e readOnly: true subscriberKey: type: string description: PubNub credential required to subscribe to the channel readOnly: true secretKey: type: string description: PubNub credential required to subscribe to the channel readOnly: true encryptionAlgorithm: type: string description: '(Only for a "PubNub" transport, returned only if `encryption` is `true`) Encryption algorithm used ' enum: - AES readOnly: true encryptionKey: type: string description: '(Only for a "PubNub" transport, returned only if `encryption` is `true`) Cryptographic key to decrypt PubNub notification messages ' readOnly: true PubNubDeliveryModeRequest: type: object required: - transportType properties: transportType: type: string description: The transport type for this subscription, or the channel by which an app should be notified of an event enum: - PubNub encryption: type: boolean description: 'Optional. Specifies if notification messages will be encrypted or not. Please note that for some event filters (e.g. presence) encryption is mandatory and `false` value provided by caller will be ignored. ' default: false 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' MobileDeliveryModeRequest: type: object required: - transportType - certificateName - registrationId properties: transportType: type: string description: The transport type for this subscription, or the channel by which an app should be notified of an event enum: - RC/APNS - RC/GCM certificateName: type: string description: Certificate name for mobile notification transports registrationId: type: string description: Device instance ID for mobile notification transports example: 38b062ae-85f8-4dcc-8734-04d3f7393d42 SubscriptionInfo: required: - id - uri - eventFilters - deliveryMode - creationTime - expirationTime - status type: object properties: uri: type: string format: uri description: Canonical URI of a subscription resource readOnly: true id: type: string description: Internal identifier of a subscription readOnly: true example: 95fecfc9-9cdc-4e94-a78a-89fd65889d37 eventFilters: type: array description: The list of event filter names corresponding to events the user is subscribed to minItems: 0 items: type: string minLength: 1 disabledFilters: type: array minItems: 0 description: 'The list of event filter names corresponding to events the user is not subscribed to due to certain limitations ' items: $ref: '#/components/schemas/DisabledFilterInfo' readOnly: true expirationTime: type: string format: date-time description: 'Subscription expiration time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z* ' readOnly: true expiresIn: type: integer format: int32 minimum: 1 description: Subscription lifetime in seconds status: type: string description: Subscription status enum: - Active - Blacklisted readOnly: true creationTime: type: string description: 'Subscription creation time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534* ' format: date-time readOnly: true deliveryMode: $ref: '#/components/schemas/NotificationDeliveryMode' blacklistedData: type: object description: Returned if a WebHook subscription is blacklisted readOnly: true properties: blacklistedAt: type: string format: date-time description: 'Time of adding subscription to a black list in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z* ' reason: type: string description: Reason of adding subscription to a black list SubscriptionListResource: type: object required: - uri - records properties: uri: type: string format: uri description: Canonical URI of a resource records: type: array minItems: 0 maxItems: 20 items: $ref: '#/components/schemas/SubscriptionInfo' 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' ServiceNotAvailable: description: 'General response with **HTTP 503 "Service not available"** status.
Reasons: server cannot process the request because of being overloaded, misconfiguration or other issues. ' 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' parameters: SubscriptionId: name: subscriptionId in: path description: Internal identifier of a subscription required: true schema: type: string minLength: 1 maxLength: 20 example: '12345678' 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