@todoforai/zoomadmin-api
v0.1.0
Published
JSON-first CLI for the Zoom REST API v2 (meetings, webinars, recordings, users)
Readme
zoomadmin-api
Independent JSON-first CLI over the Zoom REST API v2 (not an official Zoom product). Zero SDK, plain fetch, Node >= 20.
Endpoint table generated from the official OpenAPI (src/endpoints.ts, 35 commands); anything else via api.
cd api-apps/zoomadmin-api && npm install --workspaces=false && bun run build
node dist/index.js --helpAuth
Server-to-Server OAuth (recommended for a personal/admin CLI): Marketplace → Develop → Build app → Server to Server OAuth App,
add scopes (e.g. meeting:*:admin, webinar:*:admin, cloud_recording:*:admin, user:read:*:admin, phone:read:list_call_logs:admin),
fill Information (developer name/email, company), then Activate. The CLI exchanges the credentials for a 1h token on each run.
<secret-manager> | zoomadmin-api auth --account-id <id> --client-id <id> --stdin # verifies GET /users/me, saves (0600)
ZOOM_ACCOUNT_ID=… ZOOM_CLIENT_ID=… ZOOM_CLIENT_SECRET=… zoomadmin-api whoami
ZOOM_ACCESS_TOKEN=<user OAuth token> zoomadmin-api meetings list # any ready OAuth access tokenCommands
users, meetings (list/create/get/update/delete/end/past/participants), meeting-registrants, webinars, webinar-registrants,
panelists, recordings (list/get/delete/delete-file/transcript), call-logs, plus api <METHOD> <path>.
User-scoped commands take -u <id|email> (default me). --dry-run previews; DELETE needs --yes.
zoomadmin-api meetings create --data '{"topic":"Sync","type":2,"start_time":"2026-10-20T10:00:00Z","duration":30}'
zoomadmin-api meetings update <meetingId> --data '{"topic":"Weekly sync"}'
zoomadmin-api meeting-registrants add <meetingId> --data '{"email":"[email protected]","first_name":"Ann"}'
zoomadmin-api webinar-registrants status <webinarId> --data '{"action":"approve","registrants":[{"id":"…"}]}'
zoomadmin-api recordings list -u [email protected] --query from=2026-09-01 && zoomadmin-api recordings transcript <meetingId>Plan limits (from the API, not the CLI): registrants and past-meeting participants need a paid plan; webinars need the Webinar add-on; call logs need Zoom Phone.
Docs: https://developers.zoom.us/docs/api/ · OpenAPI: https://developers.zoom.us/api-hub/{meetings,users,phone}/methods/endpoints.json
Tests
bun test (mocked fetch) and bun run test:node (built bundle under Node).
