build-zoom-rest-api-app
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese/build-zoom-rest-api-app
/build-zoom-rest-api
Background reference for deterministic server-side Zoom automation and resource management. Prefer , , or first, then route here for endpoint-level detail.
plan-zoom-productplan-zoom-integrationdebug-zoom确定性服务端Zoom自动化和资源管理的背景参考。请优先使用、或,需要端点级别的详细信息时再导航到本内容。
plan-zoom-productplan-zoom-integrationdebug-zoomZoom REST API
Zoom REST API
Expert guidance for building server-side integrations with the Zoom REST API. This API provides 600+ endpoints for managing meetings, users, webinars, recordings, reports, and all Zoom platform resources programmatically.
Official Documentation: https://developers.zoom.us/api-hub/
API Hub Reference: https://developers.zoom.us/api-hub/meetings/
OpenAPI Inventories:
https://developers.zoom.us/api-hub/<domain>/methods/endpoints.json基于Zoom REST API构建服务端集成的专业指南。该API提供600+个端点,可通过编程方式管理会议、用户、网络研讨会、录制文件、报告等所有Zoom平台资源。
官方文档: https://developers.zoom.us/api-hub/
API Hub参考: https://developers.zoom.us/api-hub/meetings/
OpenAPI清单:
https://developers.zoom.us/api-hub/<domain>/methods/endpoints.jsonQuick Links
快速链接
New to Zoom REST API? Follow this path:
- API Architecture - Base URLs, regional URLs, keyword, ID vs UUID, time formats
me - Authentication Flows - OAuth setup (S2S, User, PKCE, Device Code)
- Meeting URLs vs Meeting SDK - Stop mixing with Meeting SDK
join_url - Meeting Lifecycle - Create → Update → Start → End → Delete with webhooks
- Rate Limiting Strategy - Plan tiers, per-user limits, retry patterns
Reference:
- Meetings - Meeting CRUD, types, settings
- Users - User provisioning and management
- Recordings - Cloud recording access and download
- AI Services - Scribe endpoint inventory and current AI Services path surface
- GraphQL Queries - Alternative query API (beta)
- Integrated Index - see the section below in this file
Most domain files under are aligned to the official API Hub inventories. Treat those files as the local source of truth for method/path discovery.
references/endpoints.jsonHaving issues?
- Start with preflight checks → 5-Minute Runbook
- 401 Unauthorized → Authentication Flows (check token expiry, scopes)
- 429 Too Many Requests → Rate Limiting Strategy
- Error codes → Common Errors
- Pagination confusion → Common Issues
- Webhooks not arriving → Webhook Server
- Forum-derived FAQs → Forum Top Questions
- Token/scope failures → Token + Scope Playbook
Building event-driven integrations?
- Webhook Server - Express.js server with CRC validation
- Recording Pipeline - Auto-download via webhook events
Zoom REST API新手请按照以下路径学习:
- API架构 - 基础URL、区域URL、关键字、ID与UUID对比、时间格式
me - 认证流程 - OAuth配置(S2S、用户、PKCE、设备码)
- 会议URL与Meeting SDK对比 - 不要混淆和Meeting SDK
join_url - 会议生命周期 - 包含Webhook的创建→更新→开始→结束→删除全流程
- 速率限制策略 - 方案层级、单用户限制、重试模式
参考资源:
- 会议 - 会议CRUD、类型、设置
- 用户 - 用户配置与管理
- 录制文件 - 云录制文件访问与下载
- AI服务 - Scribe端点清单和当前AI服务路径说明
- GraphQL查询 - 替代查询API(测试版)
- 集成索引 - 参见本文件下方的章节
references/endpoints.json遇到问题?
- 先执行预检检查 → 5分钟运行手册
- 401未授权 → 认证流程(检查令牌有效期、权限范围)
- 429请求过多 → 速率限制策略
- 错误代码 → 常见错误
- 分页困惑 → 常见问题
- Webhook未送达 → Webhook服务
- 论坛常见问题 → 论坛热门问题
- 令牌/权限范围失败 → 令牌+权限范围操作手册
构建事件驱动集成?
- Webhook服务 - 带CRC校验的Express.js服务
- 录制文件处理 pipeline - 通过Webhook事件自动下载录制文件
Quick Start
快速开始
Get an Access Token (Server-to-Server OAuth)
获取访问令牌(Server-to-Server OAuth)
bash
curl -X POST "https://zoom.us/oauth/token" \
-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=account_credentials&account_id=ACCOUNT_ID"Response:
json
{
"access_token": "eyJhbGciOiJIUzI1NiJ9...",
"token_type": "bearer",
"expires_in": 3600,
"scope": "meeting:read meeting:write user:read"
}bash
curl -X POST "https://zoom.us/oauth/token" \
-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=account_credentials&account_id=ACCOUNT_ID"响应:
json
{
"access_token": "eyJhbGciOiJIUzI1NiJ9...",
"token_type": "bearer",
"expires_in": 3600,
"scope": "meeting:read meeting:write user:read"
}Create a Meeting
创建会议
bash
curl -X POST "https://api.zoom.us/v2/users/HOST_USER_ID/meetings" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"topic": "Team Standup",
"type": 2,
"start_time": "2025-03-15T10:00:00Z",
"duration": 30,
"settings": {
"join_before_host": false,
"waiting_room": true
}
}'For S2S OAuth, use an explicit host user ID or email in the path. Do not use .
mebash
curl -X POST "https://api.zoom.us/v2/users/HOST_USER_ID/meetings" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"topic": "团队站会",
"type": 2,
"start_time": "2025-03-15T10:00:00Z",
"duration": 30,
"settings": {
"join_before_host": false,
"waiting_room": true
}
}'对于S2S OAuth,请在路径中使用明确的主持人用户ID或邮箱,不要使用。
meList Users with Pagination
分页列出用户
bash
curl "https://api.zoom.us/v2/users?page_size=300&status=active" \
-H "Authorization: Bearer ACCESS_TOKEN"bash
curl "https://api.zoom.us/v2/users?page_size=300&status=active" \
-H "Authorization: Bearer ACCESS_TOKEN"Base URL
基础URL
https://api.zoom.us/v2https://api.zoom.us/v2Regional Base URLs
区域基础URL
The field in OAuth token responses indicates the user's region. Use regional URLs for data residency compliance:
api_url| Region | URL |
|---|---|
| Global (default) | |
| Australia | |
| Canada | |
| European Union | |
| India | |
| Saudi Arabia | |
| Singapore | |
| United Kingdom | |
| United States | |
Note: You can always use the global URL regardless of the value.
https://api.zoom.usapi_urlOAuth令牌响应中的字段表示用户所属区域,使用区域URL可满足数据驻留合规要求:
api_url| 区域 | URL |
|---|---|
| 全球(默认) | |
| 澳大利亚 | |
| 加拿大 | |
| 欧盟 | |
| 印度 | |
| 沙特阿拉伯 | |
| 新加坡 | |
| 英国 | |
| 美国 | |
注意: 无论值是什么,你都可以始终使用全球URL 。
api_urlhttps://api.zoom.usKey Features
核心功能
| Feature | Description |
|---|---|
| Meeting Management | Create, read, update, delete meetings with full scheduling control |
| User Provisioning | Automated user lifecycle (create, update, deactivate, delete) |
| Webinar Operations | Webinar CRUD, registrant management, panelist control |
| Cloud Recordings | List, download, delete recordings with file-type filtering |
| Reports & Analytics | Usage reports, participant data, daily statistics |
| Team Chat | Channel management, messaging, chatbot integration |
| Zoom Phone | Call management, voicemail, call routing |
| Zoom Rooms | Room management, device control, scheduling |
| Webhooks | Real-time event notifications for 100+ event types |
| WebSockets | Persistent event streaming without public endpoints |
| GraphQL (Beta) | Single-endpoint flexible queries at |
| AI Companion | Meeting summaries, transcripts, AI-generated content |
| AI Services / Scribe | File and archive transcription via Build-platform JWT-authenticated endpoints |
| 功能 | 描述 |
|---|---|
| 会议管理 | 创建、查询、更新、删除会议,支持完整的日程控制 |
| 用户配置 | 自动化用户生命周期管理(创建、更新、停用、删除) |
| 网络研讨会操作 | 网络研讨会CRUD、注册人员管理、嘉宾控制 |
| 云录制 | 列出、下载、删除录制文件,支持按文件类型过滤 |
| 报告与分析 | 使用报告、参会者数据、每日统计 |
| 团队聊天 | 频道管理、消息发送、聊天机器人集成 |
| Zoom Phone | 通话管理、语音信箱、呼叫路由 |
| Zoom Rooms | 会议室管理、设备控制、日程安排 |
| Webhooks | 100+种事件类型的实时事件通知 |
| WebSockets | 无需公开端点的持久化事件流 |
| GraphQL(测试版) | 位于 |
| AI助手 | 会议摘要、转录、AI生成内容 |
| AI服务 / Scribe | 通过Build平台JWT认证的端点实现文件和归档转录 |
Prerequisites
前置要求
- Zoom account (Free tier has API access with lower rate limits)
- App registered on Zoom App Marketplace
- OAuth credentials (Server-to-Server OAuth or User OAuth)
- Appropriate scopes for target endpoints
Need help with authentication? See the zoom-oauth skill for complete OAuth flow implementation.
- Zoom账户(免费套餐也有API访问权限,但速率限制更低)
- 在Zoom应用市场注册的应用
- OAuth凭证(Server-to-Server OAuth或用户OAuth)
- 目标端点对应的适当权限范围
需要认证相关帮助? 查看**zoom-oauth**技能获取完整的OAuth流程实现指南。
Critical Gotchas and Best Practices
关键注意事项和最佳实践
⚠️ JWT App Type is Deprecated
⚠️ JWT应用类型已弃用
The JWT app type is deprecated. Migrate to Server-to-Server OAuth. This does NOT affect JWT token signatures used in Video SDK — only the Marketplace "JWT" app type for REST API access.
javascript
// OLD (JWT app type - DEPRECATED)
const token = jwt.sign({ iss: apiKey, exp: expiry }, apiSecret);
// NEW (Server-to-Server OAuth)
const token = await getServerToServerToken(accountId, clientId, clientSecret);JWT应用类型已弃用,请迁移到Server-to-Server OAuth。这不会影响Video SDK中使用的JWT令牌签名——仅针对REST API访问的市场"JWT"应用类型。
javascript
// 旧方案(JWT应用类型 - 已弃用)
const token = jwt.sign({ iss: apiKey, exp: expiry }, apiSecret);
// 新方案(Server-to-Server OAuth)
const token = await getServerToServerToken(accountId, clientId, clientSecret);⚠️ The me
Keyword Rules
me⚠️ me
关键字使用规则
me- User-level OAuth apps: MUST use instead of
me(otherwise: invalid token error)userId - Server-to-Server OAuth apps: MUST NOT use — provide the actual
meor emailuserId - Account-level OAuth apps: Can use either or
meuserId
- 用户级OAuth应用: 必须使用代替
me(否则会出现无效令牌错误)userId - Server-to-Server OAuth应用: 禁止使用——请提供实际的
me或邮箱userId - 账户级OAuth应用: 可使用或
meuserId
⚠️ Meeting ID vs UUID — Double Encoding
⚠️ 会议ID与UUID — 双重编码
UUIDs that begin with or contain must be double URL-encoded:
///javascript
// UUID: /abc==
// Single encode: %2Fabc%3D%3D
// Double encode: %252Fabc%253D%253D ← USE THIS
const uuid = '/abc==';
const encoded = encodeURIComponent(encodeURIComponent(uuid));
const url = `https://api.zoom.us/v2/meetings/${encoded}`;以开头或包含的UUID必须进行双重URL编码:
///javascript
// UUID: /abc==
// 单次编码: %2Fabc%3D%3D
// 双重编码: %252Fabc%253D%253D ← 请使用这个
const uuid = '/abc==';
const encoded = encodeURIComponent(encodeURIComponent(uuid));
const url = `https://api.zoom.us/v2/meetings/${encoded}`;⚠️ Time Formats
⚠️ 时间格式
- — UTC time (note the
yyyy-MM-ddTHH:mm:ssZsuffix)Z - — Local time (no
yyyy-MM-ddTHH:mm:ss, usesZfield)timezone - Some report APIs only accept UTC. Check the API reference for each endpoint.
- — UTC时间(注意后缀
yyyy-MM-ddTHH:mm:ssZ)Z - — 本地时间(无
yyyy-MM-ddTHH:mm:ss,使用Z字段)timezone - 部分报告API仅接受UTC时间,请查看每个端点的API参考文档。
⚠️ Rate Limits Are Per-Account, Not Per-App
⚠️ 速率限制是按账户计算,而非按应用计算
All apps on the same Zoom account share rate limits. One heavy app can impact others. Monitor headers proactively.
X-RateLimit-Remaining同一个Zoom账户下的所有应用共享速率限制,一个高负载应用会影响其他应用。请主动监控响应头。
X-RateLimit-Remaining⚠️ Per-User Daily Limits
⚠️ 单用户每日限制
Meeting/Webinar create/update operations are limited to 100 per day per user (resets at 00:00 UTC). Distribute operations across different host users when doing bulk operations.
会议/网络研讨会的创建/更新操作限制为每个用户每天100次(UTC时间00:00重置)。执行批量操作时请将请求分散到不同的主持人用户。
⚠️ Download URLs Require Auth and Follow Redirects
⚠️ 下载URL需要认证并跟随重定向
Recording values require Bearer token authentication and may redirect. Always follow redirects:
download_urlbash
curl -L -H "Authorization: Bearer ACCESS_TOKEN" "https://zoom.us/rec/download/..."录制文件的值需要Bearer令牌认证,且可能会重定向,请始终跟随重定向:
download_urlbash
curl -L -H "Authorization: Bearer ACCESS_TOKEN" "https://zoom.us/rec/download/..."Use Webhooks Instead of Polling
使用Webhooks代替轮询
javascript
// DON'T: Poll every minute (wastes API quota)
setInterval(() => getMeetings(), 60000);
// DO: Receive webhook events in real-time
app.post('/webhook', (req, res) => {
if (req.body.event === 'meeting.started') {
handleMeetingStarted(req.body.payload);
}
res.status(200).send();
});Webhook setup details: See the zoom-webhooks skill for comprehensive webhook implementation.
javascript
// 不推荐:每分钟轮询(浪费API配额)
setInterval(() => getMeetings(), 60000);
// 推荐:实时接收Webhook事件
app.post('/webhook', (req, res) => {
if (req.body.event === 'meeting.started') {
handleMeetingStarted(req.body.payload);
}
res.status(200).send();
});Webhook配置详情: 查看**zoom-webhooks**技能获取全面的Webhook实现指南。
Complete Documentation Library
完整文档库
This skill includes comprehensive guides organized by category:
本技能包含按类别组织的全面指南:
Core Concepts
核心概念
- API Architecture - REST design, base URLs, regional routing, keyword, ID vs UUID, time formats
me - Authentication Flows - All OAuth flows (S2S, User, PKCE, Device Code)
- Rate Limiting Strategy - Limits by plan, retry patterns, request queuing
- API架构 - REST设计、基础URL、区域路由、关键字、ID与UUID对比、时间格式
me - 认证流程 - 所有OAuth流程(S2S、用户、PKCE、设备码)
- 速率限制策略 - 按方案划分的限制、重试模式、请求队列
Complete Examples
完整示例
- Meeting Lifecycle - Full Create → Update → Start → End → Delete flow with webhook events
- User Management - CRUD users, list with pagination, bulk operations
- Recording Pipeline - Download recordings via webhooks + API
- Webhook Server - Express.js server with CRC validation and signature verification
- GraphQL Queries - GraphQL queries, mutations, cursor pagination
- 会议生命周期 - 包含Webhook事件的完整创建→更新→开始→结束→删除流程
- 用户管理 - 用户CRUD、分页查询、批量操作
- 录制文件处理Pipeline - 通过Webhook+API下载录制文件
- Webhook服务 - 带CRC校验和签名验证的Express.js服务
- GraphQL查询 - GraphQL查询、变更、游标分页
Troubleshooting
故障排查
- Common Errors - HTTP status codes, Zoom error codes, error response formats
- Common Issues - Rate limits, token refresh, pagination pitfalls, gotchas
- 常见错误 - HTTP状态码、Zoom错误码、错误响应格式
- 常见问题 - 速率限制、令牌刷新、分页陷阱、注意事项
References (39 files covering all Zoom API domains)
参考文档(39个文件覆盖所有Zoom API领域)
Core APIs
核心API
- references/meetings.md - Meeting CRUD, types, settings
- references/users.md - User provisioning, types, scopes
- references/webinars.md - Webinar management, registrants
- references/recordings.md - Cloud recording access
- references/reports.md - Usage reports, analytics
- references/accounts.md - Account management
- references/meetings.md - 会议CRUD、类型、设置
- references/users.md - 用户配置、类型、权限范围
- references/webinars.md - 网络研讨会管理、注册人员
- references/recordings.md - 云录制访问
- references/reports.md - 使用报告、分析
- references/accounts.md - 账户管理
Communication
通讯类
- references/team-chat.md - Team Chat messaging
- references/chatbot.md - Interactive chatbots
- references/phone.md - Zoom Phone
- references/mail.md - Zoom Mail
- references/calendar.md - Zoom Calendar
- references/team-chat.md - 团队聊天消息
- references/chatbot.md - 交互式聊天机器人
- references/phone.md - Zoom Phone
- references/mail.md - Zoom Mail
- references/calendar.md - Zoom Calendar
Infrastructure
基础设施类
- references/rooms.md - Zoom Rooms
- references/scim2.md - SCIM 2.0 provisioning APIs
- references/rate-limits.md - Rate limit details
- references/qss.md - Quality of Service Subscription
- references/rooms.md - Zoom Rooms
- references/scim2.md - SCIM 2.0配置API
- references/rate-limits.md - 速率限制详情
- references/qss.md - 服务质量订阅
Advanced
高级功能
- references/graphql.md - GraphQL API (beta)
- references/ai-companion.md - AI features
- references/authentication.md - Auth reference
- references/openapi.md - OpenAPI specs, Postman, code generation
- references/graphql.md - GraphQL API(测试版)
- references/ai-companion.md - AI功能
- references/authentication.md - 认证参考
- references/openapi.md - OpenAPI规范、Postman、代码生成
Additional API Domains
其他API领域
- references/events.md - Events and event platform APIs
- references/scheduler.md - Zoom Scheduler APIs
- references/tasks.md - Tasks APIs
- references/whiteboard.md - Whiteboard APIs
- references/video-management.md - Video management APIs
- references/video-sdk-api.md - Video SDK REST APIs
- references/marketplace-apps.md - Marketplace app management
- references/commerce.md - Commerce and billing APIs
- references/contact-center.md - Contact Center APIs
- references/quality-management.md - Quality management APIs
- references/workforce-management.md - Workforce management APIs
- references/healthcare.md - Healthcare APIs
- references/auto-dialer.md - Auto dialer APIs
- references/number-management.md - Number management APIs
- references/revenue-accelerator.md - Revenue Accelerator APIs
- references/virtual-agent.md - Virtual Agent APIs
- references/cobrowse-sdk-api.md - Cobrowse SDK APIs
- references/crc.md - Cloud Room Connector APIs
- references/clips.md - Clips APIs
- references/zoom-docs.md - Zoom docs and source references
- references/events.md - 事件和事件平台API
- references/scheduler.md - Zoom日程安排API
- references/tasks.md - 任务API
- references/whiteboard.md - 白板API
- references/video-management.md - 视频管理API
- references/video-sdk-api.md - Video SDK REST API
- references/marketplace-apps.md - 应用市场应用管理
- references/commerce.md - 商务和计费API
- references/contact-center.md - 联络中心API
- references/quality-management.md - 质量管理API
- references/workforce-management.md - 劳动力管理API
- references/healthcare.md - 医疗行业API
- references/auto-dialer.md - 自动拨号器API
- references/number-management.md - 号码管理API
- references/revenue-accelerator.md - 收入加速API
- references/virtual-agent.md - 虚拟助手API
- references/cobrowse-sdk-api.md - 协同浏览SDK API
- references/crc.md - 云会议室连接器API
- references/clips.md - 片段API
- references/zoom-docs.md - Zoom文档和源参考
Sample Repositories
示例仓库
Official (by Zoom)
官方(Zoom出品)
| Type | Repository |
|---|---|
| OAuth Sample | oauth-sample-app |
| S2S OAuth Starter | server-to-server-oauth-starter-api |
| User OAuth | user-level-oauth-starter |
| S2S Token | server-to-server-oauth-token |
| Rivet Library | rivet-javascript |
| WebSocket Sample | websocket-js-sample |
| Webhook Sample | webhook-sample-node.js |
| Python S2S | server-to-server-python-sample |
| 类型 | 仓库 |
|---|---|
| OAuth示例 | oauth-sample-app |
| S2S OAuth入门模板 | server-to-server-oauth-starter-api |
| 用户OAuth | user-level-oauth-starter |
| S2S令牌 | server-to-server-oauth-token |
| Rivet库 | rivet-javascript |
| WebSocket示例 | websocket-js-sample |
| Webhook示例 | webhook-sample-node.js |
| Python S2S示例 | server-to-server-python-sample |
Resources
资源
- API Reference: https://developers.zoom.us/api-hub/
- GraphQL Playground: https://nws.zoom.us/graphql/playground
- Postman Collection: https://marketplace.zoom.us/docs/api-reference/postman
- Developer Forum: https://devforum.zoom.us/
- Changelog: https://developers.zoom.us/changelog/
- Status Page: https://status.zoom.us/
Need help? Start with Integrated Index section below for complete navigation.
- API参考: https://developers.zoom.us/api-hub/
- GraphQL playground: https://nws.zoom.us/graphql/playground
- Postman集合: https://marketplace.zoom.us/docs/api-reference/postman
- 开发者论坛: https://devforum.zoom.us/
- 更新日志: https://developers.zoom.us/changelog/
- 状态页面: https://status.zoom.us/
需要帮助? 先查看下方的集成索引部分获取完整导航。
Integrated Index
集成索引
This section was migrated from .
SKILL.md本章节从迁移而来。
SKILL.mdQuick Start Path
快速入门路径
If you're new to the Zoom REST API, follow this order:
-
Run preflight checks first → RUNBOOK.md
-
Understand the API design → concepts/api-architecture.md
- Base URLs, regional endpoints, keyword rules
me - Meeting ID vs UUID, double-encoding, time formats
- Base URLs, regional endpoints,
-
Set up authentication → concepts/authentication-flows.md
- Server-to-Server OAuth (backend automation)
- User OAuth with PKCE (user-facing apps)
- Cross-reference: zoom-oauth
-
Create your first meeting → examples/meeting-lifecycle.md
- Full CRUD with curl and Node.js examples
- Webhook event integration
-
Handle rate limits → concepts/rate-limiting-strategy.md
- Plan-based limits, retry patterns, request queuing
-
Set up webhooks → examples/webhook-server.md
- CRC validation, signature verification, event handling
-
Troubleshoot issues → troubleshooting/common-issues.md
- Token refresh, pagination pitfalls, common gotchas
如果你是Zoom REST API新手,请按以下顺序学习:
-
先执行预检检查 → RUNBOOK.md
-
了解API设计 → concepts/api-architecture.md
- 基础URL、区域端点、关键字规则
me - 会议ID与UUID、双重编码、时间格式
- 基础URL、区域端点、
-
配置认证 → concepts/authentication-flows.md
- Server-to-Server OAuth(后端自动化)
- 带PKCE的用户OAuth(面向用户的应用)
- 交叉参考:zoom-oauth
-
创建你的第一个会议 → examples/meeting-lifecycle.md
- 包含curl和Node.js示例的完整CRUD
- Webhook事件集成
-
处理速率限制 → concepts/rate-limiting-strategy.md
- 基于方案的限制、重试模式、请求队列
-
配置Webhooks → examples/webhook-server.md
- CRC校验、签名验证、事件处理
-
排查问题 → troubleshooting/common-issues.md
- 令牌刷新、分页陷阱、常见注意事项
Documentation Structure
文档结构
rest-api/
├── SKILL.md # Main skill overview + quick start
├── SKILL.md # This file - navigation guide
│
├── concepts/ # Core architectural concepts
│ ├── api-architecture.md # REST design, URLs, IDs, time formats
│ ├── authentication-flows.md # OAuth flows (S2S, User, PKCE, Device)
│ └── rate-limiting-strategy.md # Limits by plan, retry, queuing
│
├── examples/ # Complete working code
│ ├── meeting-lifecycle.md # Create→Update→Start→End→Delete
│ ├── user-management.md # CRUD users, pagination, bulk ops
│ ├── recording-pipeline.md # Download recordings via webhooks
│ ├── webhook-server.md # Express.js CRC + signature verification
│ └── graphql-queries.md # GraphQL queries, mutations, pagination
│
├── troubleshooting/ # Problem solving
│ ├── common-errors.md # HTTP codes, Zoom error codes table
│ └── common-issues.md # Rate limits, tokens, pagination pitfalls
│
└── references/ # 39 domain-specific reference files
├── authentication.md # Auth methods reference
├── meetings.md # Meeting endpoints
├── users.md # User management endpoints
├── webinars.md # Webinar endpoints
├── recordings.md # Cloud recording endpoints
├── reports.md # Reports & analytics
├── accounts.md # Account management
├── rate-limits.md # Rate limit details
├── graphql.md # GraphQL API (beta)
├── zoom-team-chat.md # Team Chat messaging
├── chatbot.md # Chatbot integration
├── phone.md # Zoom Phone
├── rooms.md # Zoom Rooms
├── calendar.md # Zoom Calendar
├── mail.md # Zoom Mail
├── ai-companion.md # AI features
├── openapi.md # OpenAPI specs
├── qss.md # Quality of Service
├── contact-center.md # Contact Center
├── events.md # Zoom Events
├── whiteboard.md # Whiteboard
├── clips.md # Zoom Clips
├── scheduler.md # Scheduler
├── scim2.md # SCIM 2.0
├── marketplace-apps.md # App management
├── zoom-video-sdk-api.md # Video SDK REST
└── ... (39 total files)rest-api/
├── SKILL.md # 主技能概述+快速入门
├── SKILL.md # 本文件 - 导航指南
│
├── concepts/ # 核心架构概念
│ ├── api-architecture.md # REST设计、URL、ID、时间格式
│ ├── authentication-flows.md # OAuth流程(S2S、用户、PKCE、设备)
│ └── rate-limiting-strategy.md # 按方案划分的限制、重试、队列
│
├── examples/ # 完整可运行代码
│ ├── meeting-lifecycle.md # 创建→更新→开始→结束→删除
│ ├── user-management.md # 用户CRUD、分页、批量操作
│ ├── recording-pipeline.md # 通过Webhook下载录制文件
│ ├── webhook-server.md # Express.js CRC+签名验证
│ └── graphql-queries.md # GraphQL查询、变更、分页
│
├── troubleshooting/ # 问题解决
│ ├── common-errors.md # HTTP代码、Zoom错误码表
│ └── common-issues.md # 速率限制、令牌、分页陷阱
│
└── references/ # 39个特定领域参考文件
├── authentication.md # 认证方法参考
├── meetings.md # 会议端点
├── users.md # 用户管理端点
├── webinars.md # 网络研讨会端点
├── recordings.md # 云录制端点
├── reports.md # 报告与分析
├── accounts.md # 账户管理
├── rate-limits.md # 速率限制详情
├── graphql.md # GraphQL API(测试版)
├── zoom-team-chat.md # 团队聊天消息
├── chatbot.md # 聊天机器人集成
├── phone.md # Zoom Phone
├── rooms.md # Zoom Rooms
├── calendar.md # Zoom Calendar
├── mail.md # Zoom Mail
├── ai-companion.md # AI功能
├── openapi.md # OpenAPI规范
├── qss.md # 服务质量
├── contact-center.md # 联络中心
├── events.md # Zoom Events
├── whiteboard.md # 白板
├── clips.md # Zoom Clips
├── scheduler.md # 日程安排
├── scim2.md # SCIM 2.0
├── marketplace-apps.md # 应用管理
├── zoom-video-sdk-api.md # Video SDK REST
└── ... (共39个文件)By Use Case
按使用场景划分
I want to create and manage meetings
我想要创建和管理会议
- API Architecture - Base URL, time formats
- Meeting Lifecycle - Full CRUD + webhook events
- Meetings Reference - All endpoints, types, settings
- API架构 - 基础URL、时间格式
- 会议生命周期 - 完整CRUD+Webhook事件
- 会议参考 - 所有端点、类型、设置
I want to manage users programmatically
我想要通过编程方式管理用户
- User Management - CRUD, pagination, bulk ops
- Users Reference - Endpoints, user types, scopes
- 用户管理 - CRUD、分页、批量操作
- 用户参考 - 端点、用户类型、权限范围
I want to download recordings automatically
我想要自动下载录制文件
- Recording Pipeline - Webhook-triggered downloads
- Recordings Reference - File types, download auth
- 录制文件处理Pipeline - Webhook触发的下载
- 录制文件参考 - 文件类型、下载认证
I want to receive real-time events
我想要接收实时事件
- Webhook Server - CRC validation, signature check
- Cross-reference: zoom-webhooks for comprehensive webhook docs
- Cross-reference: zoom-websockets for WebSocket events
- Webhook服务 - CRC校验、签名检查
- 交叉参考:zoom-webhooks获取全面的Webhook文档
- 交叉参考:zoom-websockets获取WebSocket事件相关内容
I want to use GraphQL instead of REST
我想要使用GraphQL代替REST
- GraphQL Queries - Queries, mutations, pagination
- GraphQL Reference - Available entities, scopes, rate limits
- GraphQL查询 - 查询、变更、分页
- GraphQL参考 - 可用实体、权限范围、速率限制
I want to set up authentication
我想要配置认证
- Authentication Flows - All OAuth methods
- Cross-reference: zoom-oauth for full OAuth implementation
- 认证流程 - 所有OAuth方法
- 交叉参考:zoom-oauth获取完整OAuth实现
I'm hitting rate limits
我遇到了速率限制
- Rate Limiting Strategy - Limits by plan, strategies
- Rate Limits Reference - Detailed tables
- Common Issues - Practical solutions
- 速率限制策略 - 按方案划分的限制、应对策略
- 速率限制参考 - 详细表格
- 常见问题 - 实用解决方案
I'm getting errors
我遇到了错误
- Common Errors - Error code tables
- Common Issues - Diagnostic workflow
- 常见错误 - 错误码表
- 常见问题 - 诊断流程
I want to build webinars
我想要构建网络研讨会
- Webinars Reference - Endpoints, types, registrants
- Meeting Lifecycle - Similar patterns apply
- 网络研讨会参考 - 端点、类型、注册人员
- 会议生命周期 - 适用类似模式
I want to integrate Zoom Phone
我想要集成Zoom Phone
- Phone Reference - Phone API endpoints
- Rate Limiting Strategy - Separate Phone rate limits
- Phone参考 - Phone API端点
- 速率限制策略 - 独立的Phone速率限制
Most Critical Documents
最重要的文档
1. API Architecture (FOUNDATION)
1. API架构(基础)
concepts/api-architecture.md
Essential knowledge before making any API call:
- Base URLs and regional endpoints
- The keyword rules (different per app type!)
me - Meeting ID vs UUID double-encoding
- ISO 8601 time formats (UTC vs local)
- Download URL authentication
concepts/api-architecture.md
调用任何API之前必须了解的核心知识:
- 基础URL和区域端点
- 关键字规则(不同应用类型规则不同!)
me - 会议ID与UUID双重编码
- ISO 8601时间格式(UTC vs 本地时间)
- 下载URL认证
2. Rate Limiting Strategy (MOST COMMON PRODUCTION ISSUE)
2. 速率限制策略(最常见的生产问题)
concepts/rate-limiting-strategy.md
Rate limits are per-account, shared across all apps:
- Free: 4/sec Light, 2/sec Medium, 1/sec Heavy
- Pro: 30/sec Light, 20/sec Medium, 10/sec Heavy
- Business+: 80/sec Light, 60/sec Medium, 40/sec Heavy
- Per-user: 100 meeting create/update per day
concepts/rate-limiting-strategy.md
速率限制按账户计算,所有应用共享:
- 免费版:轻量接口4次/秒,中等2次/秒,重量级1次/秒
- 专业版:轻量30次/秒,中等20次/秒,重量级10次/秒
- 商业版+:轻量80次/秒,中等60次/秒,重量级40次/秒
- 单用户:每天最多100次会议创建/更新操作
3. Meeting Lifecycle (MOST COMMON TASK)
3. 会议生命周期(最常见的任务)
examples/meeting-lifecycle.md
Complete CRUD with webhook integration — the pattern most developers need first.
examples/meeting-lifecycle.md
包含Webhook集成的完整CRUD——大多数开发者首先需要的模式。
Key Learnings
核心结论
Critical Discoveries:
关键发现:
-
JWT app type is deprecated — use Server-to-Server OAuth
- The JWT app type on Marketplace is deprecated, NOT JWT token signatures
- See: Authentication Flows
-
keyword behaves differently by app type
me- User OAuth: MUST use
me - S2S OAuth: MUST NOT use
me - See: API Architecture
- User OAuth: MUST use
-
Rate limiting is nuanced (don’t assume a single global rule)
- Limits can vary by endpoint and may be enforced at account/app/user levels
- Treat quotas as potentially shared across your account and implement backoff
- Monitor rate limit response headers (for example )
X-RateLimit-Remaining - See: Rate Limiting Strategy
-
100 meeting creates per user per day
- This is a hard per-user limit, not related to rate limits
- Distribute across host users for bulk operations
- See: Rate Limiting Strategy
-
UUID double-encoding is required for certain UUIDs
- UUIDs starting with or containing
/must be double-encoded// - See: API Architecture
- UUIDs starting with
-
Pagination: use, not
next_page_tokenpage_number- is legacy and being phased out
page_number - is the recommended approach
next_page_token - See: Common Issues
-
GraphQL is at, not
/v3/graphql/v2/- Single endpoint, cursor-based pagination
- Rate limits apply per-field (each field = one REST equivalent)
- See: GraphQL Queries
-
JWT应用类型已弃用 — 请使用Server-to-Server OAuth
- 应用市场上的JWT应用类型已弃用,而非JWT令牌签名
- 参见:认证流程
-
关键字的行为因应用类型而异
me- 用户OAuth:必须使用
me - S2S OAuth:禁止使用
me - 参见:API架构
- 用户OAuth:必须使用
-
速率限制规则很复杂(不要假设单一全局规则)
- 不同端点的限制可能不同,可能在账户/应用/用户级别强制执行
- 配额可能在你的账户内共享,请实现退避机制
- 监控速率限制响应头(例如)
X-RateLimit-Remaining - 参见:速率限制策略
-
每个用户每天最多创建100次会议
- 这是硬性单用户限制,与速率限制无关
- 批量操作时分散到多个主持人用户
- 参见:速率限制策略
-
特定UUID需要双重编码
- 以开头或包含
/的UUID必须双重编码// - 参见:API架构
- 以
-
分页:使用,而非
next_page_tokenpage_number- 是遗留功能,正在逐步淘汰
page_number - 是推荐方案
next_page_token - 参见:常见问题
-
GraphQL位于,而非
/v3/graphql/v2/- 单端点、基于游标的分页
- 速率限制按字段计算(每个字段=一个等效REST请求)
- 参见:GraphQL查询
Quick Reference
快速参考
"401 Unauthorized"
"401未授权"
→ Authentication Flows - Token expired or wrong scopes
→ 认证流程 - 令牌过期或权限范围错误
"429 Too Many Requests"
"429请求过多"
→ Rate Limiting Strategy - Check headers for reset time
→ 速率限制策略 - 检查响应头获取重置时间
"Invalid token" when using userId
使用userId时提示"无效令牌"
→ API Architecture - User OAuth apps must use
me→ API架构 - 用户OAuth应用必须使用
me"How do I paginate results?"
"我该如何分页查询结果?"
→ Common Issues - Use
next_page_token→ 常见问题 - 使用
next_page_token"Webhooks not arriving"
"Webhook未送达"
→ Webhook Server - CRC validation required
→ Webhook服务 - 需要CRC校验
"Recording download fails"
"录制文件下载失败"
→ Recording Pipeline - Bearer auth + follow redirects
→ 录制文件处理Pipeline - Bearer认证+跟随重定向
"How do I create a meeting?"
"我该如何创建会议?"
→ Meeting Lifecycle - Full working examples
→ 会议生命周期 - 完整可运行示例
Related Skills
相关技能
| Skill | Use When |
|---|---|
| zoom-oauth | Implementing OAuth flows, token management |
| zoom-webhooks | Deep webhook implementation, event catalog |
| zoom-websockets | WebSocket event streaming |
| zoom-general | Cross-product patterns, community repos |
Based on Zoom REST API v2 (current) and GraphQL v3 (beta)
| 技能 | 使用场景 |
|---|---|
| zoom-oauth | 实现OAuth流程、令牌管理 |
| zoom-webhooks | 深度Webhook实现、事件目录 |
| zoom-websockets | WebSocket事件流 |
| zoom-general | 跨产品模式、社区仓库 |
基于Zoom REST API v2(当前版本)和GraphQL v3(测试版)
Environment Variables
环境变量
- See references/environment-variables.md for standardized keys and where to find each value.
.env
- 查看references/environment-variables.md获取标准化的键以及每个值的获取位置。
.env