Maton

Zoom Admin

Access the Zoom API with managed OAuth authentication and admin-level scopes. Manage users, meetings, webinars, recordings, and account settings.

Reference

List Users

GET /zoom-admin/v2/users?status=active&page_size=30

Query Parameters:

ParamTypeDefaultDescription
statusstringactiveactive, inactive, or pending
page_sizeinteger30Max: 2000
next_page_tokenstringPagination token (15-min expiry)
role_idstringFilter by role ID

Response:

{
  "page_size": 30,
  "total_records": 1,
  "next_page_token": "",
  "users": [
    {
      "id": "a-IOECePRV265Gy_wotUdQ",
      "first_name": "Richard",
      "last_name": "Song",
      "display_name": "Richard Song",
      "email": "user@example.com",
      "type": 1,
      "pmi": 6862513852,
      "timezone": "America/Los_Angeles",
      "verified": 1,
      "status": "active",
      "created_at": "2025-03-21T21:52:50Z",
      "last_login_time": "2026-05-01T01:01:08Z",
      "role_id": "0"
    }
  ]
}

User type values: 1 = Basic, 2 = Licensed, 4 = Unassigned, 99 = None.

Get User

GET /zoom-admin/v2/users/{userId}

Use me for the authenticated user, or a user ID / email address.

Response:

{
  "id": "a-IOECePRV265Gy_wotUdQ",
  "first_name": "Richard",
  "last_name": "Song",
  "display_name": "Richard Song",
  "email": "user@example.com",
  "type": 1,
  "role_name": "Owner",
  "pmi": 6862513852,
  "use_pmi": false,
  "personal_meeting_url": "https://us05web.zoom.us/j/6862513852?pwd=...",
  "timezone": "America/Los_Angeles",
  "status": "active",
  "account_id": "ciah2jjMRgedBSqxO8bOjA",
  "role_id": "0",
  "login_types": [100, 1],
  "created_at": "2025-03-21T21:52:50Z",
  "last_login_time": "2026-05-01T01:01:08Z"
}

Get User Settings

GET /zoom-admin/v2/users/{userId}/settings

Query Parameters:

ParamTypeDescription
optionstringmeeting_authentication, recording_authentication, or meeting_security

Returns detailed settings grouped into sections: schedule_meeting, in_meeting, email_notification, recording, telephony, feature, whiteboard, audio_conferencing, etc.

List Meetings

GET /zoom-admin/v2/users/{userId}/meetings?type=scheduled&page_size=30

Query Parameters:

ParamTypeDefaultDescription
typestringlivescheduled, live, upcoming, upcoming_meetings, previous_meetings
page_sizeinteger30Max: 300
next_page_tokenstringPagination token (15-min expiry)

Response:

{
  "page_size": 30,
  "total_records": 11,
  "next_page_token": "B4Tr0tLbJKQMnChspbYH7UUvt7g0UeDQNh2",
  "meetings": [
    {
      "uuid": "SukzvlkXQO2rNcNPKUGCpw==",
      "id": 89560318205,
      "host_id": "a-IOECePRV265Gy_wotUdQ",
      "topic": "Team Standup",
      "type": 2,
      "start_time": "2026-03-30T18:00:00Z",
      "duration": 30,
      "timezone": "America/Los_Angeles",
      "created_at": "2026-03-29T18:01:40Z",
      "join_url": "https://us05web.zoom.us/j/89560318205?pwd=..."
    }
  ]
}

Meeting type values: 1 = Instant, 2 = Scheduled, 3 = Recurring (no fixed time), 4 = PMI, 8 = Recurring (fixed time).

Get Meeting

GET /zoom-admin/v2/meetings/{meetingId}

Query Parameters:

ParamTypeDescription
occurrence_idstringFor recurring meetings
show_previous_occurrencesbooleanShow previous occurrences

Returns full meeting details including settings, recurrence, occurrences, join_url, start_url, password, etc.

Create Meeting

POST /zoom-admin/v2/users/{userId}/meetings
Content-Type: application/json

{
  "topic": "Weekly Team Sync",
  "type": 2,
  "start_time": "2026-05-02T10:00:00Z",
  "duration": 30,
  "timezone": "America/Los_Angeles",
  "agenda": "Discuss project updates",
  "settings": {
    "host_video": true,
    "participant_video": true,
    "join_before_host": false,
    "mute_upon_entry": true,
    "waiting_room": false,
    "auto_recording": "none",
    "audio": "voip"
  }
}

Key Request Fields:

FieldTypeDescription
topicstringMeeting topic
typeinteger1 = Instant, 2 = Scheduled, 3 = Recurring (no fixed), 8 = Recurring (fixed)
start_timestringISO 8601 datetime (required for type 2 and 8)
durationintegerDuration in minutes
timezonestringe.g., America/New_York
passwordstringUp to 10 characters
agendastringMax 2000 characters
recurrenceobjectRequired for type 8
settingsobjectMeeting settings

