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.

VideoZoomChatCollaborationCommunicationsMeetingsVideo ConferencingWebinars
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

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/zoom-meeting"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.