Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
vm0-ai avatar

Zoom

  • 36 installs
  • 76 repo stars
  • Updated August 4, 2026
  • vm0-ai/vm0-skills

Helps with ai & agent building tasks during AI-assisted development.

About

zoom is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • zoom
  • AI & Agent Building
  • AI-coding skill

Zoom by the numbers

  • 36 all-time installs (skills.sh)
  • Ranked #8,608 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vm0-ai/vm0-skills --skill zoom

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs36
repo stars76
Last updatedAugust 4, 2026
Repositoryvm0-ai/vm0-skills

What it does

Helps with ai & agent building tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

Troubleshooting

If requests fail, run zero doctor check-connector --env-name ZOOM_TOKEN or zero doctor check-connector --url https://api.zoom.us/v2/users/me --method GET

How to Use

Base URL: https://api.zoom.us/v2

All calls use Authorization: Bearer $ZOOM_TOKEN. The token is a short-lived (1 hour) OAuth access token — vm0 refreshes it automatically; skills never need to touch refresh tokens.

The me keyword can be substituted for a user ID when the authenticated user is the target (e.g. /users/me/meetings).

Users

Get Current User

curl -s "https://api.zoom.us/v2/users/me" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '{id, email, first_name, last_name, account_id, type}'

Get a User

curl -s "https://api.zoom.us/v2/users/<user-id>" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '{id, email, first_name, last_name, type}'

Meetings

List Meetings

List meetings scheduled for the authenticated user. type can be scheduled (default), live, upcoming, upcoming_meetings, or previous_meetings.

curl -s "https://api.zoom.us/v2/users/me/meetings?type=upcoming&page_size=30" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '.meetings[] | {id, topic, start_time, duration, join_url}'

Get a Meeting

curl -s "https://api.zoom.us/v2/meetings/<meeting-id>" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '{id, topic, start_time, duration, join_url, start_url, status, agenda, settings}'

Create a Meeting

Meeting type values: 1 (instant), 2 (scheduled), 3 (recurring, no fixed time), 8 (recurring, fixed time).

Write to /tmp/zoom_meeting.json:

{
  "topic": "Weekly sync",
  "type": 2,
  "start_time": "2026-05-01T10:00:00Z",
  "duration": 30,
  "timezone": "UTC",
  "agenda": "Review progress and blockers",
  "settings": {
    "join_before_host": true,
    "mute_upon_entry": true,
    "waiting_room": false,
    "auto_recording": "cloud"
  }
}
curl -s -X POST "https://api.zoom.us/v2/users/me/meetings" --header "Authorization: Bearer $ZOOM_TOKEN" --header "Content-Type: application/json" -d @/tmp/zoom_meeting.json | jq '{id, topic, start_time, join_url, start_url}'

Update a Meeting

Zoom uses PATCH and only sends fields that changed. Write to /tmp/zoom_meeting_update.json:

{
  "topic": "Weekly sync — rescheduled",
  "start_time": "2026-05-01T11:00:00Z",
  "duration": 45
}
curl -s -X PATCH "https://api.zoom.us/v2/meetings/<meeting-id>" --header "Authorization: Bearer $ZOOM_TOKEN" --header "Content-Type: application/json" -d @/tmp/zoom_meeting_update.json

Returns HTTP 204 with an empty body on success.

Delete a Meeting

curl -s -X DELETE "https://api.zoom.us/v2/meetings/<meeting-id>" --header "Authorization: Bearer $ZOOM_TOKEN"

End a Live Meeting

Set action to end to force-end an in-progress meeting.

Write to /tmp/zoom_meeting_status.json:

{
  "action": "end"
}
curl -s -X PUT "https://api.zoom.us/v2/meetings/<meeting-id>/status" --header "Authorization: Bearer $ZOOM_TOKEN" --header "Content-Type: application/json" -d @/tmp/zoom_meeting_status.json

Past Meeting Data

List Past Meeting Participants