Returns the created meeting object (same as Get Meeting).

Update Meeting

PATCH /zoom-admin/v2/meetings/{meetingId}
Content-Type: application/json

{
  "topic": "Updated Meeting Topic",
  "duration": 45
}

All fields are optional. Returns 204 No Content on success.

Delete Meeting

DELETE /zoom-admin/v2/meetings/{meetingId}

Query Parameters:

ParamTypeDescription
occurrence_idstringDelete specific occurrence of recurring meeting
schedule_for_reminderbooleanNotify host about cancellation
cancel_meeting_reminderstringNotify registrants (true/false)

Returns 204 No Content on success.

Get Past Meeting Details

GET /zoom-admin/v2/past_meetings/{meetingId}

Use the meeting ID or UUID. If the UUID starts with / or contains //, it must be double-URL-encoded.

Response:

{
  "uuid": "/LAYgqiEQ8CW4NlhkyOvVA==",
  "id": 89560318205,
  "host_id": "a-IOECePRV265Gy_wotUdQ",
  "type": 2,
  "topic": "Team Standup",
  "user_name": "Richard Song",
  "user_email": "user@example.com",
  "start_time": "2026-03-30T18:02:25Z",
  "end_time": "2026-03-30T18:09:50Z",
  "duration": 8,
  "total_minutes": 22,
  "participants_count": 3,
  "source": "Calendly for Zoom"
}

List Past Meeting Instances

GET /zoom-admin/v2/past_meetings/{meetingId}/instances

Response:

{
  "meetings": [
    {
      "uuid": "/LAYgqiEQ8CW4NlhkyOvVA==",
      "start_time": "2026-03-30T18:02:25Z"
    }
  ]
}

List Webinars

GET /zoom-admin/v2/users/{userId}/webinars?page_size=30

Query Parameters:

ParamTypeDefaultDescription
typestringscheduledscheduled or upcoming
page_sizeinteger30Max: 300
next_page_tokenstringPagination token

Response:

{
  "page_size": 30,
  "total_records": 0,
  "next_page_token": "",
  "webinars": [
    {
      "uuid": "...",
      "id": 12345678901,
      "host_id": "...",
      "topic": "Product Launch Webinar",
      "type": 5,
      "start_time": "2026-05-15T14:00:00Z",
      "duration": 60,
      "timezone": "America/Los_Angeles",
      "join_url": "https://us05web.zoom.us/j/..."
    }
  ]
}

Webinar type values: 5 = Webinar, 6 = Recurring (no fixed time), 9 = Recurring (fixed time).

Get Webinar

GET /zoom-admin/v2/webinars/{webinarId}

Returns full webinar details including settings, recurrence, and registration info.

List User Recordings

GET /zoom-admin/v2/users/{userId}/recordings?from=2026-04-01&to=2026-04-30&page_size=30

Query Parameters:

ParamTypeDescription
fromstringStart date (yyyy-mm-dd). Max range: 1 month. Max past: 6 months
tostringEnd date (yyyy-mm-dd)
page_sizeintegerMax: 300
next_page_tokenstringPagination token
trashbooleanList trashed recordings

Response:

{
  "from": "2026-04-01",
  "to": "2026-04-30",
  "total_records": 0,
  "next_page_token": "",
  "meetings": [
    {
      "uuid": "...",
      "id": 12345678901,
      "host_id": "...",
      "topic": "Meeting Topic",
      "start_time": "2026-04-15T10:00:00Z",
      "duration": 45,
      "total_size": 52428800,
      "recording_count": 2,
      "recording_files": [
        {
          "id": "...",
          "file_type": "MP4",
          "file_extension": "MP4",
          "file_size": 41943040,
          "play_url": "https://...",
          "download_url": "https://...",
          "recording_type": "shared_screen_with_speaker_view",
          "status": "completed"
        }
      ]
    }
  ]
}

Get Meeting Recordings

GET /zoom-admin/v2/meetings/{meetingId}/recordings

Use the meeting ID or UUID. If the UUID starts with / or contains //, it must be double-URL-encoded.

Query Parameters:

ParamTypeDescription
include_fieldsstringdownload_access_token for JWT download token
ttlintegerToken TTL in seconds (0–604800, default: 172800)

Returns the meeting's recording files with download URLs.

Get Account Settings

GET /zoom-admin/v2/accounts/{accountId}/settings

Use me for the connected account. Requires a paid Zoom plan.

Query Parameters:

ParamTypeDescription
optionstringmeeting_authentication, recording_authentication, security, meeting_security

Returns account-level settings grouped into sections: security, schedule_meeting, in_meeting, recording, telephony, feature, chat, etc.

Resources

On this page