RingCentral Registrants API

External APIs for registrants management

OpenAPI Specification

ringcentral-registrants-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: RingCentral Adaptive Cards Registrants 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: Registrants
  description: External APIs for registrants management
paths:
  /webinar/registration/v1/sessions/{sessionId}/registrants:
    get:
      tags:
      - Registrants
      summary: List Session Registrants
      description: 'Returns the list of Registrants ordered by "id" ascending.


        A caller must be an authorized user: either a host of the webinar or an IT Admin:

        a user from host''s account with "WebinarSettings" permission.

        '
      operationId: rcwRegListRegistrants
      parameters:
      - $ref: '#/components/parameters/RcwSessionId'
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/PageToken'
      - $ref: '#/components/parameters/IncludeQuestionnaire'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrantListResource'
        '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
    post:
      tags:
      - Registrants
      summary: Create Registrant
      description: 'Creates a new Registrant for a given session.


        Registration MUST be open for the session for this call to succeed (otherwise it should return HTTP 403).


        A caller must be an authorized user: either a host of the webinar or an IT Admin:

        a user from host''s account with "WebinarSettings" permission.

        '
      operationId: rcwRegCreateRegistrant
      parameters:
      - $ref: '#/components/parameters/RcwSessionId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegistrantBaseModelWithQuestionnaire'
      responses:
        '201':
          description: Successful response, new Registrant is created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrantModelResponsePostWithQuestionnaire'
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalError'
      x-throttling-group: Heavy
      x-app-permission: EditWebinars
  /webinar/registration/v1/sessions/{sessionId}/registrants/{registrantId}:
    get:
      tags:
      - Registrants
      summary: Get Registrant
      description: 'Returns a Registrant by ID.


        A caller must be an authorized user: either a host of the webinar or an IT Admin:

        a user from host''s account with "WebinarSettings" permission.

        '
      operationId: rcwRegGetRegistrant
      parameters:
      - $ref: '#/components/parameters/RcwSessionId'
      - $ref: '#/components/parameters/RegistrantId'
      - $ref: '#/components/parameters/IncludeQuestionnaire'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrantModelWithQuestionnaire'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      x-throttling-group: Heavy
      x-app-permission: ReadWebinars
    delete:
      tags:
      - Registrants
      summary: Delete Registrant
      description: 'Deletes a Registrant by ID.


        Session must not be in finished state (otherwise it should return HTTP 403).


        A caller must be an authorized user: either a host of the webinar or an IT Admin:

        a user from host''s account with "WebinarSettings" permission.

        '
      operationId: rcwRegDeleteRegistrant
      parameters:
      - $ref: '#/components/parameters/RcwSessionId'
      - $ref: '#/components/parameters/RegistrantId'
      responses:
        '204':
          description: The Registrant was successfully deleted
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      x-throttling-group: Heavy
      x-app-permission: EditWebinars
