4.4 KiB
4.4 KiB
OpenAPI / Swagger Specifications
Zoom provides OpenAPI specifications for API client generation and tooling integration.
Official Specifications
Zoom API v2 (Current)
| Property | Value |
|---|---|
| Format | Swagger 2.0 (JSON) |
| Status | Deprecated - Last updated November 2018 |
| Coverage | ~103 endpoints (subset of full API) |
| Download | openapi.v2.json |
| Repository | github.com/zoom/api |
Zoom API v1 (Legacy)
| Property | Value |
|---|---|
| Format | Swagger 2.0 (JSON) |
| Status | Deprecated |
| Coverage | ~93 endpoints |
| Download | openapi.v2.json |
| Repository | github.com/zoom/api-v1 |
Coverage Limitations
The official OpenAPI specs only cover a small subset of Zoom's 600+ endpoints:
| Covered | NOT Covered |
|---|---|
| Meetings | Phone API |
| Users | Team Chat API |
| Accounts | Mail API |
| Groups | Calendar API |
| Reports | Rooms API |
| Webinars | Clips API |
| H.323 Devices | Whiteboard API |
| IM Groups | Contact Center API |
| AI Companion API | |
| 20+ other modern APIs |
Recommended Alternative: Zoom Rivet
Instead of using the outdated OpenAPI specs, Zoom recommends using Zoom Rivet - their official API client library.
Installation
npm install @zoom/rivet
Usage
import Zoom from '@zoom/rivet';
const zoom = new Zoom({
accountId: process.env.ZOOM_ACCOUNT_ID,
clientId: process.env.ZOOM_CLIENT_ID,
clientSecret: process.env.ZOOM_CLIENT_SECRET,
});
// Create a meeting
const meeting = await zoom.meetings.create({
userId: 'me',
body: {
topic: 'My Meeting',
type: 2,
duration: 60,
},
});
// List users
const users = await zoom.users.list();
// Get recordings
const recordings = await zoom.cloudRecordings.list({
userId: 'me',
from: '2024-01-01',
to: '2024-01-31',
});
Why Rivet Over OpenAPI?
| Aspect | OpenAPI Specs | Zoom Rivet |
|---|---|---|
| Coverage | ~103 endpoints | Full API |
| Maintenance | Deprecated (2018) | Actively maintained |
| Type Safety | Requires codegen | Built-in TypeScript |
| Auth Handling | Manual | Automatic token management |
| Pagination | Manual | Built-in helpers |
| Rate Limiting | Manual | Built-in retry logic |
Using OpenAPI Specs Anyway
If you still need the OpenAPI specs (e.g., for custom tooling), here's how to use them:
Download the Spec
# Download Zoom API v2 spec
curl -o zoom-api-v2.json \
https://raw.githubusercontent.com/zoom/api/442998230a148f403c3d1de1fe7aa54937354fa9/openapi.v2.json
Generate TypeScript Client
# Using openapi-generator
npm install @openapitools/openapi-generator-cli -g
openapi-generator-cli generate \
-i zoom-api-v2.json \
-g typescript-fetch \
-o ./zoom-client
Generate Python Client
openapi-generator-cli generate \
-i zoom-api-v2.json \
-g python \
-o ./zoom-client-python
Known Issues with Code Generation
The Zoom OpenAPI specs have known issues that may cause errors during code generation:
| Issue | Workaround |
|---|---|
| Enum type mismatches | Manually fix integer/string enum definitions |
| Missing required fields | Add required fields to generated models |
| Invalid syntax | Validate and fix JSON before generation |
| Outdated endpoints | Supplement with manual API calls for new endpoints |
Postman Collection
For interactive API exploration, Zoom provides a Postman collection:
- Postman Collection: https://marketplace.zoom.us/docs/api-reference/postman
# Import to Postman
# 1. Open Postman
# 2. Click Import
# 3. Enter URL: https://www.postman.com/zoom-developer/zoom-developer-api
API Reference Documentation
For the most up-to-date API documentation, use the official reference:
- REST API Reference: https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/
- API Changelog: https://developers.zoom.us/changelog/