Zoom · Schema

Zoom Meeting API Core Models

JSON Schema definitions for core Zoom Meeting API data models including meetings, participants, registrants, recordings, polls, and webhook events.

ChatCollaborationCommunicationsMeetingsVideo ConferencingVideosWebinars
View JSON Schema on GitHub

JSON Schema

zoom-meeting-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-search/zoom/json-schema/zoom-meeting-schema.json",
  "title": "Zoom Meeting API Core Models",
  "description": "JSON Schema definitions for core Zoom Meeting API data models including meetings, participants, registrants, recordings, polls, and webhook events.",
  "type": "object",
  "$defs": {
    "MeetingType": {
      "title": "Meeting Type",
      "description": "The type of Zoom meeting. 1 = Instant meeting, 2 = Scheduled meeting, 3 = Recurring meeting with no fixed time, 4 = Personal Meeting Room, 8 = Recurring meeting with a fixed time.",
      "type": "integer",
      "enum": [1, 2, 3, 4, 8]
    },
    "MeetingStatus": {
      "title": "Meeting Status",
      "description": "The current status of a meeting.",
      "type": "string",
      "enum": ["waiting", "started", "finished"]
    },
    "Meeting": {
      "title": "Meeting",
      "description": "A Zoom meeting object representing a scheduled, instant, or recurring meeting.",
      "type": "object",
      "required": ["id", "topic", "type"],
      "properties": {
        "uuid": {
          "type": "string",
          "description": "Unique meeting instance identifier. Each meeting instance generates its own UUID."
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "The meeting ID, also known as the meeting number."
        },
        "host_id": {
          "type": "string",
          "description": "The user ID of the meeting host."
        },
        "host_email": {
          "type": "string",
          "format": "email",
          "description": "Email address of the meeting host."
        },
        "assistant_id": {
          "type": "string",
          "description": "Unique identifier of the scheduler who scheduled this meeting on behalf of the host."
        },
        "topic": {
          "type": "string",
          "description": "Meeting topic. Maximum 200 characters.",
          "maxLength": 200
        },
        "type": {
          "$ref": "#/$defs/MeetingType"
        },
        "status": {
          "$ref": "#/$defs/MeetingStatus"
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "description": "Meeting start time in UTC/GMT. Only used for scheduled and recurring meetings."
        },
        "duration": {
          "type": "integer",
          "description": "Meeting duration in minutes.",
          "minimum": 0
        },
        "timezone": {
          "type": "string",
          "description": "Timezone for the meeting (e.g., America/Los_Angeles). See IANA Time Zone Database.",
          "examples": ["America/Los_Angeles", "America/New_York", "Europe/London", "Asia/Tokyo"]
        },
        "agenda": {
          "type": "string",
          "description": "Meeting description or agenda. Maximum 2000 characters.",
          "maxLength": 2000
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the meeting was created."
        },
        "start_url": {
          "type": "string",
          "format": "uri",
          "description": "URL for the host to start the meeting. This URL should only be used by the host and expires after a single use."
        },
        "join_url": {
          "type": "string",
          "format": "uri",
          "description": "URL for participants to join the meeting."
        },
        "password": {
          "type": "string",
          "description": "Meeting passcode. May only contain a-z, A-Z, 0-9, @, -, _, *. Maximum 10 characters.",
          "maxLength": 10
        },
        "h323_password": {
          "type": "string",
          "description": "H.323/SIP room system passcode. Only numbers, maximum 16 characters.",
          "maxLength": 16,
          "pattern": "^[0-9]*$"
        },
        "pstn_password": {
          "type": "string",
          "description": "PSTN password for phone dial-in."
        },
        "encrypted_password": {
          "type": "string",
          "description": "Encrypted passcode for the meeting link."
        },
        "pmi": {
          "type": "integer",
          "format": "int64",
          "description": "Personal Meeting ID, if applicable."
        },
        "tracking_fields": {
          "type": "array",
          "description": "Tracking fields configured for the meeting.",
          "items": {
            "$ref": "#/$defs/TrackingField"
          }
        },
        "occurrences": {
          "type": "array",
          "description": "Array of occurrence objects for recurring meetings.",
          "items": {
            "$ref": "#/$defs/Occurrence"
          }
        },
        "settings": {
          "$ref": "#/$defs/MeetingSettings"
        },
        "recurrence": {
          "$ref": "#/$defs/Recurrence"
        },
        "pre_schedule": {
          "type": "boolean",
          "description": "Whether this is a pre-scheduled meeting.",
          "default": false
        }
      }
    },
    "MeetingSummary": {
      "title": "Meeting Summary",
      "description": "A compact meeting object returned in list responses.",
      "type": "object",
      "properties": {
        "uuid": {
          "type": "string",
          "description": "Unique meeting instance ID."
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "Meeting ID (meeting number)."
        },
        "host_id": {
          "type": "string",
          "description": "ID of the meeting host."
        },
        "topic": {
          "type": "string",
          "description": "Meeting topic."
        },
        "type": {
          "$ref": "#/$defs/MeetingType"
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "description": "Meeting start time."
        },
        "duration": {
          "type": "integer",
          "description": "Meeting duration in minutes."
        },
        "timezone": {
          "type": "string",
          "description": "Timezone."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Time the meeting was created."
        },
        "join_url": {
          "type": "string",
          "format": "uri",
          "description": "URL for participants to join."
        },
        "agenda": {
          "type": "string",
          "description": "Meeting description."
        }
      }
    },
    "MeetingSettings": {
      "title": "Meeting Settings",
      "description": "Configuration settings for a Zoom meeting.",
      "type": "object",
      "properties": {
        "host_video": {
          "type": "boolean",
          "description": "Start video when the host joins the meeting.",
          "default": true
        },
        "participant_video": {
          "type": "boolean",
          "description": "Start video when participants join the meeting.",
          "default": false
        },
        "cn_meeting": {
          "type": "boolean",
          "description": "Host meeting in China.",
          "default": false
        },
        "in_meeting": {
          "type": "boolean",
          "description": "Host meeting in India.",
          "default": false
        },
        "join_before_host": {
          "type": "boolean",
          "description": "Allow participants to join before the host.",
          "default": false
        },
        "jbh_time": {
          "type": "integer",
          "description": "Minutes before the host joins that participants can join. 0 = any time, 5 = 5 minutes, 10 = 10 minutes.",
          "enum": [0, 5, 10]
        },
        "mute_upon_entry": {
          "type": "boolean",
          "description": "Mute participants upon entry.",
          "default": false
        },
        "watermark": {
          "type": "boolean",
          "description": "Add watermark when viewing a shared screen.",
          "default": false
        },
        "use_pmi": {
          "type": "boolean",
          "description": "Use Personal Meeting ID.",
          "default": false
        },
        "approval_type": {
          "type": "integer",
          "description": "Registration approval type. 0 = Automatically approve, 1 = Manually approve, 2 = No registration required.",
          "enum": [0, 1, 2],
          "default": 2
        },
        "registration_type": {
          "type": "integer",
          "description": "Registration type for recurring meetings. 1 = Register once and attend any, 2 = Register for each, 3 = Register once and choose occurrences.",
          "enum": [1, 2, 3],
          "default": 1
        },
        "audio": {
          "type": "string",
          "description": "How participants can join the meeting audio.",
          "enum": ["both", "telephony", "voip", "thirdParty"],
          "default": "both"
        },
        "auto_recording": {
          "type": "string",
          "description": "Automatic recording configuration.",
          "enum": ["local", "cloud", "none"],
          "default": "none"
        },
        "enforce_login": {
          "type": "boolean",
          "description": "Only authenticated users can join.",
          "default": false
        },
        "enforce_login_domains": {
          "type": "string",
          "description": "Only users with specified email domains can join."
        },
        "alternative_hosts": {
          "type": "string",
          "description": "Alternative host email addresses, comma separated."
        },
        "alternative_hosts_email_notification": {
          "type": "boolean",
          "description": "Send email notification to alternative hosts.",
          "default": true
        },
        "close_registration": {
          "type": "boolean",
          "description": "Close registration after event date.",
          "default": false
        },
        "waiting_room": {
          "type": "boolean",
          "description": "Enable the waiting room.",
          "default": false
        },
        "global_dial_in_countries": {
          "type": "array",
          "description": "List of countries for global dial-in numbers.",
          "items": {
            "type": "string"
          }
        },
        "contact_name": {
          "type": "string",
          "description": "Contact name for meeting registration."
        },
        "contact_email": {
          "type": "string",
          "format": "email",
          "description": "Contact email for meeting registration."
        },
        "meeting_authentication": {
          "type": "boolean",
          "description": "Require authentication to join.",
          "default": false
        },
        "encryption_type": {
          "type": "string",
          "description": "Meeting encryption type.",
          "enum": ["enhanced_encryption", "e2ee"],
          "default": "enhanced_encryption"
        },
        "breakout_room": {
          "$ref": "#/$defs/BreakoutRoomSettings"
        },
        "language_interpretation": {
          "$ref": "#/$defs/LanguageInterpretationSettings"
        },
        "focus_mode": {
          "type": "boolean",
          "description": "Enable focus mode.",
          "default": false
        },
        "private_meeting": {
          "type": "boolean",
          "description": "Make the meeting private.",
          "default": false
        },
        "email_notification": {
          "type": "boolean",
          "description": "Send email notification when meeting starts.",
          "default": true
        },
        "continuous_meeting_chat": {
          "type": "object",
          "description": "Continuous meeting chat settings.",
          "properties": {
            "enable": {
              "type": "boolean"
            },
            "auto_add_invited_external_users": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "Recurrence": {
      "title": "Recurrence",
      "description": "Recurrence configuration for recurring meetings.",
      "type": "object",
      "required": ["type"],
      "properties": {
        "type": {
          "type": "integer",
          "description": "Recurrence type. 1 = Daily, 2 = Weekly, 3 = Monthly.",
          "enum": [1, 2, 3]
        },
        "repeat_interval": {
          "type": "integer",
          "description": "Interval at which the meeting recurs. For daily max 90, weekly max 12, monthly max 3.",
          "minimum": 1
        },
        "weekly_days": {
          "type": "string",
          "description": "Days of the week for weekly recurrence. Comma-separated values 1(Sun) through 7(Sat).",
          "pattern": "^[1-7](,[1-7])*$"
        },
        "monthly_day": {
          "type": "integer",
          "description": "Day of the month for monthly recurrence.",
          "minimum": 1,
          "maximum": 31
        },
        "monthly_week": {
          "type": "integer",
          "description": "Week of the month for monthly recurrence. -1 = Last week.",
          "enum": [-1, 1, 2, 3, 4]
        },
        "monthly_week_day": {
          "type": "integer",
          "description": "Day of the week for monthly recurrence. 1(Sun) through 7(Sat).",
          "enum": [1, 2, 3, 4, 5, 6, 7]
        },
        "end_times": {
          "type": "integer",
          "description": "Number of times the meeting will recur before ending. Cannot be used with end_date_time.",
          "minimum": 1,
          "maximum": 365,
          "default": 1
        },
        "end_date_time": {
          "type": "string",
          "format": "date-time",
          "description": "The end date-time for the recurrence. Cannot be used with end_times."
        }
      }
    },
    "Occurrence": {
      "title": "Occurrence",
      "description": "A single occurrence of a recurring meeting.",
      "type": "object",
      "properties": {
        "occurrence_id": {
          "type": "string",
          "description": "Occurrence ID."
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "description": "Start time of this occurrence."
        },
        "duration": {
          "type": "integer",
          "description": "Duration of this occurrence in minutes."
        },
        "status": {
          "type": "string",
          "description": "Occurrence status.",
          "enum": ["available", "deleted"]
        }
      }
    },
    "TrackingField": {
      "title": "Tracking Field",
      "description": "A tracking field set for a meeting.",
      "type": "object",
      "properties": {
        "field": {
          "type": "string",
          "description": "Tracking field label/name."
        },
        "value": {
          "type": "string",
          "description": "Tracking field value."
        },
        "visible": {
          "type": "boolean",
          "description": "Whether the field is visible to participants."
        }
      }
    },
    "BreakoutRoomSettings": {
      "title": "Breakout Room Settings",
      "description": "Breakout room configuration for a meeting.",
      "type": "object",
      "properties": {
        "enable": {
          "type": "boolean",
          "description": "Enable breakout rooms."
        },
        "rooms": {
          "type": "array",
          "description": "Pre-assigned breakout rooms.",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Breakout room name."
              },
              "participants": {
                "type": "array",
                "description": "Email addresses of participants assigned to this room.",
                "items": {
                  "type": "string",
                  "format": "email"
                }
              }
            }
          }
        }
      }
    },
    "LanguageInterpretationSettings": {
      "title": "Language Interpretation Settings",
      "description": "Language interpretation configuration for a meeting.",
      "type": "object",
      "properties": {
        "enable": {
          "type": "boolean",
          "description": "Enable language interpretation."
        },
        "interpreters": {
          "type": "array",
          "description": "List of interpreters.",
          "items": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "format": "email",
                "description": "Interpreter email address."
              },
              "languages": {
                "type": "string",
                "description": "Comma-separated language codes the interpreter supports."
              }
            }
          }
        }
      }
    },
    "Participant": {
      "title": "Participant",
      "description": "A meeting participant.",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Participant UUID."
        },
        "user_id": {
          "type": "string",
          "description": "Participant user ID if a registered Zoom user."
        },
        "name": {
          "type": "string",
          "description": "Participant display name."
        },
        "user_email": {
          "type": "string",
          "format": "email",
          "description": "Participant email address."
        },
        "join_time": {
          "type": "string",
          "format": "date-time",
          "description": "Time the participant joined."
        },
        "leave_time": {
          "type": "string",
          "format": "date-time",
          "description": "Time the participant left."
        },
        "duration": {
          "type": "integer",
          "description": "Duration in the meeting in seconds."
        },
        "registrant_id": {
          "type": "string",
          "description": "Registrant ID if the participant registered for the meeting."
        },
        "failover": {
          "type": "boolean",
          "description": "Whether failover occurred for this participant."
        },
        "status": {
          "type": "string",
          "description": "Participant status.",
          "enum": ["in_meeting", "in_waiting_room"]
        }
      }
    },
    "Registrant": {
      "title": "Registrant",
      "description": "A meeting registrant.",
      "type": "object",
      "required": ["email", "first_name"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Registrant ID."
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "Registrant email address."
        },
        "first_name": {
          "type": "string",
          "description": "Registrant first name.",
          "maxLength": 64
        },
        "last_name": {
          "type": "string",
          "description": "Registrant last name.",
          "maxLength": 64
        },
        "address": {
          "type": "string",
          "description": "Registrant address."
        },
        "city": {
          "type": "string",
          "description": "Registrant city."
        },
        "state": {
          "type": "string",
          "description": "Registrant state or province."
        },
        "zip": {
          "type": "string",
          "description": "Registrant zip or postal code."
        },
        "country": {
          "type": "string",
          "description": "Registrant two-letter country code."
        },
        "phone": {
          "type": "string",
          "description": "Registrant phone number."
        },
        "comments": {
          "type": "string",
          "description": "Registrant questions and comments."
        },
        "industry": {
          "type": "string",
          "description": "Registrant industry."
        },
        "job_title": {
          "type": "string",
          "description": "Registrant job title."
        },
        "org": {
          "type": "string",
          "description": "Registrant organization."
        },
        "no_of_employees": {
          "type": "string",
          "description": "Number of employees.",
          "enum": [
            "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"
          ]
        },
        "purchasing_time_frame": {
          "type": "string",
          "description": "Purchasing time frame.",
          "enum": [
            "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.",
          "enum": [
            "Decision Maker",
            "Evaluator/Recommender",
            "Influencer",
            "Not involved"
          ]
        },
        "language": {
          "type": "string",
          "description": "Registrant language preference.",
          "enum": ["en-US", "en", "zh-CN", "zh", "es", "fr-FR", "fr", "jp", "pt", "de", "ko", "it", "vi", "pl", "tr", "id", "nl", "ru", "uk", "sv"]
        },
        "status": {
          "type": "string",
          "description": "Registrant status.",
          "enum": ["approved", "pending", "denied"]
        },
        "create_time": {
          "type": "string",
          "format": "date-time",
          "description": "Time the registrant registered."
        },
        "join_url": {
          "type": "string",
          "format": "uri",
          "description": "Unique join URL for this registrant."
        },
        "custom_questions": {
          "type": "array",
          "description": "Custom question responses.",
          "items": {
            "$ref": "#/$defs/CustomQuestion"
          }
        }
      }
    },
    "CustomQuestion": {
      "title": "Custom Question",
      "description": "A custom question and answer for meeting registration.",
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "Question text."
        },
        "value": {
          "type": "string",
          "description": "Answer to the question."
        }
      }
    },
    "Poll": {
      "title": "Poll",
      "description": "A meeting poll.",
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "Poll ID."
        },
        "title": {
          "type": "string",
          "description": "Poll title.",
          "maxLength": 64
        },
        "anonymous": {
          "type": "boolean",
          "description": "Whether this is an anonymous poll.",
          "default": false
        },
        "status": {
          "type": "string",
          "description": "Poll status.",
          "enum": ["notstart", "started", "ended", "sharing"]
        },
        "poll_type": {
          "type": "integer",
          "description": "Type of poll. 1 = Poll, 2 = Advanced Poll, 3 = Quiz.",
          "enum": [1, 2, 3]
        },
        "questions": {
          "type": "array",
          "description": "List of questions in the poll.",
          "items": {
            "$ref": "#/$defs/PollQuestion"
          }
        }
      }
    },
    "PollQuestion": {
      "title": "Poll Question",
      "description": "A question within a meeting poll.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Question text."
        },
        "type": {
          "type": "string",
          "description": "Question type.",
          "enum": [
            "single",
            "multiple",
            "matching",
            "rank_order",
            "short_answer",
            "long_answer",
            "fill_in_the_blank",
            "rating_scale"
          ]
        },
        "answer_required": {
          "type": "boolean",
          "description": "Whether an answer is required."
        },
        "answers": {
          "type": "array",
          "description": "Available answer options.",
          "items": {
            "type": "string"
          }
        },
        "right_answers": {
          "type": "array",
          "description": "Correct answers for quiz type polls.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RecordingFile": {
      "title": "Recording File",
      "description": "A cloud recording file from a Zoom meeting.",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Recording file ID."
        },
        "meeting_id": {
          "type": "string",
          "description": "Meeting ID."
        },
        "recording_start": {
          "type": "string",
          "format": "date-time",
          "description": "Recording start time."
        },
        "recording_end": {
          "type": "string",
          "format": "date-time",
          "description": "Recording end time."
        },
        "file_type": {
          "type": "string",
          "description": "Recording file type.",
          "enum": ["MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY"]
        },
        "file_extension": {
          "type": "string",
          "description": "File extension.",
          "enum": ["MP4", "M4A", "TXT", "VTT", "CSV", "JSON"]
        },
        "file_size": {
          "type": "number",
          "description": "File size in bytes."
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "URL to download the recording file."
        },
        "play_url": {
          "type": "string",
          "format": "uri",
          "description": "URL to play the recording file."
        },
        "status": {
          "type": "string",
          "description": "Recording status.",
          "enum": ["completed"]
        },
        "recording_type": {
          "type": "string",
          "description": "Recording type.",
          "enum": [
            "shared_screen_with_speaker_view(CC)",
            "shared_screen_with_speaker_view",
            "shared_screen_with_gallery_view",
            "active_speaker",
            "gallery_view",
            "shared_screen",
            "audio_only",
            "audio_transcript",
            "chat_file",
            "poll",
            "host_video",
            "closed_caption",
            "timeline",
            "sign_interpretation",
            "production_studio"
          ]
        }
      }
    },
    "PastMeetingDetails": {
      "title": "Past Meeting Details",
      "description": "Details of a past (completed) meeting.",
      "type": "object",
      "properties": {
        "uuid": {
          "type": "string",
          "description": "Unique meeting instance ID."
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "Meeting ID."
        },
        "host_id": {
          "type": "string",
          "description": "Host user ID."
        },
        "host_email": {
          "type": "string",
          "format": "email",
          "description": "Host email address."
        },
        "type": {
          "$ref": "#/$defs/MeetingType"
        },
        "topic": {
          "type": "string",
          "description": "Meeting topic."
        },
        "user_name": {
          "type": "string",
          "description": "Display name of the meeting host."
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "description": "Meeting start time."
        },
        "end_time": {
          "type": "string",
          "format": "date-time",
          "description": "Meeting end time."
        },
        "duration": {
          "type": "integer",
          "description": "Meeting duration in minutes."
        },
        "total_minutes": {
          "type": "integer",
          "description": "Total meeting minutes across all participants."
        },
        "participants_count": {
          "type": "integer",
          "description": "Number of participants."
        }
      }
    },
    "LiveStream": {
      "title": "Live Stream",
      "description": "Live stream configuration for a meeting.",
      "type": "object",
      "required": ["stream_url", "stream_key"],
      "properties": {
        "stream_url": {
          "type": "string",
          "format": "uri",
          "description": "Streaming URL (e.g., RTMP endpoint)."
        },
        "stream_key": {
          "type": "string",
          "description": "Stream key or name."
        },
        "page_url": {
          "type": "string",
          "format": "uri",
          "description": "The live stream page URL where viewers can watch."
        },
        "resolution": {
          "type": "string",
          "description": "The live stream resolution.",
          "enum": ["720p", "1080p"]
        }
      }
    },
    "WebhookEvent": {
      "title": "Webhook Event",
      "description": "The standard envelope for all Zoom webhook event payloads.",
      "type": "object",
      "required": ["event", "event_ts", "payload"],
      "properties": {
        "event": {
          "type": "string",
          "description": "The event type identifier.",
          "examples": [
            "meeting.created",
            "meeting.updated",
            "meeting.deleted",
            "meeting.started",
            "meeting.ended",
            "meeting.participant_joined",
            "meeting.participant_left",
            "meeting.registration_created",
            "meeting.registration_approved",
            "recording.completed",
            "recording.started",
            "recording.stopped"
          ]
        },
        "event_ts": {
          "type": "integer",
          "format": "int64",
          "description": "Timestamp of the event in milliseconds since epoch."
        },
        "payload": {
          "type": "object",
          "description": "Event-specific payload data.",
          "properties": {
            "account_id": {
              "type": "string",
              "description": "The Zoom account ID."
            },
            "operator": {
              "type": "string",
              "description": "Email of the user who triggered the event."
            },
            "operator_id": {
              "type": "string",
              "description": "User ID of the operator."
            },
            "object": {
              "type": "object",
              "description": "The event-specific object data."
            }
          }
        },
        "download_token": {
          "type": "string",
          "description": "Short-lived token for downloading recording files. Only present in recording events."
        }
      }
    },
    "PaginatedResponse": {
      "title": "Paginated Response",
      "description": "Standard pagination wrapper for list endpoints.",
      "type": "object",
      "properties": {
        "page_count": {
          "type": "integer",
          "description": "Total number of pages."
        },
        "page_number": {
          "type": "integer",
          "description": "Current page number."
        },
        "page_size": {
          "type": "integer",
          "description": "Number of records per page."
        },
        "total_records": {
          "type": "integer",
          "description": "Total number of records."
        },
        "next_page_token": {
          "type": "string",
          "description": "Token for the next page of results."
        }
      }
    },
    "ErrorResponse": {
      "title": "Error Response",
      "description": "Standard error response from the Zoom API.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "description": "Zoom error code."
        },
        "message": {
          "type": "string",
          "description": "Error message."
        },
        "errors": {
          "type": "array",
          "description": "Detailed field-level errors.",
          "items": {
            "type": "object",
            "properties": {
              "field": {
                "type"

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoom/refs/heads/main/json-schema/zoom-meeting-schema.json