Zoom Meetings API

Create and manage Zoom meetings.

OpenAPI Specification

zoom-meetings-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Zoom / Account Meetings API
  description: Needs description.
  contact:
    name: Zoom Developers
    url: https://zoom.us/developer
    email: developer@zoom.us
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: 1.0.0
servers:
- url: https://api.zoom.us/v1
security:
- api_key: []
- api_secret: []
tags:
- name: Meetings
  description: Create and manage Zoom meetings.
  externalDocs:
    url: https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#tag/Meetings
paths:
  /users/{userId}/meetings:
    get:
      tags:
      - Meetings
      summary: Zoom List Meetings
      description: List all the meetings that were scheduled for a user. For user-level apps, pass the `me` value instead of the userId parameter.
      operationId: listMeetings
      parameters:
      - $ref: '#/components/parameters/UserIdPath'
      - name: type
        in: query
        description: The type of meeting. `scheduled` - All valid previous (unexpired) meetings, live meetings, and upcoming scheduled meetings. `live` - All the ongoing meetings. `upcoming` - All upcoming meetings including live meetings. `upcoming_meetings` - All upcoming meetings including live meetings. `previous_meetings` - All the previous meetings.
        schema:
          type: string
          enum:
          - scheduled
          - live
          - upcoming
          - upcoming_meetings
          - previous_meetings
          default: scheduled
        example: scheduled
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/PageNumber'
      responses:
        '200':
          description: Successfully retrieved the list of meetings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingList'
              examples:
                Listmeetings200Example:
                  summary: Default listMeetings 200 response
                  x-microcks-default: true
                  value:
                    page_count: 10
                    page_number: 10
                    page_size: 10
                    total_records: 10
                    next_page_token: example_value
                    meetings:
                    - uuid: '500123'
                      id: abc123
                      host_id: '500123'
                      topic: example_value
                      start_time: '2026-01-15T10:30:00Z'
                      duration: 10
                      timezone: example_value
                      created_at: '2026-01-15T10:30:00Z'
                      join_url: https://www.example.com
                      agenda: example_value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      tags:
      - Meetings
      summary: Zoom Create a Meeting
      description: Create a meeting for a user. For user-level apps, pass the `me` value instead of the userId parameter. A meeting can be scheduled, instant, or recurring.
      operationId: createMeeting
      parameters:
      - $ref: '#/components/parameters/UserIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeetingCreateRequest'
            examples:
              CreatemeetingRequestExample:
                summary: Default createMeeting request
                x-microcks-default: true
                value:
                  topic: example_value
                  type: 1
                  pre_schedule: true
                  start_time: '2026-01-15T10:30:00Z'
                  duration: 10
                  schedule_for: example_value
                  timezone: example_value
                  password: example_value
                  default_password: true
                  agenda: example_value
                  tracking_fields:
                  - field: example_value
                    value: example_value
                  recurrence:
                    type: 1
                    repeat_interval: 10
                    weekly_days: example_value
                    monthly_day: 10
                    monthly_week: -1
                    monthly_week_day: 1
                    end_times: 10
                    end_date_time: '2026-01-15T10:30:00Z'
                  settings:
                    host_video: true
                    participant_video: true
                    cn_meeting: true
                    in_meeting: true
                    join_before_host: true
                    jbh_time: 0
                    mute_upon_entry: true
                    watermark: true
                    use_pmi: true
                    approval_type: 0
                    registration_type: 1
                    audio: both
                    auto_recording: local
                    enforce_login: true
                    enforce_login_domains: example_value
                    alternative_hosts: example_value
                    alternative_hosts_email_notification: user@example.com
                    close_registration: true
                    waiting_room: true
                    global_dial_in_countries:
                    - {}
                    contact_name: example_value
                    contact_email: user@example.com
                    registrants_email_notification: user@example.com
                    registrants_confirmation_email: user@example.com
                    meeting_authentication: true
                    authentication_option: example_value
                    authentication_domains: example_value
                    authentication_name: example_value
                    show_share_button: true
                    allow_multiple_devices: true
                    encryption_type: enhanced_encryption
                    approved_or_denied_countries_or_regions:
                      enable: true
                      method: approve
                      approved_list: {}
                      denied_list: {}
                    breakout_room:
                      enable: true
                      rooms: {}
                    language_interpretation:
                      enable: true
                      interpreters: {}
                    focus_mode: true
                    meeting_invitees:
                    - {}
                    private_meeting: true
                    email_notification: user@example.com
                    host_save_video_order: true
                    continuous_meeting_chat:
                      enable: true
                      auto_add_invited_external_users: true
                  template_id: '500123'
      responses:
        '201':
          description: Meeting created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingCreateResponse'
              examples:
                Createmeeting201Example:
                  summary: Default createMeeting 201 response
                  x-microcks-default: true
                  value:
                    uuid: '500123'
                    id: abc123
                    host_id: '500123'
                    host_email: user@example.com
                    topic: example_value
                    type: 1
                    status: waiting
                    start_time: '2026-01-15T10:30:00Z'
                    duration: 10
                    timezone: example_value
                    agenda: example_value
                    created_at: '2026-01-15T10:30:00Z'
                    start_url: https://www.example.com
                    join_url: https://www.example.com
                    password: example_value
                    h323_password: example_value
                    pstn_password: example_value
                    encrypted_password: example_value
                    settings:
                      host_video: true
                      participant_video: true
                      cn_meeting: true
                      in_meeting: true
                      join_before_host: true
                      jbh_time: 0
                      mute_upon_entry: true
                      watermark: true
                      use_pmi: true
                      approval_type: 0
                      registration_type: 1
                      audio: both
                      auto_recording: local
                      enforce_login: true
                      enforce_login_domains: example_value
                      alternative_hosts: example_value
                      alternative_hosts_email_notification: user@example.com
                      close_registration: true
                      waiting_room: true
                      global_dial_in_countries:
                      - {}
                      contact_name: example_value
                      contact_email: user@example.com
                      registrants_email_notification: user@example.com
                      registrants_confirmation_email: user@example.com
                      meeting_authentication: true
                      authentication_option: example_value
                      authentication_domains: example_value
                      authentication_name: example_value
                      show_share_button: true
                      allow_multiple_devices: true
                      encryption_type: enhanced_encryption
                      approved_or_denied_countries_or_regions:
                        enable: true
                        method: approve
                        approved_list: {}
                        denied_list: {}
                      breakout_room:
                        enable: true
                        rooms: {}
                      language_interpretation:
                        enable: true
                        interpreters: {}
                      focus_mode: true
                      meeting_invitees:
                      - {}
                      private_meeting: true
                      email_notification: user@example.com
                      host_save_video_order: true
                      continuous_meeting_chat:
                        enable: true
                        auto_add_invited_external_users: true
                    recurrence:
                      type: 1
                      repeat_interval: 10
                      weekly_days: example_value
                      monthly_day: 10
                      monthly_week: -1
                      monthly_week_day: 1
                      end_times: 10
                      end_date_time: '2026-01-15T10:30:00Z'
                    occurrences:
                    - occurrence_id: '500123'
                      start_time: '2026-01-15T10:30:00Z'
                      duration: 10
                      status: available
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /meetings/{meetingId}:
    get:
      tags:
      - Meetings
      summary: Zoom Get Meeting Details
      description: Retrieve the details of a meeting. This returns detailed information about the specified meeting including settings, recurrence, and tracking fields.
      operationId: getMeeting
      parameters:
      - $ref: '#/components/parameters/MeetingIdPath'
      - name: occurrence_id
        in: query
        description: Meeting occurrence ID for recurring meetings.
        schema:
          type: string
        example: '500123'
      - name: show_previous_occurrences
        in: query
        description: Set to true to view meeting details of all previous occurrences of a recurring meeting.
        schema:
          type: boolean
          default: false
        example: true
      responses:
        '200':
          description: Successfully retrieved meeting details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingDetails'
              examples:
                Getmeeting200Example:
                  summary: Default getMeeting 200 response
                  x-microcks-default: true
                  value: {}
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      tags:
      - Meetings
      summary: Zoom Update a Meeting
      description: Update the details of a meeting. This can include topic, start time, duration, settings, and other meeting options.
      operationId: updateMeeting
      parameters:
      - $ref: '#/components/parameters/MeetingIdPath'
      - name: occurrence_id
        in: query
        description: Meeting occurrence ID for recurring meeting updates.
        schema:
          type: string
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeetingUpdateRequest'
            examples:
              UpdatemeetingRequestExample:
                summary: Default updateMeeting request
                x-microcks-default: true
                value:
                  topic: example_value
                  type: 1
                  start_time: '2026-01-15T10:30:00Z'
                  duration: 10
                  schedule_for: example_value
                  timezone: example_value
                  password: example_value
                  agenda: example_value
                  recurrence:
                    type: 1
                    repeat_interval: 10
                    weekly_days: example_value
                    monthly_day: 10
                    monthly_week: -1
                    monthly_week_day: 1
                    end_times: 10
                    end_date_time: '2026-01-15T10:30:00Z'
                  settings:
                    host_video: true
                    participant_video: true
                    cn_meeting: true
                    in_meeting: true
                    join_before_host: true
                    jbh_time: 0
                    mute_upon_entry: true
                    watermark: true
                    use_pmi: true
                    approval_type: 0
                    registration_type: 1
                    audio: both
                    auto_recording: local
                    enforce_login: true
                    enforce_login_domains: example_value
                    alternative_hosts: example_value
                    alternative_hosts_email_notification: user@example.com
                    close_registration: true
                    waiting_room: true
                    global_dial_in_countries:
                    - {}
                    contact_name: example_value
                    contact_email: user@example.com
                    registrants_email_notification: user@example.com
                    registrants_confirmation_email: user@example.com
                    meeting_authentication: true
                    authentication_option: example_value
                    authentication_domains: example_value
                    authentication_name: example_value
                    show_share_button: true
                    allow_multiple_devices: true
                    encryption_type: enhanced_encryption
                    approved_or_denied_countries_or_regions:
                      enable: true
                      method: approve
                      approved_list: {}
                      denied_list: {}
                    breakout_room:
                      enable: true
                      rooms: {}
                    language_interpretation:
                      enable: true
                      interpreters: {}
                    focus_mode: true
                    meeting_invitees:
                    - {}
                    private_meeting: true
                    email_notification: user@example.com
                    host_save_video_order: true
                    continuous_meeting_chat:
                      enable: true
                      auto_add_invited_external_users: true
                  tracking_fields:
                  - field: example_value
                    value: example_value
      responses:
        '204':
          description: Meeting updated successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      tags:
      - Meetings
      summary: Zoom Delete a Meeting
      description: Delete a meeting. This permanently removes the meeting from Zoom.
      operationId: deleteMeeting
      parameters:
      - $ref: '#/components/parameters/MeetingIdPath'
      - name: occurrence_id
        in: query
        description: Meeting occurrence ID for recurring meeting deletion.
        schema:
          type: string
        example: '500123'
      - name: schedule_for_reminder
        in: query
        description: Notify host and alternative host about the meeting cancellation via email.
        schema:
          type: boolean
          default: true
        example: true
      - name: cancel_meeting_reminder
        in: query
        description: Notify registrants about the meeting cancellation via email.
        schema:
          type: boolean
          default: false
        example: true
      responses:
        '204':
          description: Meeting deleted successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /meetings/{meetingId}/status:
    put:
      tags:
      - Meetings
      summary: Zoom Update Meeting Status
      description: End a meeting by updating its status. This can also recover a deleted meeting within a certain time frame.
      operationId: updateMeetingStatus
      parameters:
      - $ref: '#/components/parameters/MeetingIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  type: string
                  description: The action to take. `end` - End the meeting. `recover` - Recover a deleted meeting.
                  enum:
                  - end
                  - recover
            examples:
              UpdatemeetingstatusRequestExample:
                summary: Default updateMeetingStatus request
                x-microcks-default: true
                value:
                  action: end
      responses:
        '204':
          description: Meeting status updated successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /past_meetings/{meetingId}:
    get:
      tags:
      - Meetings
      summary: Zoom Get Past Meeting Details
      description: Retrieve information about a past meeting. The meeting UUID must be double-encoded if it contains `/` or `//` characters.
      operationId: getPastMeetingDetails
      parameters:
      - name: meetingId
        in: path
        required: true
        description: The meeting UUID. Each meeting instance will generate its own UUID. Double-encode if the UUID begins with `/` or contains `//`.
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: Successfully retrieved past meeting details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PastMeetingDetails'
              examples:
                Getpastmeetingdetails200Example:
                  summary: Default getPastMeetingDetails 200 response
                  x-microcks-default: true
                  value:
                    uuid: '500123'
                    id: abc123
                    host_id: '500123'
                    host_email: user@example.com
                    type: 1
                    topic: example_value
                    user_name: example_value
                    start_time: '2026-01-15T10:30:00Z'
                    end_time: '2026-01-15T10:30:00Z'
                    duration: 10
                    total_minutes: 10
                    participants_count: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /meetings/{meetingId}/invitation:
    get:
      tags:
      - Meetings
      summary: Zoom Get Meeting Invitation
      description: Retrieve the meeting invitation note for a specific meeting.
      operationId: getMeetingInvitation
      parameters:
      - $ref: '#/components/parameters/MeetingIdPath'
      responses:
        '200':
          description: Successfully retrieved the meeting invitation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  invitation:
                    type: string
                    description: Meeting invitation text.
              examples:
                Getmeetinginvitation200Example:
                  summary: Default getMeetingInvitation 200 response
                  x-microcks-default: true
                  value:
                    invitation: example_value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    PastMeetingDetails:
      type: object
      properties:
        uuid:
          type: string
          description: Unique meeting instance ID.
          example: '500123'
        id:
          type: integer
          format: int64
          description: Meeting ID.
          example: abc123
        host_id:
          type: string
          description: Host user ID.
          example: '500123'
        host_email:
          type: string
          format: email
          description: Host email address.
          example: user@example.com
        type:
          $ref: '#/components/schemas/MeetingType'
        topic:
          type: string
          description: Meeting topic.
          example: example_value
        user_name:
          type: string
          description: Display name of the meeting host.
          example: example_value
        start_time:
          type: string
          format: date-time
          description: Meeting start time.
          example: '2026-01-15T10:30:00Z'
        end_time:
          type: string
          format: date-time
          description: Meeting end time.
          example: '2026-01-15T10:30:00Z'
        duration:
          type: integer
          description: Meeting duration in minutes.
          example: 10
        total_minutes:
          type: integer
          description: Total meeting minutes across all participants.
          example: 10
        participants_count:
          type: integer
          description: Number of participants.
          example: 10
    Occurrence:
      type: object
      description: Meeting occurrence information for recurring meetings.
      properties:
        occurrence_id:
          type: string
          description: Occurrence ID.
          example: '500123'
        start_time:
          type: string
          format: date-time
          description: Start time of this occurrence.
          example: '2026-01-15T10:30:00Z'
        duration:
          type: integer
          description: Duration of this occurrence in minutes.
          example: 10
        status:
          type: string
          description: Occurrence status.
          enum:
          - available
          - deleted
          example: available
    MeetingType:
      type: integer
      description: 'Meeting type: 1 - Instant meeting, 2 - Scheduled meeting, 3 - Recurring meeting with no fixed time, 8 - Recurring meeting with a fixed time.'
      enum:
      - 1
      - 2
      - 3
      - 8
    MeetingCreateRequest:
      type: object
      properties:
        topic:
          type: string
          description: Meeting topic. Maximum 200 characters.
          maxLength: 200
          example: example_value
        type:
          $ref: '#/components/schemas/MeetingType'
        pre_schedule:
          type: boolean
          description: Whether to create a pre-scheduled meeting.
          default: false
          example: true
        start_time:
          type: string
          format: date-time
          description: Meeting start time. Only used for scheduled meetings (type 2) and recurring meetings with a fixed time (type 8). Use UTC format such as 2023-11-25T12:00:00Z.
          example: '2026-01-15T10:30:00Z'
        duration:
          type: integer
          description: Meeting duration in minutes. Used for scheduled meetings only.
          example: 10
        schedule_for:
          type: string
          description: Email address or user ID to schedule the meeting on behalf of.
          example: example_value
        timezone:
          type: string
          description: Timezone to format start_time (e.g., America/Los_Angeles). If not provided, defaults to the meeting host's timezone.
          example: example_value
        password:
          type: string
          description: 'Meeting passcode. May only contain the following characters: a-z A-Z 0-9 @ - _ *. Maximum 10 characters.'
          maxLength: 10
          example: example_value
        default_password:
          type: boolean
          description: Use the default passcode set in account settings.
          default: false
          example: true
        agenda:
          type: string
          description: Meeting description. Maximum 2000 characters.
          maxLength: 2000
          example: example_value
        tracking_fields:
          type: array
          description: Tracking fields for the meeting.
          items:
            type: object
            properties:
              field:
                type: string
                description: Tracking field name.
              value:
                type: string
                description: Tracking field value.
          example: []
        recurrence:
          $ref: '#/components/schemas/Recurrence'
        settings:
          $ref: '#/components/schemas/MeetingSettings'
        template_id:
          type: string
          description: Meeting template ID to use.
          example: '500123'
    Recurrence:
      type: object
      description: Recurrence settings for recurring meetings.
      properties:
        type:
          type: integer
          description: Recurrence type. 1 - Daily, 2 - Weekly, 3 - Monthly.
          enum:
          - 1
          - 2
          - 3
          example: 1
        repeat_interval:
          type: integer
          description: Interval at which the meeting recurs. For daily, max 90. For weekly, max 12. For monthly, max 3.
          example: 10
        weekly_days:
          type: string
          description: Days of the week for weekly recurrence. 1-Sunday through 7-Saturday. Comma separated for multiple days.
          example: example_value
        monthly_day:
          type: integer
          description: Day of the month for monthly recurrence (1-31).
          example: 10
        monthly_week:
          type: integer
          description: Week of the month for monthly recurrence. -1 - Last week, 1 - First, 2 - Second, 3 - Third, 4 - Fourth.
          enum:
          - -1
          - 1
          - 2
          - 3
          - 4
          example: -1
        monthly_week_day:
          type: integer
          description: Day of the week for monthly recurrence. 1-Sunday through 7-Saturday.
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          example: 1
        end_times:
          type: integer
          description: Number of times the meeting will recur before ending. Cannot be used with end_date_time. Maximum 365 for daily, 99 for weekly and monthly.
          maximum: 365
          default: 1
          example: 10
        end_date_time:
          type: string
          format: date-time
          description: The end date-time for the recurrence. Cannot be used with end_times.
          example: '2026-01-15T10:30:00Z'
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          description: Error code.
          example: 10
        message:
          type: string
          description: Error message.
          example: example_value
        errors:
          type: array
          description: Detailed error messages.
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
          example: []
    MeetingSummary:
      type: object
      properties:
        uuid:
          type: string
          description: Unique meeting instance ID.
          example: '500123'
        id:
          type: integer
          format: int64
          description: Meeting ID (meeting number).
          example: abc123
        host_id:
          type: string
          description: ID of the user who is the meeting host.
          example: '500123'
        topic:
          type: string
          description: Meeting topic.
          example: example_value
        type:
          $ref: '#/components/schemas/MeetingType'
        start_time:
          type: string
          format: date-time
          description: Meeting start time in UTC.
          example: '2026-01-15T10:30:00Z'
        duration:
          type: integer
          description: Meeting duration in minutes.
          example: 10
        timezone:
          type: string
          description: Timezone for the meeting start time.
          example: example_value
        created_at:
          type: string
          format: date-time
          description: Time the meeting was created.
          example: '2026-01-15T10:30:00Z'
        join_url:
          type: string
          format: uri
          description: URL for participants to join the meeting.
          example: https://www.example.com
        agenda:
          type: string
          description: Meeting agenda or description.
          example: example_value
    MeetingSettings:
      type: object
      description: Meeting settings and options.
      properties:
        host_video:
          type: boolean
          description: Start video when the host joins the meeting.
          default: true
          example: true
        participant_video:
          type: boolean
          description: Start video when participants join the meeting.
          example: true
        cn_meeting:
          type: boolean
          description: Host meeting in China.
          default: false
          example: true
        in_meeting:
          type: boolean
          description: Host meeting in India.
          default: false
          example: true
        join_before_host:
          type: boolean
          description: Allow participants

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