Create a Zoom OAuth app in the Zoom Marketplace to obtain a client_id and client_secret, then implement the OAuth 2.0 authorization code flow to obtain user-level tokens
Schedule a meeting by POST https://api.zoom.us/v2/users/<userId>/meetings with a JSON body containing topic, type (2 for scheduled), start_time (ISO 8601 in UTC), duration, and timezone
Store the returned meeting id and join_url and surface the join_url to students within your LMS course content
Retrieve meeting attendance after the meeting ends with GET https://api.zoom.us/v2/past_meetings/<meetingId>/participants, paginating with next_page_token if present
Alternatively, configure a Zoom LTI Pro integration from the Zoom Marketplace and register it in the LMS as an LTI 1.3 tool to handle scheduling and launch natively inside the LMS UI
Known gotchas
Zoom API rate limits are applied per-user per-second; bulk-scheduling classes for hundreds of instructors in a loop will trigger 429 responses; add per-request delays and retry-after handling
Meeting participants endpoint returns only the first 300 participants by default; use the next_page_token cursor to retrieve all records for large classes
User-level OAuth tokens are tied to the individual Zoom account that authorized them; if an instructor leaves the institution and their Zoom account is deactivated, all meetings owned by that token become inaccessible
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp