RingCentral Webinar Subscriptions API
General interface to manage webinar subscriptions
General interface to manage webinar subscriptions
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.<br>
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.<br>
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.<br>
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.<br>
Reasons: general server-side error.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
InvalidRequest:
description: '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.
'
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