components:
  schemas:
    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
    RegQuestionBaseModel:
      type: object
      required:
      - questionId
      properties:
        questionId:
          type: string
          description: ID of the custom question
          example: '123456789'
    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
    VariableAnswerModel:
      allOf:
      - $ref: '#/components/schemas/RegQuestionBaseModel'
      - type: object
        required:
        - answerText
        properties:
          answerText:
            type: string
            x-sensitive-data: normalized-anonymized
            description: Answer text
    RegistrantListResource:
      type: object
      required:
      - records
      - paging
      properties:
        records:
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/RegistrantModelWithQuestionnaire'
        paging:
          $ref: '#/components/schemas/RcwPagingForwardModel'
    RcwEmailModel:
      type: string
      format: email
      minLength: 1
      maxLength: 256
      example: john.doe@example.com
      description: User's contact email
      x-sensitive-data: normalized-anonymized
    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'
    RegistrantModelWithQuestionnaire:
      allOf:
      - $ref: '#/components/schemas/RcwResourceBaseModel'
      - $ref: '#/components/schemas/RegistrantBaseModelWithQuestionnaire'
    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
    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.

            '
    RcwImmutableResourceIdModel:
      type: object
      properties:
        id:
          type: string
          description: Internal object ID
          minLength: 1
          maxLength: 20
          example: '78654321'
          readOnly: true
    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'
    RegAnswerModel:
      anyOf:
      - $ref: '#/components/schemas/FixedAnswerModel'
      - $ref: '#/components/schemas/VariableAnswerModel'
    RegistrantModelResponsePostWithQuestionnaire:
      allOf:
      - $ref: '#/components/schemas/RegistrantModelWithQuestionnaire'
      - type: object
        properties:
          icalendarSequence:
            type: integer
            format: int32
            minimum: 0
            readOnly: true
            description: Sequence number for iCalendar email attachments
    RegistrantBaseModelWithQuestionnaire:
      allOf:
      - $ref: '#/components/schemas/RegistrantBaseModel'
      - type: object
        properties:
          questionnaire:
            type: array
            description: Answers on custom registration questions
            minItems: 0
            items:
              $ref: '#/components/schemas/RegAnswerModel'
    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
    RegistrantMinimalModel:
      allOf:
      - $ref: '#/components/schemas/RcwBaseContactModel'
      - type: object
        required:
        - firstName
        - lastName
        - email
        properties:
          email:
            $ref: '#/components/schemas/RcwEmailModel'
          joinUri:
            type: string
            format: uri
            readOnly: true
            maxLength: 256
            minLength: 5
            description: The personalized URI for this registrant to join the Webinar
            example: https://v.ringcentral.com/w/a/join/iuyef77fsj473wn10ashjfk34
          cancellationUri:
            type: string
            format: uri
            readOnly: true
            maxLength: 256
            minLength: 5
            description: The personalized URI for this registrant to cancel the registration
            example: https://abcde12345.webinar.ringcentral.com/register?jlt=iuyef77fsj473wn10ashjfk34&action=cancel
          registeredPostWebinar:
            type: boolean
            description: Indicates if the registrant was registered to on-demand webinar
            readOnly: true
            nullable: true
    FixedAnswerModel:
      allOf:
      - $ref: '#/components/schemas/RegQuestionBaseModel'
      - type: object
        required:
        - answerIds
        properties:
          answerIds:
            type: array
            description: The list of answer IDs
            minItems: 1
            items:
              type: string
    RegistrantBaseModel:
      allOf:
      - $ref: '#/components/schemas/RegistrantMinimalModel'
      - type: object
        properties:
          visitorId:
            type: string
            description: Visitor ID passed from registration page
          externalId:
            type: string
            description: ID of a registrant passed from external system
          registrationTime:
            type: string
            description: Registration time (can be earlier than "creationTime" due to indirect persistence)
            format: date-time
            readOnly: true
          ipAddress:
            type: string
            x-sensitive-data: normalized-anonymized
            format: ipv4
            description: IP address of the registrant's user agent
          source:
            type: string
            description: Registration channel source (coming from registration URI)
          participantId:
            type: string
            description: ID of session participant (from Runtime Service - if this registrant attended the webinar)
  parameters:
    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
    RegistrantId:
      name: registrantId
      in: path
      description: Identifier of the Session Registrant
      required: true
      style: simple
      explode: false
      schema:
        type: string
        minLength: 1
        maxLength: 20
      example: '77777777'
    IncludeQuestionnaire:
      name: includeQuestionnaire
      in: query
      description: Indicates if registrant's "questionnaire" should be returned
      required: false
      explode: false
      schema:
        type: boolean
        default: false
    RcwSessionId:
      name: sessionId
      in: path
      description: Identifier of the Session.
      required: true
      style: simple
      explode: false
      schema:
        type: string
        minLength: 1
        maxLength: 20
      example: '353535353'
    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
  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'
    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'
    Conflict:
      description: 'General response with **HTTP 409 "Conflict"** status.<br>

        Reasons: the requested modification operation causes a conflict (for example, unique constraint violation).

        The error definition may contain reference to particular parameter(s) which caused the conflict.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ParameterizedErrorResponseModel'
    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'
  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