Skip to main content
Zoom API for managing video meetings, webinars, recordings, and user settings. Best for workflows that need to schedule meetings, retrieve recordings, or automate meeting lifecycle management. The standard video conferencing API — unlike Slack (messaging) or Google Workspace (broad suite), Zoom focuses specifically on real-time video communication. 6 example endpoints available through Lava’s AI Gateway. See the Zoom API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a catch-all provider — any valid URL under https://api.zoom.us/v2 is supported. Any Zoom REST API endpoint. Construct URL as https://api.zoom.us/v2/{path}. See https://developers.zoom.us/docs/api for full reference. The endpoints below are curated examples.

Connecting Your Zoom Account

Lava supports two ways to connect a Zoom account. Both end in the same place — Lava stores an encrypted OAuth token scoped to your wallet and uses it only to forward your own API calls. Via MCP (automatic):
  1. An agent connected to Lava’s MCP calls a Zoom endpoint for the first time.
  2. Lava detects no stored credential and returns a browser_flow_required response containing an authorization URL.
  3. Open the URL in a browser — you land on Zoom’s consent screen.
  4. Review the requested scopes (listed below) and click Allow.
  5. Zoom redirects back to Lava. Your token is stored and the original agent call can now proceed.
Via dashboard:
  1. Sign in at lava.so/dashboard and open Connected Services (/dashboard/wallet/connected-services).
  2. Find Zoom in the list of available providers and click Connect.
  3. Authorize in Zoom’s consent screen.
  4. You’re redirected back to the Connected Services page, where Zoom now appears under Stored Credentials.

Requested Permissions

Lava requests only the scopes needed to route your API calls. You see this list on Zoom’s consent screen before you authorize.
ScopeWhat It Enables
user:read:userView a user
meeting:read:list_meetingsView a user’s meetings
meeting:write:meetingCreate a meeting for a user
cloud_recording:read:list_user_recordingsList a user’s cloud recordings

Using Zoom

Once connected, your credential is available to any agent or SDK call routed through Lava’s gateway — no token passing required. Call Zoom endpoints through https://api.lava.so/v1/forward and Lava injects your stored token automatically. See the Endpoints section below for example calls.

Removing Zoom

Disconnecting removes Lava’s stored token immediately. Subsequent API calls return an auth error until you reconnect. Via dashboard:
  1. Open Connected Services.
  2. Find Zoom under Stored Credentials.
  3. Click the trash icon and confirm.
Via API or MCP:
  • REST: DELETE https://api.lava.so/v1/credentials/zoom (returns 204 No Content).
  • MCP: call the disconnect_service tool with service: "zoom".
Also revoke from Zoom: visit https://marketplace.zoom.us/user/installed, find the Lava app, and click Remove. This revokes the token on Zoom’s side in addition to deleting it from Lava.

Data Handling

Lava stores your Zoom OAuth access and refresh tokens encrypted at rest, scoped to your wallet. Tokens are used only to forward your own API calls to https://api.zoom.us/v2. Refresh tokens rotate automatically; if a refresh fails, your next call prompts you to reconnect. Lava does not read, cache, or redistribute Zoom content beyond what’s needed to proxy a single request.

Support

Questions about this integration: support@lava.so.

Endpoints

Get current user info

GET https://api.zoom.us/v2/users/me — Free
const data = await lava.gateway('https://api.zoom.us/v2/users/me', { method: 'GET' });

List meetings

GET https://api.zoom.us/v2/users/me/meetings — Free
const data = await lava.gateway('https://api.zoom.us/v2/users/me/meetings', { method: 'GET' });

Create a meeting

POST https://api.zoom.us/v2/users/me/meetings — Free
const data = await lava.gateway('https://api.zoom.us/v2/users/me/meetings', {
  body: {
"topic": "My Meeting",
"type": 2,
"start_time": "2025-01-01T10:00:00Z",
"duration": 30
},
});

Update a meeting

PATCH https://api.zoom.us/v2/meetings/{meetingId} — Free
const data = await lava.gateway('https://api.zoom.us/v2/meetings/{meetingId}', { method: 'PATCH', body: {"topic":"Updated Meeting Topic","duration":60} });

Update meeting status (end a meeting)

PUT https://api.zoom.us/v2/meetings/{meetingId}/status — Free
const data = await lava.gateway('https://api.zoom.us/v2/meetings/{meetingId}/status', { method: 'PUT', body: {"action":"end"} });

Delete a meeting

DELETE https://api.zoom.us/v2/meetings/{meetingId} — Free
const data = await lava.gateway('https://api.zoom.us/v2/meetings/{meetingId}', { method: 'DELETE' });

Next Steps

All Providers

Browse all supported AI providers

Forward Proxy

Learn how to construct proxy URLs and authenticate requests