Zoom Webinar API

Provides the ability to manage details of webinars operated via Zoom.

OpenAPI Specification

zoom-webinar--openapi-original.yml Raw ↑
openapi: 3.0.1
info:
  title: 'Zoom webinar/'
  description: Needs description.
  contact:
    name: Zoom Developers
    url: https://zoom.us/developer
    email: [email protected]
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: 1.0.0
externalDocs:
  description: Zoom REST API Documentation
  url: https://zoom.github.io/api
servers:
  - url: https://api.zoom.us/v1
security:
  - api_key: []
  - api_secret: []
tags:
  - name: Webinar
paths:
  /webinar/attendees/list:
    post:
      tags:
        - Webinar
      description: |+
        Get ended webinar attendees

      operationId: webinarAttendeesList
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                uuid:
                  type: string
                  description: Webinar uuid. It can be fetched by /v1/webinar/uuid/list.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                attendees:
                  - first_name: Zoomie
                    last_name: Userton
                    email: email_address
                    join_time: '2015-09-18T09:41:39.000Z'
                    leave_time: '2015-09-18T09:42:12.000Z'
                    time_in_session: '8'
                    attended: 'Yes'
                    custom_questions:
                      ssssss: ' sssss'
                      which one do you like?: sss
                    questions:
                      country: US
                      address: 1234 Some Street
                      city: Zoomville
  /webinar/create:
    post:
      tags:
        - Webinar
      description: |+
        Create a webinar on Zoom, return the created webinar start and join URL.

      operationId: webinarCreate
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - topic
                - type
              type: object
              properties:
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user under this account.
                    Cannot be updated after creation.
                topic:
                  type: string
                  description: Webinar topic. Max of 300 characters.
                type:
                  type: string
                  description: >-
                    5 webinar, 6 recurrence webinar, 9 recurring webinar(With
                    Fixed Time)
                  default: '5'
                start_time:
                  type: string
                  description: >-
                    Webinar start time in ISO datetime format. For scheduled
                    webinar only. Should be UTC time, such as
                    2012-11-25T12:00:00Z.
                duration:
                  type: string
                  description: Webinar duration (minutes). For scheduled webinar only.
                timezone:
                  type: string
                  description: >-
                    Timezone to format start_time, like "America/Los_Angeles".
                    For scheduled Webinar only. For this parameter value please
                    refer to the id value in timezone list JSON file.
                password:
                  type: string
                  description: >-
                    Webinar password. Password may only contain the following
                    characters: [a-z A-Z 0-9 @ - _
                  default: ' 10 characters'
                recurrence:
                  type: string
                  description: >-
                    Recurrence Webinar Settings. For recurring webinar with
                    fixed time only. <br><br>"type": Recurrence Webinar Type. 1
                    means Daily, 2 means Weekly, 3 means Monthly.
                    <br>"repeat_interval": Recurrence Webinar Repeat Interval.
                    Defaults to 1. For a Daily Webinar, max of 90. For a Weekly
                    Webinar, max of 12. For a Monthly Webinar, max of 3.
                    <br>"weekly_days": Recurrence Webinar Occurs on week days,
                    multiple value separated by comma. 1 means Sunday, 2 means
                    Monday, 3 means Tuesday, 4 means Wednesday, 5 means
                    Thursday, 6 means Friday, 7 means Saturday.
                    <br>"monthly_day": Recurrence Webinar Occurs on a month day.
                    The value range is from 1 to 31. <br>"monthly_week":
                    Recurrence Webinar Occurs on the week of a month. -1 means
                    Last week, 1 means First week, 2 means Second week, 3 means
                    Third week, 4 means Fourth week. <br>"monthly_week_day":
                    Recurrence Webinar Occurs on the week day of a month. A
                    single value: 1 means Sunday, 2 means Monday, 3 means
                    Tuesday, 4 means Wednesday, 5 means Thursday, 6 means
                    Friday, 7 means Saturday. <br>"end_times": Recurrence
                    Webinar End occurrences times. Defaults to 1. Max of 50.
                    <br>"end_date_time": Recurrence Webinar End Date. Should be
                    UTC time, such as 2012-11-25T12:00:00Z.
                approval_type:
                  type: string
                  description: >-
                    Approval type. 0 means Automatically Approve. 1 means
                    Manually Approve. 2 means No Registration Required.
                  default: '2'
                registration_type:
                  type: string
                  description: >-
                    Registration type. 1 means Attendees register once and can
                    attend any of the occurrences, 2 means Attendees need to
                    register for each occurrence to attend, 3 means Attendees
                    register once and can choose one or more occurrences to
                    attend. For recurring meeting with fixed time only.
                  default: '1'
                agenda:
                  type: string
                  description: Webinar description.
                option_audio:
                  type: string
                  description: Webinar audio options. Can be "both", "telephony", "voip".
                  default: both
                option_host_video:
                  type: boolean
                  description: Start video when host join Webinar.
                  default: true
                option_panelist_video:
                  type: boolean
                  description: Start video when panelist join Webinar.
                  default: true
                option_practice_session:
                  type: boolean
                  description: Enable Practice Session.
                  default: false
                option_enforce_login:
                  type: boolean
                  description: Only signed-in users can join this Webinar.
                  default: false
                option_enforce_login_domains:
                  type: string
                  description: >-
                    Only signed-in users with specified domains can join
                    Webinar.
                option_alternative_hosts:
                  type: string
                  description: Alternative hosts.
                option_alternative_host_ids:
                  type: string
                  description: Alternative hosts IDs.
                option_auto_record_type:
                  type: string
                  description: >-
                    Automatically record type. Can be "local", "cloud" or
                    "none".
                  default: local
                panelists:
                  type: string
                  description: >-
                    Webinar Panelists, should be JSON format:
                    [{"name":"xxx","email":"[email protected]"},
                    {"name":"xxx","email":"[email protected]"}].
                language:
                  type: string
                  description: >-
                    Language setting of email to panelists. This value should be
                    "en-US", "en", "zh-CN", "zh", "en-ES", "es", "fr-FR" or
                    "fr".
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                uuid: unique_id
                id: '123456789'
                host_id: unique_id
                topic: create webinar via rest api
                agenda: ''
                status: 0
                option_start_type: video
                option_audio: both
                option_enforce_login: false
                'option_enforce_login_domains ': ''
                option_alternative_hosts: ''
                type: 5
                start_time: ' 2015-02-08T12:50:30Z'
                duration: 0
                timezone: America/Los_Angeles
                start_url: https://zoom.us/s/123456789?zak=xxxxxx
                join_url: https://zoom.us/j/123456789
                registration_url: ''
                created_at: '2015-01-22T07:09:49.000Z'
  /webinar/delete:
    post:
      tags:
        - Webinar
      description: |+
        Delete a webinar on Zoom, return the deleted webinar ID.

      operationId: webinarDelete
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    webinar host user ID. Can be any user who enabled webinar
                    under this account.
                occurrence_id:
                  type: string
                  description: Occurrence ID, could get this value from Webinar Get API.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                id: '123456789'
                deleted_at: '2012-11-25T12:00:00.000Z'
  /webinar/end:
    post:
      tags:
        - Webinar
      description: |+
        End a Webinar on Zoom, return the deleted Webinar ID

      operationId: webinarEnd
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                id: '123456789'
                ended_at: '2012-11-25T12:00:00.000Z'
  /webinar/get:
    post:
      tags:
        - Webinar
      description: |+
        Get a Webinar on Zoom via Webinar ID, return the Webinar info

      operationId: webinarGet
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                uuid: unique_id
                id: '123456789'
                start_url: https://zoom.us/s/123456789?zak=xxxxxx
                join_url: https://zoom.us/j/123456789
                registration_url: ''
                created_at: '2012-11-25T12:00:00.000Z'
                host_id: unique_id
                topic: Topic for this meeting
                type: 5
                start_time: '2012-11-25T12:00:00.000Z'
                duration: 30
                timezone: America/Los_Angeles
                agenda: ''
                option_start_type: video
                option_audio: both
                option_enforce_login: false
                'option_enforce_login_domains ': ''
                option_alternative_hosts: ''
                status: 0
                occurrences:
                  - occurrence_id: '1483210260000'
                    start_time: '2017-01-01T02:51:00.000Z'
                    duration: 60
  /webinar/list:
    post:
      tags:
        - Webinar
      description: |+
        List all registrationless Webinars on Zoom

      operationId: webinarList
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
              type: object
              properties:
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                page_size:
                  type: string
                  description: >-
                    The amount of records returns within a single API call.
                    Defaults to 30. Max of 300 meetings.
                  default: '30'
                page_number:
                  type: string
                  description: Current page number of returned records. Default to 1.
                  default: '1'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                page_count: 5
                total_records: 235
                page_number: 1
                page_size: 50
                webinars:
                  - uuid: unique_id
                    id: '123456789'
                    start_url: https://zoom.us/s/123456789?zak=xxxxxx
                    join_url: https://zoom.us/j/123456789
                    created_at: '2012-11-25T12:00:00.000Z'
                    host_id: unique_id
                    topic: Topic for this meeting
                    type: 5
                    start_time: '2012-11-25T12:00:00.000Z'
                    duration: 30
                    timezone: America/Los_Angeles
                    agenda: ''
                    option_start_type: video
                    option_audio: both
                    option_enforce_login: false
                    'option_enforce_login_domains ': ''
                    option_alternative_hosts: ''
                    status: 0
  /webinar/list/registration:
    post:
      tags:
        - Webinar
      description: |+
        List all the upcoming registration-based Webinars on Zoom

      operationId: webinarListRegistration
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
              type: object
              properties:
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                page_size:
                  type: string
                  description: >-
                    The amount of records returns within a single API call.
                    Defaults to 30. Max of 300 meetings.
                  default: '30'
                page_number:
                  type: string
                  description: Current page number of returned records. Default to 1.
                  default: '1'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                page_count: 5
                total_records: 235
                page_number: 1
                page_size: 50
                webinars:
                  - uuid: unique_id
                    id: '123456789'
                    start_url: https://zoom.us/s/123456789?zak=xxxxxx
                    join_url: https://zoom.us/j/123456789
                    created_at: '2012-11-25T12:00:00.000Z'
                    host_id: unique_id
                    topic: Topic for this Webinar
                    type: 5
                    start_time: '2012-11-25T12:00:00.000Z'
                    duration: 30
                    timezone: America/Los_Angeles
                    agenda: ''
                    option_start_type: video
                    option_audio: both
                    status: 0
  /webinar/panelists:
    post:
      tags:
        - Webinar
      description: |+
        Get all the Webinar Panelists on Zoom

      operationId: webinarPanelists
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                total_records: 1
                panelists:
                  - name: Zoomie Userton
                    email: email_address
                    join_url: >-
                      https://www.zoom.us/w/552681828?tk=TMnju_IjiU7Fx3eSkrajn2irvyMBNQ4XCW6cutSPntg.DQEAAAAAIPFBZBYwbzhKUUlXVVN3bW9Ed05QUmdvU2hBAA
  /webinar/polls:
    post:
      tags:
        - Webinar
      description: |+
        Get Ended Webinar Polls

      operationId: webinarPolls
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                uuid:
                  type: string
                  description: Webinar uuid. It can be fetched by /v1/webinar/uuid/list.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                id: '123456789'
                uuid: unique_id
                start_time: '2017-02-09T07:15:48.000Z'
                questions:
                  - name: Zoomie Userton
                    email: email_address
                    question_details:
                      - question: question?
                        answer: answer
  /webinar/questions:
    post:
      tags:
        - Webinar
      description: |+
        Get Ended Webinar Q&A

      operationId: webinarQuestions
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                uuid:
                  type: string
                  description: Webinar uuid. It can be fetched by /v1/webinar/uuid/list.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                id: '123456789'
                uuid: unique_id
                start_time: '2017-02-09T07:15:48.000Z'
                questions:
                  - name: Zoomie Userton
                    email: email_address
                    question_details:
                      - question: question?
                        answer: answer
  /webinar/register:
    post:
      tags:
        - Webinar
      description: |+
        Register for a webinar

      operationId: webinarRegister
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - email
                - first_name
                - id
                - last_name
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                email:
                  type: string
                  description: A valid email address.
                first_name:
                  type: string
                  description: User’s first name.
                last_name:
                  type: string
                  description: User’s last name.
                address:
                  type: string
                  description: Address.
                city:
                  type: string
                  description: City.
                country:
                  type: string
                  description: >-
                    Country. For this parameter value please refer to the id
                    value in country list JSON file
                zip:
                  type: string
                  description: Zip/Postal Code.
                state:
                  type: string
                  description: State/Province.
                phone:
                  type: string
                  description: Phone.
                industry:
                  type: string
                  description: Industry.
                org:
                  type: string
                  description: Organization.
                job_title:
                  type: string
                  description: Job Title.
                purchasing_time_frame:
                  type: string
                  description: >-
                    Purchasing Time Frame, should be "Within a month", "1-3
                    months", "4-6 months", "More than 6 months", "No timeframe".
                role_in_purchase_process:
                  type: string
                  description: >-
                    Role in Purchase Process, should be "Decision Maker",
                    "Evaluator/Recommender", "Influencer", "Not involved".
                no_of_employees:
                  type: string
                  description: >-
                    Number of Employees, should be "1-20", "21-50", "51-100",
                    "101-250", "251-500", "501-1,000", "1,001-5,000",
                    "5,001-10,000", "More than 10,000".
                comments:
                  type: string
                  description: Questions & Comments.
                custom_questions:
                  type: string
                  description: >-
                    Custom Questions, should be JSON format:
                    [{"title":"field_name1","value":"xxx"},{"title":"field_name2","value":"xxx"}].
                language:
                  type: string
                  description: >-
                    Language setting of email. This value should be "en-US",
                    "en", "zh-CN", "zh", "en-ES", "es", "fr-FR" or "fr".
                occurrence_ids:
                  type: string
                  description: Occurrence IDs, could get this value from Webinar Get API.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                registrant_id: unique_id
                id: '123456789'
                topic: webinar registration
                start_time: '2016-02-21T04:00:00.000Z'
                join_url: >-
                  https://www.zoom.us/w/123456789?tk=2DsQiu6nZVsZVATrPLvXgqPvw8mmKyxgAGaDMizLv34.DQEAAAAAM9AWXhZ2Nm5vRjIyMlRoUzE3ZktWM3l4cHVRAA
  /webinar/registrants/approve:
    post:
      tags:
        - Webinar
      description: |+
        Approve pending registrants on Zoom Webinar.

      operationId: webinarRegistrantsApprove
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
                - registrant_ids
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                registrant_ids:
                  type: string
                  description: Pending approval registrant ids.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                id: '421431292'
                updated_at: '2016-08-18T02:11:40.000Z'
  /webinar/registrants/list:
    post:
      tags:
        - Webinar
      description: >+
        List webinar registrants on Zoom, include pending approval registrants
        and approved registrants.

      operationId: webinarRegistrantsList
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                type:
                  type: string
                  description: >-
                    0 means pending approval registrants, 1 means approved
                    registrants.
                  default: '0'
                page_size:
                  type: string
                  description: >-
                    The amount of records returns within a single API call.
                    Defaults to 30.
                  default: '30'
                page_number:
                  type: string
                  description: Current page number of returned records. Default to 1.
                  default: '1'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                page_count: 1
                page_number: 1
                page_size: 30
                total_records: 1
                type: 0
                users:
                  - id: unique_id
                    first_name: Zoomie
                    last_name: Userton
                    email: email_address
                    registration_time: '2016-08-18T01:45:26.000Z'
  /webinar/registration:
    post:
      tags:
        - Webinar
      description: |+
        Gather Webinar registrants info

      operationId: webinarRegistration
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                occurrence_id:
                  type: string
                  description: Occurrence ID, could get this value from Webinar Get API.
                page_size:
                  type: string
                  description: >-
                    The amount of records returns within a single API call.
                    Defaults to 30.
                  default: '30'
                page_number:
                  type: string
                  description: Current page number of returned records. Default to 1.
                  default: '1'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                page_count: 1
                page_number: 1
                page_size: 30
                total_records: 1
                attendees:
                  - id: unique_id
                    first_name: Zoomie
                    last_name: Userton
                    create_time: '2015-08-23T03:03:48.000Z'
                    approval: approved
                    email: email_address
                    registration_url: >-
                      https://api.zoom.us/w/206388466?tk=n8-qbK4ocC73mPjIRlheMksYPxeWAhnktoUZq_xAqg8.DQEAAAAADE088hZKTXcxTllpelFjZXNfNDg0NlNKQ3lRAA
  /webinar/registration/cancel:
    post:
      tags:
        - Webinar
      description: |+
        Cancel Webinar Registration

      operationId: webinarRegistrationCancel
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
                - registrant_ids
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user who enabled webinar
                    under this account.
                occurrence_id:
                  type: string
                  description: Occurrence ID, could get this value from Webinar Get API.
                registrant_ids:
                  type: string
                  description: >-
                    Webinar registrant IDs, separated by comma. Max of 15
                    registrants.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                id: '844495467'
                updated_at: '2016-11-29T01:26:43.000Z'
  /webinar/update:
    post:
      tags:
        - Webinar
      description: |+
        Update Webinar info on Zoom via Webinar ID

      operationId: webinarUpdate
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - host_id
                - id
              type: object
              properties:
                id:
                  type: string
                  description: Webinar ID.
                host_id:
                  type: string
                  description: >-
                    Webinar host user ID. Can be any user under this account.
                    Cannot be updated after creation.
                topic:
                  type: string
 

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoom/refs/heads/main/openapi/zoom-webinar--openapi-original.yml