curl -s "https://api.zoom.us/v2/past_meetings/<meeting-uuid>/participants?page_size=100" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '.participants[] | {id, name, user_email, join_time, leave_time, duration}'

The UUID is the uuid field from the meeting record, URL-encoded. If it contains / or //, encode twice.

Get Past Meeting Summary

curl -s "https://api.zoom.us/v2/past_meetings/<meeting-uuid>" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '{id, uuid, topic, start_time, end_time, participants_count, total_minutes}'

Cloud Recordings

List User Recordings

Required query parameters: from and to (ISO date strings). Lists recordings created within the date range (max 30 days).

curl -s "https://api.zoom.us/v2/users/me/recordings?from=2026-04-01&to=2026-04-30&page_size=30" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '.meetings[] | {id, uuid, topic, start_time, recording_count, share_url}'

Get Recordings for a Meeting

curl -s "https://api.zoom.us/v2/meetings/<meeting-id>/recordings" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '{id, topic, recording_files: [.recording_files[] | {id, file_type, recording_type, download_url, play_url, status}]}'

download_url requires appending ?access_token=$ZOOM_TOKEN (or a dedicated download token) to authenticate the download.

Get Recording Transcript

If Zoom AI Companion or cloud recording transcripts are enabled, the transcript appears in recording_files with file_type: "TRANSCRIPT". Download it via the file's download_url.

curl -s "https://api.zoom.us/v2/meetings/<meeting-id>/recordings" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '.recording_files[] | select(.file_type == "TRANSCRIPT") | {id, download_url}'

Webinars

List Webinars

curl -s "https://api.zoom.us/v2/users/me/webinars?page_size=30" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '.webinars[] | {id, topic, start_time, duration, join_url}'

Get a Webinar

curl -s "https://api.zoom.us/v2/webinars/<webinar-id>" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '{id, topic, start_time, duration, join_url, registration_url}'

Common Patterns

Find the Most Recent Cloud Recording

curl -s "https://api.zoom.us/v2/users/me/recordings?from=2026-04-01&to=2026-04-30&page_size=1" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '.meetings[0] | {id, uuid, topic, start_time, recording_files: [.recording_files[] | {file_type, recording_type, download_url}]}'

Get the Join URL for the Next Scheduled Meeting

curl -s "https://api.zoom.us/v2/users/me/meetings?type=upcoming&page_size=1" --header "Authorization: Bearer $ZOOM_TOKEN" | jq '.meetings[0] | {topic, start_time, join_url}'

Guidelines

1. Meeting ID vs UUID: Numeric meeting IDs identify a series; UUIDs identify a specific instance. Past-meeting endpoints (/past_meetings/...) require the UUID, and UUIDs containing / must be URL-encoded (double-encoded if they start with / or contain //). 2. Pagination: Responses include next_page_token when more pages exist. Pass it back as a query parameter to fetch subsequent pages. page_size defaults to 30, max 300 for most endpoints. 3. Date ranges: /recordings and historical endpoints cap ranges at 30 days. Split longer ranges into multiple calls. 4. Timezones: start_time in requests should be UTC (trailing Z) unless timezone is also provided. Responses always use UTC. 5. Downloading recordings: download_url is not bearer-authenticated — append ?access_token=$ZOOM_TOKEN as a query parameter or request a short-lived download token. Do NOT send Authorization: Bearer for the file download itself. 6. Rate limits: Meeting-create endpoints are Light (≤20 req/s); recording list endpoints are Heavy (≤20 req/min). Back off on HTTP 429 using the Retry-After header. 7. API version: All endpoints use /v2. Older /v1 endpoints are deprecated and return 404.

API Reference

  • REST API index: https://developers.zoom.us/docs/api/
  • Meetings: https://developers.zoom.us/docs/api/meetings/
  • Cloud Recording: https://developers.zoom.us/docs/api/cloud-recording/
  • Webinars: https://developers.zoom.us/docs/api/webinars/
  • Users: https://developers.zoom.us/docs/api/users/
  • OAuth scopes reference: https://developers.zoom.us/docs/integrations/oauth-scopes/

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.