RingCentral Webinar Subscriptions API

General interface to manage webinar subscriptions

OpenAPI Specification

ringcentral-webinar-subscriptions-api-openapi.yml Raw ↑
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