[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-build-zoom-rest-api-app":3,"mdc-5xzb3c-key":37,"related-org-anthropic-build-zoom-rest-api-app":4951,"related-repo-anthropic-build-zoom-rest-api-app":5137},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"build-zoom-rest-api-app","build apps with Zoom REST API","Reference skill for Zoom REST API. Use after choosing an API-based workflow when you need endpoint selection, resource-management patterns, OAuth requirements, rate-limit awareness, or API error debugging.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20,23],{"name":14,"slug":15,"type":16},"Backend","backend","tag",{"name":18,"slug":19,"type":16},"REST API","rest-api",{"name":21,"slug":22,"type":16},"API Development","api-development",{"name":24,"slug":25,"type":16},"Zoom","zoom",22885,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fknowledge-work-plugins","2026-04-10T04:56:58.377872",null,2736,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Open source repository of plugins primarily intended for knowledge workers to use in Claude Cowork","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fknowledge-work-plugins\u002Ftree\u002FHEAD\u002Fpartner-built\u002Fzoom-plugin\u002Fskills\u002Frest-api","---\nname: build-zoom-rest-api-app\ndescription: \"Reference skill for Zoom REST API. Use after choosing an API-based workflow when you need endpoint selection, resource-management patterns, OAuth requirements, rate-limit awareness, or API error debugging.\"\ntriggers:\n  - \"api call\"\n  - \"rest api\"\n  - \"api create meeting\"\n  - \"api get meeting\"\n  - \"api list meetings\"\n  - \"api update meeting\"\n  - \"api delete meeting\"\n  - \"meeting endpoint\"\n  - \"\u002Fv2\u002Fmeetings\"\n  - \"create user\"\n  - \"zoom api\"\n  - \"api endpoint\"\n  - \"recordings api\"\n  - \"users api\"\n  - \"webinars api\"\n  - \"server-to-server oauth\"\n  - \"account_credentials\"\n  - \"account id\"\n  - \"invalid access token\"\n  - \"does not contain scopes\"\n  - \"access token is expired\"\n  - \"webhook verification\"\n  - \"crc\"\n  - \"download_url\"\n---\n\n# \u002Fbuild-zoom-rest-api-app\n\nBackground reference for deterministic server-side Zoom automation and resource management. Prefer `plan-zoom-product`, `plan-zoom-integration`, or `debug-zoom` first, then route here for endpoint-level detail.\n\n# Zoom REST API\n\nExpert 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.\n\n**Official Documentation**: https:\u002F\u002Fdevelopers.zoom.us\u002Fapi-hub\u002F\n**API Hub Reference**: https:\u002F\u002Fdevelopers.zoom.us\u002Fapi-hub\u002Fmeetings\u002F\n**OpenAPI Inventories**: `https:\u002F\u002Fdevelopers.zoom.us\u002Fapi-hub\u002F\u003Cdomain>\u002Fmethods\u002Fendpoints.json`\n\n## Quick Links\n\n**New to Zoom REST API? Follow this path:**\n\n1. **[API Architecture](concepts\u002Fapi-architecture.md)** - Base URLs, regional URLs, `me` keyword, ID vs UUID, time formats\n2. **[Authentication Flows](concepts\u002Fauthentication-flows.md)** - OAuth setup (S2S, User, PKCE, Device Code)\n3. **[Meeting URLs vs Meeting SDK](concepts\u002Fmeeting-urls-and-sdk-joining.md)** - Stop mixing `join_url` with Meeting SDK\n3. **[Meeting Lifecycle](examples\u002Fmeeting-lifecycle.md)** - Create → Update → Start → End → Delete with webhooks\n4. **[Rate Limiting Strategy](concepts\u002Frate-limiting-strategy.md)** - Plan tiers, per-user limits, retry patterns\n\n**Reference:**\n- **[Meetings](references\u002Fmeetings.md)** - Meeting CRUD, types, settings\n- **[Users](references\u002Fusers.md)** - User provisioning and management\n- **[Recordings](references\u002Frecordings.md)** - Cloud recording access and download\n- **[AI Services](references\u002Fai-services.md)** - Scribe endpoint inventory and current AI Services path surface\n- **[GraphQL Queries](examples\u002Fgraphql-queries.md)** - Alternative query API (beta)\n- **Integrated Index** - see the section below in this file\n\nMost domain files under `references\u002F` are aligned to the official API Hub `endpoints.json` inventories. Treat those files as the local source of truth for method\u002Fpath discovery.\n\n**Having issues?**\n- Start with preflight checks → [5-Minute Runbook](RUNBOOK.md)\n- 401 Unauthorized → [Authentication Flows](concepts\u002Fauthentication-flows.md) (check token expiry, scopes)\n- 429 Too Many Requests → [Rate Limiting Strategy](concepts\u002Frate-limiting-strategy.md)\n- Error codes → [Common Errors](troubleshooting\u002Fcommon-errors.md)\n- Pagination confusion → [Common Issues](troubleshooting\u002Fcommon-issues.md)\n- Webhooks not arriving → [Webhook Server](examples\u002Fwebhook-server.md)\n- Forum-derived FAQs → [Forum Top Questions](troubleshooting\u002Fforum-top-questions.md)\n- Token\u002Fscope failures → [Token + Scope Playbook](troubleshooting\u002Ftoken-scope-playbook.md)\n\n**Building event-driven integrations?**\n- [Webhook Server](examples\u002Fwebhook-server.md) - Express.js server with CRC validation\n- [Recording Pipeline](examples\u002Frecording-pipeline.md) - Auto-download via webhook events\n\n## Quick Start\n\n### Get an Access Token (Server-to-Server OAuth)\n\n```bash\ncurl -X POST \"https:\u002F\u002Fzoom.us\u002Foauth\u002Ftoken\" \\\n  -H \"Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)\" \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"grant_type=account_credentials&account_id=ACCOUNT_ID\"\n```\n\nResponse:\n```json\n{\n  \"access_token\": \"eyJhbGciOiJIUzI1NiJ9...\",\n  \"token_type\": \"bearer\",\n  \"expires_in\": 3600,\n  \"scope\": \"meeting:read meeting:write user:read\"\n}\n```\n\n### Create a Meeting\n\n```bash\ncurl -X POST \"https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fusers\u002FHOST_USER_ID\u002Fmeetings\" \\\n  -H \"Authorization: Bearer ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"topic\": \"Team Standup\",\n    \"type\": 2,\n    \"start_time\": \"2025-03-15T10:00:00Z\",\n    \"duration\": 30,\n    \"settings\": {\n      \"join_before_host\": false,\n      \"waiting_room\": true\n    }\n  }'\n```\n\nFor S2S OAuth, use an explicit host user ID or email in the path. Do not use `me`.\n\n### List Users with Pagination\n\n```bash\ncurl \"https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fusers?page_size=300&status=active\" \\\n  -H \"Authorization: Bearer ACCESS_TOKEN\"\n```\n\n## Base URL\n\n```\nhttps:\u002F\u002Fapi.zoom.us\u002Fv2\n```\n\n### Regional Base URLs\n\nThe `api_url` field in OAuth token responses indicates the user's region. Use regional URLs for data residency compliance:\n\n| Region | URL |\n|--------|-----|\n| Global (default) | `https:\u002F\u002Fapi.zoom.us\u002Fv2` |\n| Australia | `https:\u002F\u002Fapi-au.zoom.us\u002Fv2` |\n| Canada | `https:\u002F\u002Fapi-ca.zoom.us\u002Fv2` |\n| European Union | `https:\u002F\u002Fapi-eu.zoom.us\u002Fv2` |\n| India | `https:\u002F\u002Fapi-in.zoom.us\u002Fv2` |\n| Saudi Arabia | `https:\u002F\u002Fapi-sa.zoom.us\u002Fv2` |\n| Singapore | `https:\u002F\u002Fapi-sg.zoom.us\u002Fv2` |\n| United Kingdom | `https:\u002F\u002Fapi-uk.zoom.us\u002Fv2` |\n| United States | `https:\u002F\u002Fapi-us.zoom.us\u002Fv2` |\n\n**Note:** You can always use the global URL `https:\u002F\u002Fapi.zoom.us` regardless of the `api_url` value.\n\n## Key Features\n\n| Feature | Description |\n|---------|-------------|\n| **Meeting Management** | Create, read, update, delete meetings with full scheduling control |\n| **User Provisioning** | Automated user lifecycle (create, update, deactivate, delete) |\n| **Webinar Operations** | Webinar CRUD, registrant management, panelist control |\n| **Cloud Recordings** | List, download, delete recordings with file-type filtering |\n| **Reports & Analytics** | Usage reports, participant data, daily statistics |\n| **Team Chat** | Channel management, messaging, chatbot integration |\n| **Zoom Phone** | Call management, voicemail, call routing |\n| **Zoom Rooms** | Room management, device control, scheduling |\n| **Webhooks** | Real-time event notifications for 100+ event types |\n| **WebSockets** | Persistent event streaming without public endpoints |\n| **GraphQL (Beta)** | Single-endpoint flexible queries at `v3\u002Fgraphql` |\n| **AI Companion** | Meeting summaries, transcripts, AI-generated content |\n| **AI Services \u002F Scribe** | File and archive transcription via Build-platform JWT-authenticated endpoints |\n\n## Prerequisites\n\n- Zoom account (Free tier has API access with lower rate limits)\n- App registered on [Zoom App Marketplace](https:\u002F\u002Fmarketplace.zoom.us\u002F)\n- OAuth credentials (Server-to-Server OAuth or User OAuth)\n- Appropriate scopes for target endpoints\n\n> **Need help with authentication?** See the **[zoom-oauth](..\u002Foauth\u002FSKILL.md)** skill for complete OAuth flow implementation.\n\n## Critical Gotchas and Best Practices\n\n### ⚠️ JWT App Type is Deprecated\n\nThe 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.\n\n```javascript\n\u002F\u002F OLD (JWT app type - DEPRECATED)\nconst token = jwt.sign({ iss: apiKey, exp: expiry }, apiSecret);\n\n\u002F\u002F NEW (Server-to-Server OAuth)\nconst token = await getServerToServerToken(accountId, clientId, clientSecret);\n```\n\n### ⚠️ The `me` Keyword Rules\n\n- **User-level OAuth apps**: MUST use `me` instead of `userId` (otherwise: invalid token error)\n- **Server-to-Server OAuth apps**: MUST NOT use `me` — provide the actual `userId` or email\n- **Account-level OAuth apps**: Can use either `me` or `userId`\n\n### ⚠️ Meeting ID vs UUID — Double Encoding\n\nUUIDs that begin with `\u002F` or contain `\u002F\u002F` must be **double URL-encoded**:\n\n```javascript\n\u002F\u002F UUID: \u002Fabc==\n\u002F\u002F Single encode: %2Fabc%3D%3D\n\u002F\u002F Double encode: %252Fabc%253D%253D  ← USE THIS\n\nconst uuid = '\u002Fabc==';\nconst encoded = encodeURIComponent(encodeURIComponent(uuid));\nconst url = `https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fmeetings\u002F${encoded}`;\n```\n\n### ⚠️ Time Formats\n\n- `yyyy-MM-ddTHH:mm:ssZ` — **UTC time** (note the `Z` suffix)\n- `yyyy-MM-ddTHH:mm:ss` — **Local time** (no `Z`, uses `timezone` field)\n- Some report APIs only accept UTC. Check the API reference for each endpoint.\n\n### ⚠️ Rate Limits Are Per-Account, Not Per-App\n\nAll apps on the same Zoom account **share** rate limits. One heavy app can impact others. Monitor `X-RateLimit-Remaining` headers proactively.\n\n### ⚠️ Per-User Daily Limits\n\nMeeting\u002FWebinar create\u002Fupdate operations are limited to **100 per day per user** (resets at 00:00 UTC). Distribute operations across different host users when doing bulk operations.\n\n### ⚠️ Download URLs Require Auth and Follow Redirects\n\nRecording `download_url` values require Bearer token authentication and may redirect. Always follow redirects:\n\n```bash\ncurl -L -H \"Authorization: Bearer ACCESS_TOKEN\" \"https:\u002F\u002Fzoom.us\u002Frec\u002Fdownload\u002F...\"\n```\n\n### Use Webhooks Instead of Polling\n\n```javascript\n\u002F\u002F DON'T: Poll every minute (wastes API quota)\nsetInterval(() => getMeetings(), 60000);\n\n\u002F\u002F DO: Receive webhook events in real-time\napp.post('\u002Fwebhook', (req, res) => {\n  if (req.body.event === 'meeting.started') {\n    handleMeetingStarted(req.body.payload);\n  }\n  res.status(200).send();\n});\n```\n\n> **Webhook setup details:** See the **[zoom-webhooks](..\u002Fwebhooks\u002FSKILL.md)** skill for comprehensive webhook implementation.\n\n## Complete Documentation Library\n\nThis skill includes comprehensive guides organized by category:\n\n### Core Concepts\n- **[API Architecture](concepts\u002Fapi-architecture.md)** - REST design, base URLs, regional routing, `me` keyword, ID vs UUID, time formats\n- **[Authentication Flows](concepts\u002Fauthentication-flows.md)** - All OAuth flows (S2S, User, PKCE, Device Code)\n- **[Rate Limiting Strategy](concepts\u002Frate-limiting-strategy.md)** - Limits by plan, retry patterns, request queuing\n\n### Complete Examples\n- **[Meeting Lifecycle](examples\u002Fmeeting-lifecycle.md)** - Full Create → Update → Start → End → Delete flow with webhook events\n- **[User Management](examples\u002Fuser-management.md)** - CRUD users, list with pagination, bulk operations\n- **[Recording Pipeline](examples\u002Frecording-pipeline.md)** - Download recordings via webhooks + API\n- **[Webhook Server](examples\u002Fwebhook-server.md)** - Express.js server with CRC validation and signature verification\n- **[GraphQL Queries](examples\u002Fgraphql-queries.md)** - GraphQL queries, mutations, cursor pagination\n\n### Troubleshooting\n- **[Common Errors](troubleshooting\u002Fcommon-errors.md)** - HTTP status codes, Zoom error codes, error response formats\n- **[Common Issues](troubleshooting\u002Fcommon-issues.md)** - Rate limits, token refresh, pagination pitfalls, gotchas\n\n### References (39 files covering all Zoom API domains)\n\n#### Core APIs\n- **[references\u002Fmeetings.md](references\u002Fmeetings.md)** - Meeting CRUD, types, settings\n- **[references\u002Fusers.md](references\u002Fusers.md)** - User provisioning, types, scopes\n- **[references\u002Fwebinars.md](references\u002Fwebinars.md)** - Webinar management, registrants\n- **[references\u002Frecordings.md](references\u002Frecordings.md)** - Cloud recording access\n- **[references\u002Freports.md](references\u002Freports.md)** - Usage reports, analytics\n- **[references\u002Faccounts.md](references\u002Faccounts.md)** - Account management\n\n#### Communication\n- **[references\u002Fteam-chat.md](references\u002Fteam-chat.md)** - Team Chat messaging\n- **[references\u002Fchatbot.md](references\u002Fchatbot.md)** - Interactive chatbots\n- **[references\u002Fphone.md](references\u002Fphone.md)** - Zoom Phone\n- **[references\u002Fmail.md](references\u002Fmail.md)** - Zoom Mail\n- **[references\u002Fcalendar.md](references\u002Fcalendar.md)** - Zoom Calendar\n\n#### Infrastructure\n- **[references\u002Frooms.md](references\u002Frooms.md)** - Zoom Rooms\n- **[references\u002Fscim2.md](references\u002Fscim2.md)** - SCIM 2.0 provisioning APIs\n- **[references\u002Frate-limits.md](references\u002Frate-limits.md)** - Rate limit details\n- **[references\u002Fqss.md](references\u002Fqss.md)** - Quality of Service Subscription\n\n#### Advanced\n- **[references\u002Fgraphql.md](references\u002Fgraphql.md)** - GraphQL API (beta)\n- **[references\u002Fai-companion.md](references\u002Fai-companion.md)** - AI features\n- **[references\u002Fauthentication.md](references\u002Fauthentication.md)** - Auth reference\n- **[references\u002Fopenapi.md](references\u002Fopenapi.md)** - OpenAPI specs, Postman, code generation\n\n#### Additional API Domains\n- **[references\u002Fevents.md](references\u002Fevents.md)** - Events and event platform APIs\n- **[references\u002Fscheduler.md](references\u002Fscheduler.md)** - Zoom Scheduler APIs\n- **[references\u002Ftasks.md](references\u002Ftasks.md)** - Tasks APIs\n- **[references\u002Fwhiteboard.md](references\u002Fwhiteboard.md)** - Whiteboard APIs\n- **[references\u002Fvideo-management.md](references\u002Fvideo-management.md)** - Video management APIs\n- **[references\u002Fvideo-sdk-api.md](references\u002Fvideo-sdk-api.md)** - Video SDK REST APIs\n- **[references\u002Fmarketplace-apps.md](references\u002Fmarketplace-apps.md)** - Marketplace app management\n- **[references\u002Fcommerce.md](references\u002Fcommerce.md)** - Commerce and billing APIs\n- **[references\u002Fcontact-center.md](references\u002Fcontact-center.md)** - Contact Center APIs\n- **[references\u002Fquality-management.md](references\u002Fquality-management.md)** - Quality management APIs\n- **[references\u002Fworkforce-management.md](references\u002Fworkforce-management.md)** - Workforce management APIs\n- **[references\u002Fhealthcare.md](references\u002Fhealthcare.md)** - Healthcare APIs\n- **[references\u002Fauto-dialer.md](references\u002Fauto-dialer.md)** - Auto dialer APIs\n- **[references\u002Fnumber-management.md](references\u002Fnumber-management.md)** - Number management APIs\n- **[references\u002Frevenue-accelerator.md](references\u002Frevenue-accelerator.md)** - Revenue Accelerator APIs\n- **[references\u002Fvirtual-agent.md](references\u002Fvirtual-agent.md)** - Virtual Agent APIs\n- **[references\u002Fcobrowse-sdk-api.md](references\u002Fcobrowse-sdk-api.md)** - Cobrowse SDK APIs\n- **[references\u002Fcrc.md](references\u002Fcrc.md)** - Cloud Room Connector APIs\n- **[references\u002Fclips.md](references\u002Fclips.md)** - Clips APIs\n- **[references\u002Fzoom-docs.md](references\u002Fzoom-docs.md)** - Zoom docs and source references\n\n## Sample Repositories\n\n### Official (by Zoom)\n\n| Type | Repository |\n|------|------------|\n| OAuth Sample | [oauth-sample-app](https:\u002F\u002Fgithub.com\u002Fzoom\u002Foauth-sample-app) |\n| S2S OAuth Starter | [server-to-server-oauth-starter-api](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fserver-to-server-oauth-starter-api) |\n| User OAuth | [user-level-oauth-starter](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fuser-level-oauth-starter) |\n| S2S Token | [server-to-server-oauth-token](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fserver-to-server-oauth-token) |\n| Rivet Library | [rivet-javascript](https:\u002F\u002Fgithub.com\u002Fzoom\u002Frivet-javascript) |\n| WebSocket Sample | [websocket-js-sample](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fwebsocket-js-sample) |\n| Webhook Sample | [webhook-sample-node.js](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fwebhook-sample-node.js) |\n| Python S2S | [server-to-server-python-sample](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fserver-to-server-python-sample) |\n\n## Resources\n\n- **API Reference**: https:\u002F\u002Fdevelopers.zoom.us\u002Fapi-hub\u002F\n- **GraphQL Playground**: https:\u002F\u002Fnws.zoom.us\u002Fgraphql\u002Fplayground\n- **Postman Collection**: https:\u002F\u002Fmarketplace.zoom.us\u002Fdocs\u002Fapi-reference\u002Fpostman\n- **Developer Forum**: https:\u002F\u002Fdevforum.zoom.us\u002F\n- **Changelog**: https:\u002F\u002Fdevelopers.zoom.us\u002Fchangelog\u002F\n- **Status Page**: https:\u002F\u002Fstatus.zoom.us\u002F\n\n---\n\n**Need help?** Start with Integrated Index section below for complete navigation.\n\n---\n\n## Integrated Index\n\n_This section was migrated from `SKILL.md`._\n\n## Quick Start Path\n\n**If you're new to the Zoom REST API, follow this order:**\n\n1. **Run preflight checks first** → [RUNBOOK.md](RUNBOOK.md)\n\n2. **Understand the API design** → [concepts\u002Fapi-architecture.md](concepts\u002Fapi-architecture.md)\n   - Base URLs, regional endpoints, `me` keyword rules\n   - Meeting ID vs UUID, double-encoding, time formats\n\n3. **Set up authentication** → [concepts\u002Fauthentication-flows.md](concepts\u002Fauthentication-flows.md)\n   - Server-to-Server OAuth (backend automation)\n   - User OAuth with PKCE (user-facing apps)\n   - Cross-reference: [zoom-oauth](..\u002Foauth\u002FSKILL.md)\n\n4. **Create your first meeting** → [examples\u002Fmeeting-lifecycle.md](examples\u002Fmeeting-lifecycle.md)\n   - Full CRUD with curl and Node.js examples\n   - Webhook event integration\n\n5. **Handle rate limits** → [concepts\u002Frate-limiting-strategy.md](concepts\u002Frate-limiting-strategy.md)\n   - Plan-based limits, retry patterns, request queuing\n\n6. **Set up webhooks** → [examples\u002Fwebhook-server.md](examples\u002Fwebhook-server.md)\n   - CRC validation, signature verification, event handling\n\n7. **Troubleshoot issues** → [troubleshooting\u002Fcommon-issues.md](troubleshooting\u002Fcommon-issues.md)\n   - Token refresh, pagination pitfalls, common gotchas\n\n---\n\n## Documentation Structure\n\n```\nrest-api\u002F\n├── SKILL.md                              # Main skill overview + quick start\n├── SKILL.md                              # This file - navigation guide\n│\n├── concepts\u002F                             # Core architectural concepts\n│   ├── api-architecture.md              # REST design, URLs, IDs, time formats\n│   ├── authentication-flows.md          # OAuth flows (S2S, User, PKCE, Device)\n│   └── rate-limiting-strategy.md        # Limits by plan, retry, queuing\n│\n├── examples\u002F                             # Complete working code\n│   ├── meeting-lifecycle.md             # Create→Update→Start→End→Delete\n│   ├── user-management.md              # CRUD users, pagination, bulk ops\n│   ├── recording-pipeline.md           # Download recordings via webhooks\n│   ├── webhook-server.md               # Express.js CRC + signature verification\n│   └── graphql-queries.md              # GraphQL queries, mutations, pagination\n│\n├── troubleshooting\u002F                      # Problem solving\n│   ├── common-errors.md                # HTTP codes, Zoom error codes table\n│   └── common-issues.md               # Rate limits, tokens, pagination pitfalls\n│\n└── references\u002F                           # 39 domain-specific reference files\n    ├── authentication.md                # Auth methods reference\n    ├── meetings.md                      # Meeting endpoints\n    ├── users.md                         # User management endpoints\n    ├── webinars.md                      # Webinar endpoints\n    ├── recordings.md                    # Cloud recording endpoints\n    ├── reports.md                       # Reports & analytics\n    ├── accounts.md                      # Account management\n    ├── rate-limits.md                   # Rate limit details\n    ├── graphql.md                       # GraphQL API (beta)\n    ├── zoom-team-chat.md                     # Team Chat messaging\n    ├── chatbot.md                       # Chatbot integration\n    ├── phone.md                         # Zoom Phone\n    ├── rooms.md                         # Zoom Rooms\n    ├── calendar.md                      # Zoom Calendar\n    ├── mail.md                          # Zoom Mail\n    ├── ai-companion.md                  # AI features\n    ├── openapi.md                       # OpenAPI specs\n    ├── qss.md                           # Quality of Service\n    ├── contact-center.md                # Contact Center\n    ├── events.md                        # Zoom Events\n    ├── whiteboard.md                    # Whiteboard\n    ├── clips.md                         # Zoom Clips\n    ├── scheduler.md                     # Scheduler\n    ├── scim2.md                         # SCIM 2.0\n    ├── marketplace-apps.md              # App management\n    ├── zoom-video-sdk-api.md                 # Video SDK REST\n    └── ... (39 total files)\n```\n\n---\n\n## By Use Case\n\n### I want to create and manage meetings\n1. [API Architecture](concepts\u002Fapi-architecture.md) - Base URL, time formats\n2. [Meeting Lifecycle](examples\u002Fmeeting-lifecycle.md) - Full CRUD + webhook events\n3. [Meetings Reference](references\u002Fmeetings.md) - All endpoints, types, settings\n\n### I want to manage users programmatically\n1. [User Management](examples\u002Fuser-management.md) - CRUD, pagination, bulk ops\n2. [Users Reference](references\u002Fusers.md) - Endpoints, user types, scopes\n\n### I want to download recordings automatically\n1. [Recording Pipeline](examples\u002Frecording-pipeline.md) - Webhook-triggered downloads\n2. [Recordings Reference](references\u002Frecordings.md) - File types, download auth\n\n### I want to receive real-time events\n1. [Webhook Server](examples\u002Fwebhook-server.md) - CRC validation, signature check\n2. Cross-reference: [zoom-webhooks](..\u002Fwebhooks\u002FSKILL.md) for comprehensive webhook docs\n3. Cross-reference: [zoom-websockets](..\u002Fwebsockets\u002FSKILL.md) for WebSocket events\n\n### I want to use GraphQL instead of REST\n1. [GraphQL Queries](examples\u002Fgraphql-queries.md) - Queries, mutations, pagination\n2. [GraphQL Reference](references\u002Fgraphql.md) - Available entities, scopes, rate limits\n\n### I want to set up authentication\n1. [Authentication Flows](concepts\u002Fauthentication-flows.md) - All OAuth methods\n2. Cross-reference: [zoom-oauth](..\u002Foauth\u002FSKILL.md) for full OAuth implementation\n\n### I'm hitting rate limits\n1. [Rate Limiting Strategy](concepts\u002Frate-limiting-strategy.md) - Limits by plan, strategies\n2. [Rate Limits Reference](references\u002Frate-limits.md) - Detailed tables\n3. [Common Issues](troubleshooting\u002Fcommon-issues.md) - Practical solutions\n\n### I'm getting errors\n1. [Common Errors](troubleshooting\u002Fcommon-errors.md) - Error code tables\n2. [Common Issues](troubleshooting\u002Fcommon-issues.md) - Diagnostic workflow\n\n### I want to build webinars\n1. [Webinars Reference](references\u002Fwebinars.md) - Endpoints, types, registrants\n2. [Meeting Lifecycle](examples\u002Fmeeting-lifecycle.md) - Similar patterns apply\n\n### I want to integrate Zoom Phone\n1. [Phone Reference](references\u002Fphone.md) - Phone API endpoints\n2. [Rate Limiting Strategy](concepts\u002Frate-limiting-strategy.md) - Separate Phone rate limits\n\n---\n\n## Most Critical Documents\n\n### 1. API Architecture (FOUNDATION)\n**[concepts\u002Fapi-architecture.md](concepts\u002Fapi-architecture.md)**\n\nEssential knowledge before making any API call:\n- Base URLs and regional endpoints\n- The `me` keyword rules (different per app type!)\n- Meeting ID vs UUID double-encoding\n- ISO 8601 time formats (UTC vs local)\n- Download URL authentication\n\n### 2. Rate Limiting Strategy (MOST COMMON PRODUCTION ISSUE)\n**[concepts\u002Frate-limiting-strategy.md](concepts\u002Frate-limiting-strategy.md)**\n\nRate limits are per-account, shared across all apps:\n- Free: 4\u002Fsec Light, 2\u002Fsec Medium, 1\u002Fsec Heavy\n- Pro: 30\u002Fsec Light, 20\u002Fsec Medium, 10\u002Fsec Heavy\n- Business+: 80\u002Fsec Light, 60\u002Fsec Medium, 40\u002Fsec Heavy\n- Per-user: 100 meeting create\u002Fupdate per day\n\n### 3. Meeting Lifecycle (MOST COMMON TASK)\n**[examples\u002Fmeeting-lifecycle.md](examples\u002Fmeeting-lifecycle.md)**\n\nComplete CRUD with webhook integration — the pattern most developers need first.\n\n---\n\n## Key Learnings\n\n### Critical Discoveries:\n\n1. **JWT app type is deprecated** — use Server-to-Server OAuth\n   - The JWT *app type* on Marketplace is deprecated, NOT JWT token signatures\n   - See: [Authentication Flows](concepts\u002Fauthentication-flows.md)\n\n2. **`me` keyword behaves differently by app type**\n   - User OAuth: MUST use `me`\n   - S2S OAuth: MUST NOT use `me`\n   - See: [API Architecture](concepts\u002Fapi-architecture.md)\n\n3. **Rate limiting is nuanced (don’t assume a single global rule)**\n   - Limits can vary by endpoint and may be enforced at account\u002Fapp\u002Fuser levels\n   - Treat quotas as potentially shared across your account and implement backoff\n   - Monitor rate limit response headers (for example `X-RateLimit-Remaining`)\n   - See: [Rate Limiting Strategy](concepts\u002Frate-limiting-strategy.md)\n\n4. **100 meeting creates per user per day**\n   - This is a hard per-user limit, not related to rate limits\n   - Distribute across host users for bulk operations\n   - See: [Rate Limiting Strategy](concepts\u002Frate-limiting-strategy.md)\n\n5. **UUID double-encoding is required for certain UUIDs**\n   - UUIDs starting with `\u002F` or containing `\u002F\u002F` must be double-encoded\n   - See: [API Architecture](concepts\u002Fapi-architecture.md)\n\n6. **Pagination: use `next_page_token`, not `page_number`**\n   - `page_number` is legacy and being phased out\n   - `next_page_token` is the recommended approach\n   - See: [Common Issues](troubleshooting\u002Fcommon-issues.md)\n\n7. **GraphQL is at `\u002Fv3\u002Fgraphql`, not `\u002Fv2\u002F`**\n   - Single endpoint, cursor-based pagination\n   - Rate limits apply per-field (each field = one REST equivalent)\n   - See: [GraphQL Queries](examples\u002Fgraphql-queries.md)\n\n---\n\n## Quick Reference\n\n### \"401 Unauthorized\"\n→ [Authentication Flows](concepts\u002Fauthentication-flows.md) - Token expired or wrong scopes\n\n### \"429 Too Many Requests\"\n→ [Rate Limiting Strategy](concepts\u002Frate-limiting-strategy.md) - Check headers for reset time\n\n### \"Invalid token\" when using userId\n→ [API Architecture](concepts\u002Fapi-architecture.md) - User OAuth apps must use `me`\n\n### \"How do I paginate results?\"\n→ [Common Issues](troubleshooting\u002Fcommon-issues.md) - Use `next_page_token`\n\n### \"Webhooks not arriving\"\n→ [Webhook Server](examples\u002Fwebhook-server.md) - CRC validation required\n\n### \"Recording download fails\"\n→ [Recording Pipeline](examples\u002Frecording-pipeline.md) - Bearer auth + follow redirects\n\n### \"How do I create a meeting?\"\n→ [Meeting Lifecycle](examples\u002Fmeeting-lifecycle.md) - Full working examples\n\n---\n\n## Related Skills\n\n| Skill | Use When |\n|-------|----------|\n| **[zoom-oauth](..\u002Foauth\u002FSKILL.md)** | Implementing OAuth flows, token management |\n| **[zoom-webhooks](..\u002Fwebhooks\u002FSKILL.md)** | Deep webhook implementation, event catalog |\n| **[zoom-websockets](..\u002Fwebsockets\u002FSKILL.md)** | WebSocket event streaming |\n| **[zoom-general](..\u002Fgeneral\u002FSKILL.md)** | Cross-product patterns, community repos |\n\n---\n\n**Based on Zoom REST API v2 (current) and GraphQL v3 (beta)**\n\n## Environment Variables\n\n- See [references\u002Fenvironment-variables.md](references\u002Fenvironment-variables.md) for standardized `.env` keys and where to find each value.\n",{"data":38,"body":64},{"name":4,"description":6,"triggers":39},[40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],"api call","rest api","api create meeting","api get meeting","api list meetings","api update meeting","api delete meeting","meeting endpoint","\u002Fv2\u002Fmeetings","create user","zoom api","api endpoint","recordings api","users api","webinars api","server-to-server oauth","account_credentials","account id","invalid access token","does not contain scopes","access token is expired","webhook verification","crc","download_url",{"type":65,"children":66},"root",[67,75,106,112,117,160,167,175,266,274,358,379,387,476,484,507,513,520,691,696,864,870,1057,1069,1075,1125,1131,1141,1147,1160,1341,1366,1372,1608,1614,1644,1669,1675,1681,1693,1872,1885,1959,1965,1992,2147,2153,2219,2225,2245,2251,2263,2269,2281,2330,2336,2659,2682,2688,2693,2699,2744,2750,2815,2821,2848,2854,2861,2938,2944,3012,3018,3073,3079,3134,3140,3403,3409,3415,3581,3587,3679,3683,3693,3696,3701,3717,3723,3731,3905,3908,3914,3923,3926,3932,3938,3969,3975,3997,4003,4025,4031,4065,4071,4093,4099,4121,4127,4158,4164,4185,4191,4213,4219,4241,4244,4250,4256,4266,4271,4305,4311,4321,4326,4349,4355,4365,4370,4373,4379,4385,4668,4671,4677,4683,4694,4700,4710,4716,4731,4737,4752,4758,4768,4774,4784,4790,4800,4803,4809,4905,4908,4916,4922,4945],{"type":68,"tag":69,"props":70,"children":71},"element","h1",{"id":4},[72],{"type":73,"value":74},"text","\u002Fbuild-zoom-rest-api-app",{"type":68,"tag":76,"props":77,"children":78},"p",{},[79,81,88,90,96,98,104],{"type":73,"value":80},"Background reference for deterministic server-side Zoom automation and resource management. Prefer ",{"type":68,"tag":82,"props":83,"children":85},"code",{"className":84},[],[86],{"type":73,"value":87},"plan-zoom-product",{"type":73,"value":89},", ",{"type":68,"tag":82,"props":91,"children":93},{"className":92},[],[94],{"type":73,"value":95},"plan-zoom-integration",{"type":73,"value":97},", or ",{"type":68,"tag":82,"props":99,"children":101},{"className":100},[],[102],{"type":73,"value":103},"debug-zoom",{"type":73,"value":105}," first, then route here for endpoint-level detail.",{"type":68,"tag":69,"props":107,"children":109},{"id":108},"zoom-rest-api",[110],{"type":73,"value":111},"Zoom REST API",{"type":68,"tag":76,"props":113,"children":114},{},[115],{"type":73,"value":116},"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.",{"type":68,"tag":76,"props":118,"children":119},{},[120,126,128,136,141,142,148,153,154],{"type":68,"tag":121,"props":122,"children":123},"strong",{},[124],{"type":73,"value":125},"Official Documentation",{"type":73,"value":127},": ",{"type":68,"tag":129,"props":130,"children":134},"a",{"href":131,"rel":132},"https:\u002F\u002Fdevelopers.zoom.us\u002Fapi-hub\u002F",[133],"nofollow",[135],{"type":73,"value":131},{"type":68,"tag":121,"props":137,"children":138},{},[139],{"type":73,"value":140},"API Hub Reference",{"type":73,"value":127},{"type":68,"tag":129,"props":143,"children":146},{"href":144,"rel":145},"https:\u002F\u002Fdevelopers.zoom.us\u002Fapi-hub\u002Fmeetings\u002F",[133],[147],{"type":73,"value":144},{"type":68,"tag":121,"props":149,"children":150},{},[151],{"type":73,"value":152},"OpenAPI Inventories",{"type":73,"value":127},{"type":68,"tag":82,"props":155,"children":157},{"className":156},[],[158],{"type":73,"value":159},"https:\u002F\u002Fdevelopers.zoom.us\u002Fapi-hub\u002F\u003Cdomain>\u002Fmethods\u002Fendpoints.json",{"type":68,"tag":161,"props":162,"children":164},"h2",{"id":163},"quick-links",[165],{"type":73,"value":166},"Quick Links",{"type":68,"tag":76,"props":168,"children":169},{},[170],{"type":68,"tag":121,"props":171,"children":172},{},[173],{"type":73,"value":174},"New to Zoom REST API? Follow this path:",{"type":68,"tag":176,"props":177,"children":178},"ol",{},[179,202,216,238,252],{"type":68,"tag":180,"props":181,"children":182},"li",{},[183,192,194,200],{"type":68,"tag":121,"props":184,"children":185},{},[186],{"type":68,"tag":129,"props":187,"children":189},{"href":188},"concepts\u002Fapi-architecture.md",[190],{"type":73,"value":191},"API Architecture",{"type":73,"value":193}," - Base URLs, regional URLs, ",{"type":68,"tag":82,"props":195,"children":197},{"className":196},[],[198],{"type":73,"value":199},"me",{"type":73,"value":201}," keyword, ID vs UUID, time formats",{"type":68,"tag":180,"props":203,"children":204},{},[205,214],{"type":68,"tag":121,"props":206,"children":207},{},[208],{"type":68,"tag":129,"props":209,"children":211},{"href":210},"concepts\u002Fauthentication-flows.md",[212],{"type":73,"value":213},"Authentication Flows",{"type":73,"value":215}," - OAuth setup (S2S, User, PKCE, Device Code)",{"type":68,"tag":180,"props":217,"children":218},{},[219,228,230,236],{"type":68,"tag":121,"props":220,"children":221},{},[222],{"type":68,"tag":129,"props":223,"children":225},{"href":224},"concepts\u002Fmeeting-urls-and-sdk-joining.md",[226],{"type":73,"value":227},"Meeting URLs vs Meeting SDK",{"type":73,"value":229}," - Stop mixing ",{"type":68,"tag":82,"props":231,"children":233},{"className":232},[],[234],{"type":73,"value":235},"join_url",{"type":73,"value":237}," with Meeting SDK",{"type":68,"tag":180,"props":239,"children":240},{},[241,250],{"type":68,"tag":121,"props":242,"children":243},{},[244],{"type":68,"tag":129,"props":245,"children":247},{"href":246},"examples\u002Fmeeting-lifecycle.md",[248],{"type":73,"value":249},"Meeting Lifecycle",{"type":73,"value":251}," - Create → Update → Start → End → Delete with webhooks",{"type":68,"tag":180,"props":253,"children":254},{},[255,264],{"type":68,"tag":121,"props":256,"children":257},{},[258],{"type":68,"tag":129,"props":259,"children":261},{"href":260},"concepts\u002Frate-limiting-strategy.md",[262],{"type":73,"value":263},"Rate Limiting Strategy",{"type":73,"value":265}," - Plan tiers, per-user limits, retry patterns",{"type":68,"tag":76,"props":267,"children":268},{},[269],{"type":68,"tag":121,"props":270,"children":271},{},[272],{"type":73,"value":273},"Reference:",{"type":68,"tag":275,"props":276,"children":277},"ul",{},[278,292,306,320,334,348],{"type":68,"tag":180,"props":279,"children":280},{},[281,290],{"type":68,"tag":121,"props":282,"children":283},{},[284],{"type":68,"tag":129,"props":285,"children":287},{"href":286},"references\u002Fmeetings.md",[288],{"type":73,"value":289},"Meetings",{"type":73,"value":291}," - Meeting CRUD, types, settings",{"type":68,"tag":180,"props":293,"children":294},{},[295,304],{"type":68,"tag":121,"props":296,"children":297},{},[298],{"type":68,"tag":129,"props":299,"children":301},{"href":300},"references\u002Fusers.md",[302],{"type":73,"value":303},"Users",{"type":73,"value":305}," - User provisioning and management",{"type":68,"tag":180,"props":307,"children":308},{},[309,318],{"type":68,"tag":121,"props":310,"children":311},{},[312],{"type":68,"tag":129,"props":313,"children":315},{"href":314},"references\u002Frecordings.md",[316],{"type":73,"value":317},"Recordings",{"type":73,"value":319}," - Cloud recording access and download",{"type":68,"tag":180,"props":321,"children":322},{},[323,332],{"type":68,"tag":121,"props":324,"children":325},{},[326],{"type":68,"tag":129,"props":327,"children":329},{"href":328},"references\u002Fai-services.md",[330],{"type":73,"value":331},"AI Services",{"type":73,"value":333}," - Scribe endpoint inventory and current AI Services path surface",{"type":68,"tag":180,"props":335,"children":336},{},[337,346],{"type":68,"tag":121,"props":338,"children":339},{},[340],{"type":68,"tag":129,"props":341,"children":343},{"href":342},"examples\u002Fgraphql-queries.md",[344],{"type":73,"value":345},"GraphQL Queries",{"type":73,"value":347}," - Alternative query API (beta)",{"type":68,"tag":180,"props":349,"children":350},{},[351,356],{"type":68,"tag":121,"props":352,"children":353},{},[354],{"type":73,"value":355},"Integrated Index",{"type":73,"value":357}," - see the section below in this file",{"type":68,"tag":76,"props":359,"children":360},{},[361,363,369,371,377],{"type":73,"value":362},"Most domain files under ",{"type":68,"tag":82,"props":364,"children":366},{"className":365},[],[367],{"type":73,"value":368},"references\u002F",{"type":73,"value":370}," are aligned to the official API Hub ",{"type":68,"tag":82,"props":372,"children":374},{"className":373},[],[375],{"type":73,"value":376},"endpoints.json",{"type":73,"value":378}," inventories. Treat those files as the local source of truth for method\u002Fpath discovery.",{"type":68,"tag":76,"props":380,"children":381},{},[382],{"type":68,"tag":121,"props":383,"children":384},{},[385],{"type":73,"value":386},"Having issues?",{"type":68,"tag":275,"props":388,"children":389},{},[390,401,412,421,432,443,454,465],{"type":68,"tag":180,"props":391,"children":392},{},[393,395],{"type":73,"value":394},"Start with preflight checks → ",{"type":68,"tag":129,"props":396,"children":398},{"href":397},"RUNBOOK.md",[399],{"type":73,"value":400},"5-Minute Runbook",{"type":68,"tag":180,"props":402,"children":403},{},[404,406,410],{"type":73,"value":405},"401 Unauthorized → ",{"type":68,"tag":129,"props":407,"children":408},{"href":210},[409],{"type":73,"value":213},{"type":73,"value":411}," (check token expiry, scopes)",{"type":68,"tag":180,"props":413,"children":414},{},[415,417],{"type":73,"value":416},"429 Too Many Requests → ",{"type":68,"tag":129,"props":418,"children":419},{"href":260},[420],{"type":73,"value":263},{"type":68,"tag":180,"props":422,"children":423},{},[424,426],{"type":73,"value":425},"Error codes → ",{"type":68,"tag":129,"props":427,"children":429},{"href":428},"troubleshooting\u002Fcommon-errors.md",[430],{"type":73,"value":431},"Common Errors",{"type":68,"tag":180,"props":433,"children":434},{},[435,437],{"type":73,"value":436},"Pagination confusion → ",{"type":68,"tag":129,"props":438,"children":440},{"href":439},"troubleshooting\u002Fcommon-issues.md",[441],{"type":73,"value":442},"Common Issues",{"type":68,"tag":180,"props":444,"children":445},{},[446,448],{"type":73,"value":447},"Webhooks not arriving → ",{"type":68,"tag":129,"props":449,"children":451},{"href":450},"examples\u002Fwebhook-server.md",[452],{"type":73,"value":453},"Webhook Server",{"type":68,"tag":180,"props":455,"children":456},{},[457,459],{"type":73,"value":458},"Forum-derived FAQs → ",{"type":68,"tag":129,"props":460,"children":462},{"href":461},"troubleshooting\u002Fforum-top-questions.md",[463],{"type":73,"value":464},"Forum Top Questions",{"type":68,"tag":180,"props":466,"children":467},{},[468,470],{"type":73,"value":469},"Token\u002Fscope failures → ",{"type":68,"tag":129,"props":471,"children":473},{"href":472},"troubleshooting\u002Ftoken-scope-playbook.md",[474],{"type":73,"value":475},"Token + Scope Playbook",{"type":68,"tag":76,"props":477,"children":478},{},[479],{"type":68,"tag":121,"props":480,"children":481},{},[482],{"type":73,"value":483},"Building event-driven integrations?",{"type":68,"tag":275,"props":485,"children":486},{},[487,496],{"type":68,"tag":180,"props":488,"children":489},{},[490,494],{"type":68,"tag":129,"props":491,"children":492},{"href":450},[493],{"type":73,"value":453},{"type":73,"value":495}," - Express.js server with CRC validation",{"type":68,"tag":180,"props":497,"children":498},{},[499,505],{"type":68,"tag":129,"props":500,"children":502},{"href":501},"examples\u002Frecording-pipeline.md",[503],{"type":73,"value":504},"Recording Pipeline",{"type":73,"value":506}," - Auto-download via webhook events",{"type":68,"tag":161,"props":508,"children":510},{"id":509},"quick-start",[511],{"type":73,"value":512},"Quick Start",{"type":68,"tag":514,"props":515,"children":517},"h3",{"id":516},"get-an-access-token-server-to-server-oauth",[518],{"type":73,"value":519},"Get an Access Token (Server-to-Server OAuth)",{"type":68,"tag":521,"props":522,"children":527},"pre",{"className":523,"code":524,"language":525,"meta":526,"style":526},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -X POST \"https:\u002F\u002Fzoom.us\u002Foauth\u002Ftoken\" \\\n  -H \"Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)\" \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"grant_type=account_credentials&account_id=ACCOUNT_ID\"\n","bash","",[528],{"type":68,"tag":82,"props":529,"children":530},{"__ignoreMap":526},[531,576,643,668],{"type":68,"tag":532,"props":533,"children":536},"span",{"class":534,"line":535},"line",1,[537,543,549,554,560,565,570],{"type":68,"tag":532,"props":538,"children":540},{"style":539},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[541],{"type":73,"value":542},"curl",{"type":68,"tag":532,"props":544,"children":546},{"style":545},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[547],{"type":73,"value":548}," -X",{"type":68,"tag":532,"props":550,"children":551},{"style":545},[552],{"type":73,"value":553}," POST",{"type":68,"tag":532,"props":555,"children":557},{"style":556},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[558],{"type":73,"value":559}," \"",{"type":68,"tag":532,"props":561,"children":562},{"style":545},[563],{"type":73,"value":564},"https:\u002F\u002Fzoom.us\u002Foauth\u002Ftoken",{"type":68,"tag":532,"props":566,"children":567},{"style":556},[568],{"type":73,"value":569},"\"",{"type":68,"tag":532,"props":571,"children":573},{"style":572},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[574],{"type":73,"value":575}," \\\n",{"type":68,"tag":532,"props":577,"children":579},{"class":534,"line":578},2,[580,585,589,594,599,605,610,615,620,624,629,634,639],{"type":68,"tag":532,"props":581,"children":582},{"style":545},[583],{"type":73,"value":584},"  -H",{"type":68,"tag":532,"props":586,"children":587},{"style":556},[588],{"type":73,"value":559},{"type":68,"tag":532,"props":590,"children":591},{"style":545},[592],{"type":73,"value":593},"Authorization: Basic ",{"type":68,"tag":532,"props":595,"children":596},{"style":556},[597],{"type":73,"value":598},"$(",{"type":68,"tag":532,"props":600,"children":602},{"style":601},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[603],{"type":73,"value":604},"echo",{"type":68,"tag":532,"props":606,"children":607},{"style":545},[608],{"type":73,"value":609}," -n ",{"type":68,"tag":532,"props":611,"children":612},{"style":556},[613],{"type":73,"value":614},"'",{"type":68,"tag":532,"props":616,"children":617},{"style":545},[618],{"type":73,"value":619},"CLIENT_ID:CLIENT_SECRET",{"type":68,"tag":532,"props":621,"children":622},{"style":556},[623],{"type":73,"value":614},{"type":68,"tag":532,"props":625,"children":626},{"style":556},[627],{"type":73,"value":628}," |",{"type":68,"tag":532,"props":630,"children":631},{"style":539},[632],{"type":73,"value":633}," base64",{"type":68,"tag":532,"props":635,"children":636},{"style":556},[637],{"type":73,"value":638},")\"",{"type":68,"tag":532,"props":640,"children":641},{"style":572},[642],{"type":73,"value":575},{"type":68,"tag":532,"props":644,"children":646},{"class":534,"line":645},3,[647,651,655,660,664],{"type":68,"tag":532,"props":648,"children":649},{"style":545},[650],{"type":73,"value":584},{"type":68,"tag":532,"props":652,"children":653},{"style":556},[654],{"type":73,"value":559},{"type":68,"tag":532,"props":656,"children":657},{"style":545},[658],{"type":73,"value":659},"Content-Type: application\u002Fx-www-form-urlencoded",{"type":68,"tag":532,"props":661,"children":662},{"style":556},[663],{"type":73,"value":569},{"type":68,"tag":532,"props":665,"children":666},{"style":572},[667],{"type":73,"value":575},{"type":68,"tag":532,"props":669,"children":671},{"class":534,"line":670},4,[672,677,681,686],{"type":68,"tag":532,"props":673,"children":674},{"style":545},[675],{"type":73,"value":676},"  -d",{"type":68,"tag":532,"props":678,"children":679},{"style":556},[680],{"type":73,"value":559},{"type":68,"tag":532,"props":682,"children":683},{"style":545},[684],{"type":73,"value":685},"grant_type=account_credentials&account_id=ACCOUNT_ID",{"type":68,"tag":532,"props":687,"children":688},{"style":556},[689],{"type":73,"value":690},"\"\n",{"type":68,"tag":76,"props":692,"children":693},{},[694],{"type":73,"value":695},"Response:",{"type":68,"tag":521,"props":697,"children":701},{"className":698,"code":699,"language":700,"meta":526,"style":526},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"access_token\": \"eyJhbGciOiJIUzI1NiJ9...\",\n  \"token_type\": \"bearer\",\n  \"expires_in\": 3600,\n  \"scope\": \"meeting:read meeting:write user:read\"\n}\n","json",[702],{"type":68,"tag":82,"props":703,"children":704},{"__ignoreMap":526},[705,713,754,791,821,855],{"type":68,"tag":532,"props":706,"children":707},{"class":534,"line":535},[708],{"type":68,"tag":532,"props":709,"children":710},{"style":556},[711],{"type":73,"value":712},"{\n",{"type":68,"tag":532,"props":714,"children":715},{"class":534,"line":578},[716,721,727,731,736,740,745,749],{"type":68,"tag":532,"props":717,"children":718},{"style":556},[719],{"type":73,"value":720},"  \"",{"type":68,"tag":532,"props":722,"children":724},{"style":723},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[725],{"type":73,"value":726},"access_token",{"type":68,"tag":532,"props":728,"children":729},{"style":556},[730],{"type":73,"value":569},{"type":68,"tag":532,"props":732,"children":733},{"style":556},[734],{"type":73,"value":735},":",{"type":68,"tag":532,"props":737,"children":738},{"style":556},[739],{"type":73,"value":559},{"type":68,"tag":532,"props":741,"children":742},{"style":545},[743],{"type":73,"value":744},"eyJhbGciOiJIUzI1NiJ9...",{"type":68,"tag":532,"props":746,"children":747},{"style":556},[748],{"type":73,"value":569},{"type":68,"tag":532,"props":750,"children":751},{"style":556},[752],{"type":73,"value":753},",\n",{"type":68,"tag":532,"props":755,"children":756},{"class":534,"line":645},[757,761,766,770,774,778,783,787],{"type":68,"tag":532,"props":758,"children":759},{"style":556},[760],{"type":73,"value":720},{"type":68,"tag":532,"props":762,"children":763},{"style":723},[764],{"type":73,"value":765},"token_type",{"type":68,"tag":532,"props":767,"children":768},{"style":556},[769],{"type":73,"value":569},{"type":68,"tag":532,"props":771,"children":772},{"style":556},[773],{"type":73,"value":735},{"type":68,"tag":532,"props":775,"children":776},{"style":556},[777],{"type":73,"value":559},{"type":68,"tag":532,"props":779,"children":780},{"style":545},[781],{"type":73,"value":782},"bearer",{"type":68,"tag":532,"props":784,"children":785},{"style":556},[786],{"type":73,"value":569},{"type":68,"tag":532,"props":788,"children":789},{"style":556},[790],{"type":73,"value":753},{"type":68,"tag":532,"props":792,"children":793},{"class":534,"line":670},[794,798,803,807,811,817],{"type":68,"tag":532,"props":795,"children":796},{"style":556},[797],{"type":73,"value":720},{"type":68,"tag":532,"props":799,"children":800},{"style":723},[801],{"type":73,"value":802},"expires_in",{"type":68,"tag":532,"props":804,"children":805},{"style":556},[806],{"type":73,"value":569},{"type":68,"tag":532,"props":808,"children":809},{"style":556},[810],{"type":73,"value":735},{"type":68,"tag":532,"props":812,"children":814},{"style":813},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[815],{"type":73,"value":816}," 3600",{"type":68,"tag":532,"props":818,"children":819},{"style":556},[820],{"type":73,"value":753},{"type":68,"tag":532,"props":822,"children":824},{"class":534,"line":823},5,[825,829,834,838,842,846,851],{"type":68,"tag":532,"props":826,"children":827},{"style":556},[828],{"type":73,"value":720},{"type":68,"tag":532,"props":830,"children":831},{"style":723},[832],{"type":73,"value":833},"scope",{"type":68,"tag":532,"props":835,"children":836},{"style":556},[837],{"type":73,"value":569},{"type":68,"tag":532,"props":839,"children":840},{"style":556},[841],{"type":73,"value":735},{"type":68,"tag":532,"props":843,"children":844},{"style":556},[845],{"type":73,"value":559},{"type":68,"tag":532,"props":847,"children":848},{"style":545},[849],{"type":73,"value":850},"meeting:read meeting:write user:read",{"type":68,"tag":532,"props":852,"children":853},{"style":556},[854],{"type":73,"value":690},{"type":68,"tag":532,"props":856,"children":858},{"class":534,"line":857},6,[859],{"type":68,"tag":532,"props":860,"children":861},{"style":556},[862],{"type":73,"value":863},"}\n",{"type":68,"tag":514,"props":865,"children":867},{"id":866},"create-a-meeting",[868],{"type":73,"value":869},"Create a Meeting",{"type":68,"tag":521,"props":871,"children":873},{"className":523,"code":872,"language":525,"meta":526,"style":526},"curl -X POST \"https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fusers\u002FHOST_USER_ID\u002Fmeetings\" \\\n  -H \"Authorization: Bearer ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"topic\": \"Team Standup\",\n    \"type\": 2,\n    \"start_time\": \"2025-03-15T10:00:00Z\",\n    \"duration\": 30,\n    \"settings\": {\n      \"join_before_host\": false,\n      \"waiting_room\": true\n    }\n  }'\n",[874],{"type":68,"tag":82,"props":875,"children":876},{"__ignoreMap":526},[877,909,933,957,973,981,989,998,1007,1016,1025,1034,1043],{"type":68,"tag":532,"props":878,"children":879},{"class":534,"line":535},[880,884,888,892,896,901,905],{"type":68,"tag":532,"props":881,"children":882},{"style":539},[883],{"type":73,"value":542},{"type":68,"tag":532,"props":885,"children":886},{"style":545},[887],{"type":73,"value":548},{"type":68,"tag":532,"props":889,"children":890},{"style":545},[891],{"type":73,"value":553},{"type":68,"tag":532,"props":893,"children":894},{"style":556},[895],{"type":73,"value":559},{"type":68,"tag":532,"props":897,"children":898},{"style":545},[899],{"type":73,"value":900},"https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fusers\u002FHOST_USER_ID\u002Fmeetings",{"type":68,"tag":532,"props":902,"children":903},{"style":556},[904],{"type":73,"value":569},{"type":68,"tag":532,"props":906,"children":907},{"style":572},[908],{"type":73,"value":575},{"type":68,"tag":532,"props":910,"children":911},{"class":534,"line":578},[912,916,920,925,929],{"type":68,"tag":532,"props":913,"children":914},{"style":545},[915],{"type":73,"value":584},{"type":68,"tag":532,"props":917,"children":918},{"style":556},[919],{"type":73,"value":559},{"type":68,"tag":532,"props":921,"children":922},{"style":545},[923],{"type":73,"value":924},"Authorization: Bearer ACCESS_TOKEN",{"type":68,"tag":532,"props":926,"children":927},{"style":556},[928],{"type":73,"value":569},{"type":68,"tag":532,"props":930,"children":931},{"style":572},[932],{"type":73,"value":575},{"type":68,"tag":532,"props":934,"children":935},{"class":534,"line":645},[936,940,944,949,953],{"type":68,"tag":532,"props":937,"children":938},{"style":545},[939],{"type":73,"value":584},{"type":68,"tag":532,"props":941,"children":942},{"style":556},[943],{"type":73,"value":559},{"type":68,"tag":532,"props":945,"children":946},{"style":545},[947],{"type":73,"value":948},"Content-Type: application\u002Fjson",{"type":68,"tag":532,"props":950,"children":951},{"style":556},[952],{"type":73,"value":569},{"type":68,"tag":532,"props":954,"children":955},{"style":572},[956],{"type":73,"value":575},{"type":68,"tag":532,"props":958,"children":959},{"class":534,"line":670},[960,964,969],{"type":68,"tag":532,"props":961,"children":962},{"style":545},[963],{"type":73,"value":676},{"type":68,"tag":532,"props":965,"children":966},{"style":556},[967],{"type":73,"value":968}," '",{"type":68,"tag":532,"props":970,"children":971},{"style":545},[972],{"type":73,"value":712},{"type":68,"tag":532,"props":974,"children":975},{"class":534,"line":823},[976],{"type":68,"tag":532,"props":977,"children":978},{"style":545},[979],{"type":73,"value":980},"    \"topic\": \"Team Standup\",\n",{"type":68,"tag":532,"props":982,"children":983},{"class":534,"line":857},[984],{"type":68,"tag":532,"props":985,"children":986},{"style":545},[987],{"type":73,"value":988},"    \"type\": 2,\n",{"type":68,"tag":532,"props":990,"children":992},{"class":534,"line":991},7,[993],{"type":68,"tag":532,"props":994,"children":995},{"style":545},[996],{"type":73,"value":997},"    \"start_time\": \"2025-03-15T10:00:00Z\",\n",{"type":68,"tag":532,"props":999,"children":1001},{"class":534,"line":1000},8,[1002],{"type":68,"tag":532,"props":1003,"children":1004},{"style":545},[1005],{"type":73,"value":1006},"    \"duration\": 30,\n",{"type":68,"tag":532,"props":1008,"children":1010},{"class":534,"line":1009},9,[1011],{"type":68,"tag":532,"props":1012,"children":1013},{"style":545},[1014],{"type":73,"value":1015},"    \"settings\": {\n",{"type":68,"tag":532,"props":1017,"children":1019},{"class":534,"line":1018},10,[1020],{"type":68,"tag":532,"props":1021,"children":1022},{"style":545},[1023],{"type":73,"value":1024},"      \"join_before_host\": false,\n",{"type":68,"tag":532,"props":1026,"children":1028},{"class":534,"line":1027},11,[1029],{"type":68,"tag":532,"props":1030,"children":1031},{"style":545},[1032],{"type":73,"value":1033},"      \"waiting_room\": true\n",{"type":68,"tag":532,"props":1035,"children":1037},{"class":534,"line":1036},12,[1038],{"type":68,"tag":532,"props":1039,"children":1040},{"style":545},[1041],{"type":73,"value":1042},"    }\n",{"type":68,"tag":532,"props":1044,"children":1046},{"class":534,"line":1045},13,[1047,1052],{"type":68,"tag":532,"props":1048,"children":1049},{"style":545},[1050],{"type":73,"value":1051},"  }",{"type":68,"tag":532,"props":1053,"children":1054},{"style":556},[1055],{"type":73,"value":1056},"'\n",{"type":68,"tag":76,"props":1058,"children":1059},{},[1060,1062,1067],{"type":73,"value":1061},"For S2S OAuth, use an explicit host user ID or email in the path. Do not use ",{"type":68,"tag":82,"props":1063,"children":1065},{"className":1064},[],[1066],{"type":73,"value":199},{"type":73,"value":1068},".",{"type":68,"tag":514,"props":1070,"children":1072},{"id":1071},"list-users-with-pagination",[1073],{"type":73,"value":1074},"List Users with Pagination",{"type":68,"tag":521,"props":1076,"children":1078},{"className":523,"code":1077,"language":525,"meta":526,"style":526},"curl \"https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fusers?page_size=300&status=active\" \\\n  -H \"Authorization: Bearer ACCESS_TOKEN\"\n",[1079],{"type":68,"tag":82,"props":1080,"children":1081},{"__ignoreMap":526},[1082,1106],{"type":68,"tag":532,"props":1083,"children":1084},{"class":534,"line":535},[1085,1089,1093,1098,1102],{"type":68,"tag":532,"props":1086,"children":1087},{"style":539},[1088],{"type":73,"value":542},{"type":68,"tag":532,"props":1090,"children":1091},{"style":556},[1092],{"type":73,"value":559},{"type":68,"tag":532,"props":1094,"children":1095},{"style":545},[1096],{"type":73,"value":1097},"https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fusers?page_size=300&status=active",{"type":68,"tag":532,"props":1099,"children":1100},{"style":556},[1101],{"type":73,"value":569},{"type":68,"tag":532,"props":1103,"children":1104},{"style":572},[1105],{"type":73,"value":575},{"type":68,"tag":532,"props":1107,"children":1108},{"class":534,"line":578},[1109,1113,1117,1121],{"type":68,"tag":532,"props":1110,"children":1111},{"style":545},[1112],{"type":73,"value":584},{"type":68,"tag":532,"props":1114,"children":1115},{"style":556},[1116],{"type":73,"value":559},{"type":68,"tag":532,"props":1118,"children":1119},{"style":545},[1120],{"type":73,"value":924},{"type":68,"tag":532,"props":1122,"children":1123},{"style":556},[1124],{"type":73,"value":690},{"type":68,"tag":161,"props":1126,"children":1128},{"id":1127},"base-url",[1129],{"type":73,"value":1130},"Base URL",{"type":68,"tag":521,"props":1132,"children":1136},{"className":1133,"code":1135,"language":73},[1134],"language-text","https:\u002F\u002Fapi.zoom.us\u002Fv2\n",[1137],{"type":68,"tag":82,"props":1138,"children":1139},{"__ignoreMap":526},[1140],{"type":73,"value":1135},{"type":68,"tag":514,"props":1142,"children":1144},{"id":1143},"regional-base-urls",[1145],{"type":73,"value":1146},"Regional Base URLs",{"type":68,"tag":76,"props":1148,"children":1149},{},[1150,1152,1158],{"type":73,"value":1151},"The ",{"type":68,"tag":82,"props":1153,"children":1155},{"className":1154},[],[1156],{"type":73,"value":1157},"api_url",{"type":73,"value":1159}," field in OAuth token responses indicates the user's region. Use regional URLs for data residency compliance:",{"type":68,"tag":1161,"props":1162,"children":1163},"table",{},[1164,1183],{"type":68,"tag":1165,"props":1166,"children":1167},"thead",{},[1168],{"type":68,"tag":1169,"props":1170,"children":1171},"tr",{},[1172,1178],{"type":68,"tag":1173,"props":1174,"children":1175},"th",{},[1176],{"type":73,"value":1177},"Region",{"type":68,"tag":1173,"props":1179,"children":1180},{},[1181],{"type":73,"value":1182},"URL",{"type":68,"tag":1184,"props":1185,"children":1186},"tbody",{},[1187,1205,1222,1239,1256,1273,1290,1307,1324],{"type":68,"tag":1169,"props":1188,"children":1189},{},[1190,1196],{"type":68,"tag":1191,"props":1192,"children":1193},"td",{},[1194],{"type":73,"value":1195},"Global (default)",{"type":68,"tag":1191,"props":1197,"children":1198},{},[1199],{"type":68,"tag":82,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":73,"value":1204},"https:\u002F\u002Fapi.zoom.us\u002Fv2",{"type":68,"tag":1169,"props":1206,"children":1207},{},[1208,1213],{"type":68,"tag":1191,"props":1209,"children":1210},{},[1211],{"type":73,"value":1212},"Australia",{"type":68,"tag":1191,"props":1214,"children":1215},{},[1216],{"type":68,"tag":82,"props":1217,"children":1219},{"className":1218},[],[1220],{"type":73,"value":1221},"https:\u002F\u002Fapi-au.zoom.us\u002Fv2",{"type":68,"tag":1169,"props":1223,"children":1224},{},[1225,1230],{"type":68,"tag":1191,"props":1226,"children":1227},{},[1228],{"type":73,"value":1229},"Canada",{"type":68,"tag":1191,"props":1231,"children":1232},{},[1233],{"type":68,"tag":82,"props":1234,"children":1236},{"className":1235},[],[1237],{"type":73,"value":1238},"https:\u002F\u002Fapi-ca.zoom.us\u002Fv2",{"type":68,"tag":1169,"props":1240,"children":1241},{},[1242,1247],{"type":68,"tag":1191,"props":1243,"children":1244},{},[1245],{"type":73,"value":1246},"European Union",{"type":68,"tag":1191,"props":1248,"children":1249},{},[1250],{"type":68,"tag":82,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":73,"value":1255},"https:\u002F\u002Fapi-eu.zoom.us\u002Fv2",{"type":68,"tag":1169,"props":1257,"children":1258},{},[1259,1264],{"type":68,"tag":1191,"props":1260,"children":1261},{},[1262],{"type":73,"value":1263},"India",{"type":68,"tag":1191,"props":1265,"children":1266},{},[1267],{"type":68,"tag":82,"props":1268,"children":1270},{"className":1269},[],[1271],{"type":73,"value":1272},"https:\u002F\u002Fapi-in.zoom.us\u002Fv2",{"type":68,"tag":1169,"props":1274,"children":1275},{},[1276,1281],{"type":68,"tag":1191,"props":1277,"children":1278},{},[1279],{"type":73,"value":1280},"Saudi Arabia",{"type":68,"tag":1191,"props":1282,"children":1283},{},[1284],{"type":68,"tag":82,"props":1285,"children":1287},{"className":1286},[],[1288],{"type":73,"value":1289},"https:\u002F\u002Fapi-sa.zoom.us\u002Fv2",{"type":68,"tag":1169,"props":1291,"children":1292},{},[1293,1298],{"type":68,"tag":1191,"props":1294,"children":1295},{},[1296],{"type":73,"value":1297},"Singapore",{"type":68,"tag":1191,"props":1299,"children":1300},{},[1301],{"type":68,"tag":82,"props":1302,"children":1304},{"className":1303},[],[1305],{"type":73,"value":1306},"https:\u002F\u002Fapi-sg.zoom.us\u002Fv2",{"type":68,"tag":1169,"props":1308,"children":1309},{},[1310,1315],{"type":68,"tag":1191,"props":1311,"children":1312},{},[1313],{"type":73,"value":1314},"United Kingdom",{"type":68,"tag":1191,"props":1316,"children":1317},{},[1318],{"type":68,"tag":82,"props":1319,"children":1321},{"className":1320},[],[1322],{"type":73,"value":1323},"https:\u002F\u002Fapi-uk.zoom.us\u002Fv2",{"type":68,"tag":1169,"props":1325,"children":1326},{},[1327,1332],{"type":68,"tag":1191,"props":1328,"children":1329},{},[1330],{"type":73,"value":1331},"United States",{"type":68,"tag":1191,"props":1333,"children":1334},{},[1335],{"type":68,"tag":82,"props":1336,"children":1338},{"className":1337},[],[1339],{"type":73,"value":1340},"https:\u002F\u002Fapi-us.zoom.us\u002Fv2",{"type":68,"tag":76,"props":1342,"children":1343},{},[1344,1349,1351,1357,1359,1364],{"type":68,"tag":121,"props":1345,"children":1346},{},[1347],{"type":73,"value":1348},"Note:",{"type":73,"value":1350}," You can always use the global URL ",{"type":68,"tag":82,"props":1352,"children":1354},{"className":1353},[],[1355],{"type":73,"value":1356},"https:\u002F\u002Fapi.zoom.us",{"type":73,"value":1358}," regardless of the ",{"type":68,"tag":82,"props":1360,"children":1362},{"className":1361},[],[1363],{"type":73,"value":1157},{"type":73,"value":1365}," value.",{"type":68,"tag":161,"props":1367,"children":1369},{"id":1368},"key-features",[1370],{"type":73,"value":1371},"Key Features",{"type":68,"tag":1161,"props":1373,"children":1374},{},[1375,1391],{"type":68,"tag":1165,"props":1376,"children":1377},{},[1378],{"type":68,"tag":1169,"props":1379,"children":1380},{},[1381,1386],{"type":68,"tag":1173,"props":1382,"children":1383},{},[1384],{"type":73,"value":1385},"Feature",{"type":68,"tag":1173,"props":1387,"children":1388},{},[1389],{"type":73,"value":1390},"Description",{"type":68,"tag":1184,"props":1392,"children":1393},{},[1394,1410,1426,1442,1458,1474,1490,1506,1522,1538,1554,1576,1592],{"type":68,"tag":1169,"props":1395,"children":1396},{},[1397,1405],{"type":68,"tag":1191,"props":1398,"children":1399},{},[1400],{"type":68,"tag":121,"props":1401,"children":1402},{},[1403],{"type":73,"value":1404},"Meeting Management",{"type":68,"tag":1191,"props":1406,"children":1407},{},[1408],{"type":73,"value":1409},"Create, read, update, delete meetings with full scheduling control",{"type":68,"tag":1169,"props":1411,"children":1412},{},[1413,1421],{"type":68,"tag":1191,"props":1414,"children":1415},{},[1416],{"type":68,"tag":121,"props":1417,"children":1418},{},[1419],{"type":73,"value":1420},"User Provisioning",{"type":68,"tag":1191,"props":1422,"children":1423},{},[1424],{"type":73,"value":1425},"Automated user lifecycle (create, update, deactivate, delete)",{"type":68,"tag":1169,"props":1427,"children":1428},{},[1429,1437],{"type":68,"tag":1191,"props":1430,"children":1431},{},[1432],{"type":68,"tag":121,"props":1433,"children":1434},{},[1435],{"type":73,"value":1436},"Webinar Operations",{"type":68,"tag":1191,"props":1438,"children":1439},{},[1440],{"type":73,"value":1441},"Webinar CRUD, registrant management, panelist control",{"type":68,"tag":1169,"props":1443,"children":1444},{},[1445,1453],{"type":68,"tag":1191,"props":1446,"children":1447},{},[1448],{"type":68,"tag":121,"props":1449,"children":1450},{},[1451],{"type":73,"value":1452},"Cloud Recordings",{"type":68,"tag":1191,"props":1454,"children":1455},{},[1456],{"type":73,"value":1457},"List, download, delete recordings with file-type filtering",{"type":68,"tag":1169,"props":1459,"children":1460},{},[1461,1469],{"type":68,"tag":1191,"props":1462,"children":1463},{},[1464],{"type":68,"tag":121,"props":1465,"children":1466},{},[1467],{"type":73,"value":1468},"Reports & Analytics",{"type":68,"tag":1191,"props":1470,"children":1471},{},[1472],{"type":73,"value":1473},"Usage reports, participant data, daily statistics",{"type":68,"tag":1169,"props":1475,"children":1476},{},[1477,1485],{"type":68,"tag":1191,"props":1478,"children":1479},{},[1480],{"type":68,"tag":121,"props":1481,"children":1482},{},[1483],{"type":73,"value":1484},"Team Chat",{"type":68,"tag":1191,"props":1486,"children":1487},{},[1488],{"type":73,"value":1489},"Channel management, messaging, chatbot integration",{"type":68,"tag":1169,"props":1491,"children":1492},{},[1493,1501],{"type":68,"tag":1191,"props":1494,"children":1495},{},[1496],{"type":68,"tag":121,"props":1497,"children":1498},{},[1499],{"type":73,"value":1500},"Zoom Phone",{"type":68,"tag":1191,"props":1502,"children":1503},{},[1504],{"type":73,"value":1505},"Call management, voicemail, call routing",{"type":68,"tag":1169,"props":1507,"children":1508},{},[1509,1517],{"type":68,"tag":1191,"props":1510,"children":1511},{},[1512],{"type":68,"tag":121,"props":1513,"children":1514},{},[1515],{"type":73,"value":1516},"Zoom Rooms",{"type":68,"tag":1191,"props":1518,"children":1519},{},[1520],{"type":73,"value":1521},"Room management, device control, scheduling",{"type":68,"tag":1169,"props":1523,"children":1524},{},[1525,1533],{"type":68,"tag":1191,"props":1526,"children":1527},{},[1528],{"type":68,"tag":121,"props":1529,"children":1530},{},[1531],{"type":73,"value":1532},"Webhooks",{"type":68,"tag":1191,"props":1534,"children":1535},{},[1536],{"type":73,"value":1537},"Real-time event notifications for 100+ event types",{"type":68,"tag":1169,"props":1539,"children":1540},{},[1541,1549],{"type":68,"tag":1191,"props":1542,"children":1543},{},[1544],{"type":68,"tag":121,"props":1545,"children":1546},{},[1547],{"type":73,"value":1548},"WebSockets",{"type":68,"tag":1191,"props":1550,"children":1551},{},[1552],{"type":73,"value":1553},"Persistent event streaming without public endpoints",{"type":68,"tag":1169,"props":1555,"children":1556},{},[1557,1565],{"type":68,"tag":1191,"props":1558,"children":1559},{},[1560],{"type":68,"tag":121,"props":1561,"children":1562},{},[1563],{"type":73,"value":1564},"GraphQL (Beta)",{"type":68,"tag":1191,"props":1566,"children":1567},{},[1568,1570],{"type":73,"value":1569},"Single-endpoint flexible queries at ",{"type":68,"tag":82,"props":1571,"children":1573},{"className":1572},[],[1574],{"type":73,"value":1575},"v3\u002Fgraphql",{"type":68,"tag":1169,"props":1577,"children":1578},{},[1579,1587],{"type":68,"tag":1191,"props":1580,"children":1581},{},[1582],{"type":68,"tag":121,"props":1583,"children":1584},{},[1585],{"type":73,"value":1586},"AI Companion",{"type":68,"tag":1191,"props":1588,"children":1589},{},[1590],{"type":73,"value":1591},"Meeting summaries, transcripts, AI-generated content",{"type":68,"tag":1169,"props":1593,"children":1594},{},[1595,1603],{"type":68,"tag":1191,"props":1596,"children":1597},{},[1598],{"type":68,"tag":121,"props":1599,"children":1600},{},[1601],{"type":73,"value":1602},"AI Services \u002F Scribe",{"type":68,"tag":1191,"props":1604,"children":1605},{},[1606],{"type":73,"value":1607},"File and archive transcription via Build-platform JWT-authenticated endpoints",{"type":68,"tag":161,"props":1609,"children":1611},{"id":1610},"prerequisites",[1612],{"type":73,"value":1613},"Prerequisites",{"type":68,"tag":275,"props":1615,"children":1616},{},[1617,1622,1634,1639],{"type":68,"tag":180,"props":1618,"children":1619},{},[1620],{"type":73,"value":1621},"Zoom account (Free tier has API access with lower rate limits)",{"type":68,"tag":180,"props":1623,"children":1624},{},[1625,1627],{"type":73,"value":1626},"App registered on ",{"type":68,"tag":129,"props":1628,"children":1631},{"href":1629,"rel":1630},"https:\u002F\u002Fmarketplace.zoom.us\u002F",[133],[1632],{"type":73,"value":1633},"Zoom App Marketplace",{"type":68,"tag":180,"props":1635,"children":1636},{},[1637],{"type":73,"value":1638},"OAuth credentials (Server-to-Server OAuth or User OAuth)",{"type":68,"tag":180,"props":1640,"children":1641},{},[1642],{"type":73,"value":1643},"Appropriate scopes for target endpoints",{"type":68,"tag":1645,"props":1646,"children":1647},"blockquote",{},[1648],{"type":68,"tag":76,"props":1649,"children":1650},{},[1651,1656,1658,1667],{"type":68,"tag":121,"props":1652,"children":1653},{},[1654],{"type":73,"value":1655},"Need help with authentication?",{"type":73,"value":1657}," See the ",{"type":68,"tag":121,"props":1659,"children":1660},{},[1661],{"type":68,"tag":129,"props":1662,"children":1664},{"href":1663},"..\u002Foauth\u002FSKILL.md",[1665],{"type":73,"value":1666},"zoom-oauth",{"type":73,"value":1668}," skill for complete OAuth flow implementation.",{"type":68,"tag":161,"props":1670,"children":1672},{"id":1671},"critical-gotchas-and-best-practices",[1673],{"type":73,"value":1674},"Critical Gotchas and Best Practices",{"type":68,"tag":514,"props":1676,"children":1678},{"id":1677},"️-jwt-app-type-is-deprecated",[1679],{"type":73,"value":1680},"⚠️ JWT App Type is Deprecated",{"type":68,"tag":76,"props":1682,"children":1683},{},[1684,1686,1691],{"type":73,"value":1685},"The JWT app type is deprecated. Migrate to ",{"type":68,"tag":121,"props":1687,"children":1688},{},[1689],{"type":73,"value":1690},"Server-to-Server OAuth",{"type":73,"value":1692},". This does NOT affect JWT token signatures used in Video SDK — only the Marketplace \"JWT\" app type for REST API access.",{"type":68,"tag":521,"props":1694,"children":1698},{"className":1695,"code":1696,"language":1697,"meta":526,"style":526},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F OLD (JWT app type - DEPRECATED)\nconst token = jwt.sign({ iss: apiKey, exp: expiry }, apiSecret);\n\n\u002F\u002F NEW (Server-to-Server OAuth)\nconst token = await getServerToServerToken(accountId, clientId, clientSecret);\n","javascript",[1699],{"type":68,"tag":82,"props":1700,"children":1701},{"__ignoreMap":526},[1702,1711,1802,1811,1819],{"type":68,"tag":532,"props":1703,"children":1704},{"class":534,"line":535},[1705],{"type":68,"tag":532,"props":1706,"children":1708},{"style":1707},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1709],{"type":73,"value":1710},"\u002F\u002F OLD (JWT app type - DEPRECATED)\n",{"type":68,"tag":532,"props":1712,"children":1713},{"class":534,"line":578},[1714,1719,1724,1729,1734,1738,1743,1748,1753,1759,1763,1768,1773,1778,1782,1787,1792,1797],{"type":68,"tag":532,"props":1715,"children":1716},{"style":723},[1717],{"type":73,"value":1718},"const",{"type":68,"tag":532,"props":1720,"children":1721},{"style":572},[1722],{"type":73,"value":1723}," token ",{"type":68,"tag":532,"props":1725,"children":1726},{"style":556},[1727],{"type":73,"value":1728},"=",{"type":68,"tag":532,"props":1730,"children":1731},{"style":572},[1732],{"type":73,"value":1733}," jwt",{"type":68,"tag":532,"props":1735,"children":1736},{"style":556},[1737],{"type":73,"value":1068},{"type":68,"tag":532,"props":1739,"children":1740},{"style":601},[1741],{"type":73,"value":1742},"sign",{"type":68,"tag":532,"props":1744,"children":1745},{"style":572},[1746],{"type":73,"value":1747},"(",{"type":68,"tag":532,"props":1749,"children":1750},{"style":556},[1751],{"type":73,"value":1752},"{",{"type":68,"tag":532,"props":1754,"children":1756},{"style":1755},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1757],{"type":73,"value":1758}," iss",{"type":68,"tag":532,"props":1760,"children":1761},{"style":556},[1762],{"type":73,"value":735},{"type":68,"tag":532,"props":1764,"children":1765},{"style":572},[1766],{"type":73,"value":1767}," apiKey",{"type":68,"tag":532,"props":1769,"children":1770},{"style":556},[1771],{"type":73,"value":1772},",",{"type":68,"tag":532,"props":1774,"children":1775},{"style":1755},[1776],{"type":73,"value":1777}," exp",{"type":68,"tag":532,"props":1779,"children":1780},{"style":556},[1781],{"type":73,"value":735},{"type":68,"tag":532,"props":1783,"children":1784},{"style":572},[1785],{"type":73,"value":1786}," expiry ",{"type":68,"tag":532,"props":1788,"children":1789},{"style":556},[1790],{"type":73,"value":1791},"},",{"type":68,"tag":532,"props":1793,"children":1794},{"style":572},[1795],{"type":73,"value":1796}," apiSecret)",{"type":68,"tag":532,"props":1798,"children":1799},{"style":556},[1800],{"type":73,"value":1801},";\n",{"type":68,"tag":532,"props":1803,"children":1804},{"class":534,"line":645},[1805],{"type":68,"tag":532,"props":1806,"children":1808},{"emptyLinePlaceholder":1807},true,[1809],{"type":73,"value":1810},"\n",{"type":68,"tag":532,"props":1812,"children":1813},{"class":534,"line":670},[1814],{"type":68,"tag":532,"props":1815,"children":1816},{"style":1707},[1817],{"type":73,"value":1818},"\u002F\u002F NEW (Server-to-Server OAuth)\n",{"type":68,"tag":532,"props":1820,"children":1821},{"class":534,"line":823},[1822,1826,1830,1834,1840,1845,1850,1854,1859,1863,1868],{"type":68,"tag":532,"props":1823,"children":1824},{"style":723},[1825],{"type":73,"value":1718},{"type":68,"tag":532,"props":1827,"children":1828},{"style":572},[1829],{"type":73,"value":1723},{"type":68,"tag":532,"props":1831,"children":1832},{"style":556},[1833],{"type":73,"value":1728},{"type":68,"tag":532,"props":1835,"children":1837},{"style":1836},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1838],{"type":73,"value":1839}," await",{"type":68,"tag":532,"props":1841,"children":1842},{"style":601},[1843],{"type":73,"value":1844}," getServerToServerToken",{"type":68,"tag":532,"props":1846,"children":1847},{"style":572},[1848],{"type":73,"value":1849},"(accountId",{"type":68,"tag":532,"props":1851,"children":1852},{"style":556},[1853],{"type":73,"value":1772},{"type":68,"tag":532,"props":1855,"children":1856},{"style":572},[1857],{"type":73,"value":1858}," clientId",{"type":68,"tag":532,"props":1860,"children":1861},{"style":556},[1862],{"type":73,"value":1772},{"type":68,"tag":532,"props":1864,"children":1865},{"style":572},[1866],{"type":73,"value":1867}," clientSecret)",{"type":68,"tag":532,"props":1869,"children":1870},{"style":556},[1871],{"type":73,"value":1801},{"type":68,"tag":514,"props":1873,"children":1875},{"id":1874},"️-the-me-keyword-rules",[1876,1878,1883],{"type":73,"value":1877},"⚠️ The ",{"type":68,"tag":82,"props":1879,"children":1881},{"className":1880},[],[1882],{"type":73,"value":199},{"type":73,"value":1884}," Keyword Rules",{"type":68,"tag":275,"props":1886,"children":1887},{},[1888,1913,1937],{"type":68,"tag":180,"props":1889,"children":1890},{},[1891,1896,1898,1903,1905,1911],{"type":68,"tag":121,"props":1892,"children":1893},{},[1894],{"type":73,"value":1895},"User-level OAuth apps",{"type":73,"value":1897},": MUST use ",{"type":68,"tag":82,"props":1899,"children":1901},{"className":1900},[],[1902],{"type":73,"value":199},{"type":73,"value":1904}," instead of ",{"type":68,"tag":82,"props":1906,"children":1908},{"className":1907},[],[1909],{"type":73,"value":1910},"userId",{"type":73,"value":1912}," (otherwise: invalid token error)",{"type":68,"tag":180,"props":1914,"children":1915},{},[1916,1921,1923,1928,1930,1935],{"type":68,"tag":121,"props":1917,"children":1918},{},[1919],{"type":73,"value":1920},"Server-to-Server OAuth apps",{"type":73,"value":1922},": MUST NOT use ",{"type":68,"tag":82,"props":1924,"children":1926},{"className":1925},[],[1927],{"type":73,"value":199},{"type":73,"value":1929}," — provide the actual ",{"type":68,"tag":82,"props":1931,"children":1933},{"className":1932},[],[1934],{"type":73,"value":1910},{"type":73,"value":1936}," or email",{"type":68,"tag":180,"props":1938,"children":1939},{},[1940,1945,1947,1952,1954],{"type":68,"tag":121,"props":1941,"children":1942},{},[1943],{"type":73,"value":1944},"Account-level OAuth apps",{"type":73,"value":1946},": Can use either ",{"type":68,"tag":82,"props":1948,"children":1950},{"className":1949},[],[1951],{"type":73,"value":199},{"type":73,"value":1953}," or ",{"type":68,"tag":82,"props":1955,"children":1957},{"className":1956},[],[1958],{"type":73,"value":1910},{"type":68,"tag":514,"props":1960,"children":1962},{"id":1961},"️-meeting-id-vs-uuid-double-encoding",[1963],{"type":73,"value":1964},"⚠️ Meeting ID vs UUID — Double Encoding",{"type":68,"tag":76,"props":1966,"children":1967},{},[1968,1970,1976,1978,1984,1986,1991],{"type":73,"value":1969},"UUIDs that begin with ",{"type":68,"tag":82,"props":1971,"children":1973},{"className":1972},[],[1974],{"type":73,"value":1975},"\u002F",{"type":73,"value":1977}," or contain ",{"type":68,"tag":82,"props":1979,"children":1981},{"className":1980},[],[1982],{"type":73,"value":1983},"\u002F\u002F",{"type":73,"value":1985}," must be ",{"type":68,"tag":121,"props":1987,"children":1988},{},[1989],{"type":73,"value":1990},"double URL-encoded",{"type":73,"value":735},{"type":68,"tag":521,"props":1993,"children":1995},{"className":1695,"code":1994,"language":1697,"meta":526,"style":526},"\u002F\u002F UUID: \u002Fabc==\n\u002F\u002F Single encode: %2Fabc%3D%3D\n\u002F\u002F Double encode: %252Fabc%253D%253D  ← USE THIS\n\nconst uuid = '\u002Fabc==';\nconst encoded = encodeURIComponent(encodeURIComponent(uuid));\nconst url = `https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fmeetings\u002F${encoded}`;\n",[1996],{"type":68,"tag":82,"props":1997,"children":1998},{"__ignoreMap":526},[1999,2007,2015,2023,2030,2063,2102],{"type":68,"tag":532,"props":2000,"children":2001},{"class":534,"line":535},[2002],{"type":68,"tag":532,"props":2003,"children":2004},{"style":1707},[2005],{"type":73,"value":2006},"\u002F\u002F UUID: \u002Fabc==\n",{"type":68,"tag":532,"props":2008,"children":2009},{"class":534,"line":578},[2010],{"type":68,"tag":532,"props":2011,"children":2012},{"style":1707},[2013],{"type":73,"value":2014},"\u002F\u002F Single encode: %2Fabc%3D%3D\n",{"type":68,"tag":532,"props":2016,"children":2017},{"class":534,"line":645},[2018],{"type":68,"tag":532,"props":2019,"children":2020},{"style":1707},[2021],{"type":73,"value":2022},"\u002F\u002F Double encode: %252Fabc%253D%253D  ← USE THIS\n",{"type":68,"tag":532,"props":2024,"children":2025},{"class":534,"line":670},[2026],{"type":68,"tag":532,"props":2027,"children":2028},{"emptyLinePlaceholder":1807},[2029],{"type":73,"value":1810},{"type":68,"tag":532,"props":2031,"children":2032},{"class":534,"line":823},[2033,2037,2042,2046,2050,2055,2059],{"type":68,"tag":532,"props":2034,"children":2035},{"style":723},[2036],{"type":73,"value":1718},{"type":68,"tag":532,"props":2038,"children":2039},{"style":572},[2040],{"type":73,"value":2041}," uuid ",{"type":68,"tag":532,"props":2043,"children":2044},{"style":556},[2045],{"type":73,"value":1728},{"type":68,"tag":532,"props":2047,"children":2048},{"style":556},[2049],{"type":73,"value":968},{"type":68,"tag":532,"props":2051,"children":2052},{"style":545},[2053],{"type":73,"value":2054},"\u002Fabc==",{"type":68,"tag":532,"props":2056,"children":2057},{"style":556},[2058],{"type":73,"value":614},{"type":68,"tag":532,"props":2060,"children":2061},{"style":556},[2062],{"type":73,"value":1801},{"type":68,"tag":532,"props":2064,"children":2065},{"class":534,"line":857},[2066,2070,2075,2079,2084,2088,2093,2098],{"type":68,"tag":532,"props":2067,"children":2068},{"style":723},[2069],{"type":73,"value":1718},{"type":68,"tag":532,"props":2071,"children":2072},{"style":572},[2073],{"type":73,"value":2074}," encoded ",{"type":68,"tag":532,"props":2076,"children":2077},{"style":556},[2078],{"type":73,"value":1728},{"type":68,"tag":532,"props":2080,"children":2081},{"style":601},[2082],{"type":73,"value":2083}," encodeURIComponent",{"type":68,"tag":532,"props":2085,"children":2086},{"style":572},[2087],{"type":73,"value":1747},{"type":68,"tag":532,"props":2089,"children":2090},{"style":601},[2091],{"type":73,"value":2092},"encodeURIComponent",{"type":68,"tag":532,"props":2094,"children":2095},{"style":572},[2096],{"type":73,"value":2097},"(uuid))",{"type":68,"tag":532,"props":2099,"children":2100},{"style":556},[2101],{"type":73,"value":1801},{"type":68,"tag":532,"props":2103,"children":2104},{"class":534,"line":991},[2105,2109,2114,2118,2123,2128,2133,2138,2143],{"type":68,"tag":532,"props":2106,"children":2107},{"style":723},[2108],{"type":73,"value":1718},{"type":68,"tag":532,"props":2110,"children":2111},{"style":572},[2112],{"type":73,"value":2113}," url ",{"type":68,"tag":532,"props":2115,"children":2116},{"style":556},[2117],{"type":73,"value":1728},{"type":68,"tag":532,"props":2119,"children":2120},{"style":556},[2121],{"type":73,"value":2122}," `",{"type":68,"tag":532,"props":2124,"children":2125},{"style":545},[2126],{"type":73,"value":2127},"https:\u002F\u002Fapi.zoom.us\u002Fv2\u002Fmeetings\u002F",{"type":68,"tag":532,"props":2129,"children":2130},{"style":556},[2131],{"type":73,"value":2132},"${",{"type":68,"tag":532,"props":2134,"children":2135},{"style":572},[2136],{"type":73,"value":2137},"encoded",{"type":68,"tag":532,"props":2139,"children":2140},{"style":556},[2141],{"type":73,"value":2142},"}`",{"type":68,"tag":532,"props":2144,"children":2145},{"style":556},[2146],{"type":73,"value":1801},{"type":68,"tag":514,"props":2148,"children":2150},{"id":2149},"️-time-formats",[2151],{"type":73,"value":2152},"⚠️ Time Formats",{"type":68,"tag":275,"props":2154,"children":2155},{},[2156,2182,2214],{"type":68,"tag":180,"props":2157,"children":2158},{},[2159,2165,2167,2172,2174,2180],{"type":68,"tag":82,"props":2160,"children":2162},{"className":2161},[],[2163],{"type":73,"value":2164},"yyyy-MM-ddTHH:mm:ssZ",{"type":73,"value":2166}," — ",{"type":68,"tag":121,"props":2168,"children":2169},{},[2170],{"type":73,"value":2171},"UTC time",{"type":73,"value":2173}," (note the ",{"type":68,"tag":82,"props":2175,"children":2177},{"className":2176},[],[2178],{"type":73,"value":2179},"Z",{"type":73,"value":2181}," suffix)",{"type":68,"tag":180,"props":2183,"children":2184},{},[2185,2191,2192,2197,2199,2204,2206,2212],{"type":68,"tag":82,"props":2186,"children":2188},{"className":2187},[],[2189],{"type":73,"value":2190},"yyyy-MM-ddTHH:mm:ss",{"type":73,"value":2166},{"type":68,"tag":121,"props":2193,"children":2194},{},[2195],{"type":73,"value":2196},"Local time",{"type":73,"value":2198}," (no ",{"type":68,"tag":82,"props":2200,"children":2202},{"className":2201},[],[2203],{"type":73,"value":2179},{"type":73,"value":2205},", uses ",{"type":68,"tag":82,"props":2207,"children":2209},{"className":2208},[],[2210],{"type":73,"value":2211},"timezone",{"type":73,"value":2213}," field)",{"type":68,"tag":180,"props":2215,"children":2216},{},[2217],{"type":73,"value":2218},"Some report APIs only accept UTC. Check the API reference for each endpoint.",{"type":68,"tag":514,"props":2220,"children":2222},{"id":2221},"️-rate-limits-are-per-account-not-per-app",[2223],{"type":73,"value":2224},"⚠️ Rate Limits Are Per-Account, Not Per-App",{"type":68,"tag":76,"props":2226,"children":2227},{},[2228,2230,2235,2237,2243],{"type":73,"value":2229},"All apps on the same Zoom account ",{"type":68,"tag":121,"props":2231,"children":2232},{},[2233],{"type":73,"value":2234},"share",{"type":73,"value":2236}," rate limits. One heavy app can impact others. Monitor ",{"type":68,"tag":82,"props":2238,"children":2240},{"className":2239},[],[2241],{"type":73,"value":2242},"X-RateLimit-Remaining",{"type":73,"value":2244}," headers proactively.",{"type":68,"tag":514,"props":2246,"children":2248},{"id":2247},"️-per-user-daily-limits",[2249],{"type":73,"value":2250},"⚠️ Per-User Daily Limits",{"type":68,"tag":76,"props":2252,"children":2253},{},[2254,2256,2261],{"type":73,"value":2255},"Meeting\u002FWebinar create\u002Fupdate operations are limited to ",{"type":68,"tag":121,"props":2257,"children":2258},{},[2259],{"type":73,"value":2260},"100 per day per user",{"type":73,"value":2262}," (resets at 00:00 UTC). Distribute operations across different host users when doing bulk operations.",{"type":68,"tag":514,"props":2264,"children":2266},{"id":2265},"️-download-urls-require-auth-and-follow-redirects",[2267],{"type":73,"value":2268},"⚠️ Download URLs Require Auth and Follow Redirects",{"type":68,"tag":76,"props":2270,"children":2271},{},[2272,2274,2279],{"type":73,"value":2273},"Recording ",{"type":68,"tag":82,"props":2275,"children":2277},{"className":2276},[],[2278],{"type":73,"value":63},{"type":73,"value":2280}," values require Bearer token authentication and may redirect. Always follow redirects:",{"type":68,"tag":521,"props":2282,"children":2284},{"className":523,"code":2283,"language":525,"meta":526,"style":526},"curl -L -H \"Authorization: Bearer ACCESS_TOKEN\" \"https:\u002F\u002Fzoom.us\u002Frec\u002Fdownload\u002F...\"\n",[2285],{"type":68,"tag":82,"props":2286,"children":2287},{"__ignoreMap":526},[2288],{"type":68,"tag":532,"props":2289,"children":2290},{"class":534,"line":535},[2291,2295,2300,2305,2309,2313,2317,2321,2326],{"type":68,"tag":532,"props":2292,"children":2293},{"style":539},[2294],{"type":73,"value":542},{"type":68,"tag":532,"props":2296,"children":2297},{"style":545},[2298],{"type":73,"value":2299}," -L",{"type":68,"tag":532,"props":2301,"children":2302},{"style":545},[2303],{"type":73,"value":2304}," -H",{"type":68,"tag":532,"props":2306,"children":2307},{"style":556},[2308],{"type":73,"value":559},{"type":68,"tag":532,"props":2310,"children":2311},{"style":545},[2312],{"type":73,"value":924},{"type":68,"tag":532,"props":2314,"children":2315},{"style":556},[2316],{"type":73,"value":569},{"type":68,"tag":532,"props":2318,"children":2319},{"style":556},[2320],{"type":73,"value":559},{"type":68,"tag":532,"props":2322,"children":2323},{"style":545},[2324],{"type":73,"value":2325},"https:\u002F\u002Fzoom.us\u002Frec\u002Fdownload\u002F...",{"type":68,"tag":532,"props":2327,"children":2328},{"style":556},[2329],{"type":73,"value":690},{"type":68,"tag":514,"props":2331,"children":2333},{"id":2332},"use-webhooks-instead-of-polling",[2334],{"type":73,"value":2335},"Use Webhooks Instead of Polling",{"type":68,"tag":521,"props":2337,"children":2339},{"className":1695,"code":2338,"language":1697,"meta":526,"style":526},"\u002F\u002F DON'T: Poll every minute (wastes API quota)\nsetInterval(() => getMeetings(), 60000);\n\n\u002F\u002F DO: Receive webhook events in real-time\napp.post('\u002Fwebhook', (req, res) => {\n  if (req.body.event === 'meeting.started') {\n    handleMeetingStarted(req.body.payload);\n  }\n  res.status(200).send();\n});\n",[2340],{"type":68,"tag":82,"props":2341,"children":2342},{"__ignoreMap":526},[2343,2351,2400,2407,2415,2486,2547,2588,2596,2643],{"type":68,"tag":532,"props":2344,"children":2345},{"class":534,"line":535},[2346],{"type":68,"tag":532,"props":2347,"children":2348},{"style":1707},[2349],{"type":73,"value":2350},"\u002F\u002F DON'T: Poll every minute (wastes API quota)\n",{"type":68,"tag":532,"props":2352,"children":2353},{"class":534,"line":578},[2354,2359,2363,2368,2373,2378,2382,2386,2391,2396],{"type":68,"tag":532,"props":2355,"children":2356},{"style":601},[2357],{"type":73,"value":2358},"setInterval",{"type":68,"tag":532,"props":2360,"children":2361},{"style":572},[2362],{"type":73,"value":1747},{"type":68,"tag":532,"props":2364,"children":2365},{"style":556},[2366],{"type":73,"value":2367},"()",{"type":68,"tag":532,"props":2369,"children":2370},{"style":723},[2371],{"type":73,"value":2372}," =>",{"type":68,"tag":532,"props":2374,"children":2375},{"style":601},[2376],{"type":73,"value":2377}," getMeetings",{"type":68,"tag":532,"props":2379,"children":2380},{"style":572},[2381],{"type":73,"value":2367},{"type":68,"tag":532,"props":2383,"children":2384},{"style":556},[2385],{"type":73,"value":1772},{"type":68,"tag":532,"props":2387,"children":2388},{"style":813},[2389],{"type":73,"value":2390}," 60000",{"type":68,"tag":532,"props":2392,"children":2393},{"style":572},[2394],{"type":73,"value":2395},")",{"type":68,"tag":532,"props":2397,"children":2398},{"style":556},[2399],{"type":73,"value":1801},{"type":68,"tag":532,"props":2401,"children":2402},{"class":534,"line":645},[2403],{"type":68,"tag":532,"props":2404,"children":2405},{"emptyLinePlaceholder":1807},[2406],{"type":73,"value":1810},{"type":68,"tag":532,"props":2408,"children":2409},{"class":534,"line":670},[2410],{"type":68,"tag":532,"props":2411,"children":2412},{"style":1707},[2413],{"type":73,"value":2414},"\u002F\u002F DO: Receive webhook events in real-time\n",{"type":68,"tag":532,"props":2416,"children":2417},{"class":534,"line":823},[2418,2423,2427,2432,2436,2440,2445,2449,2453,2458,2464,2468,2473,2477,2481],{"type":68,"tag":532,"props":2419,"children":2420},{"style":572},[2421],{"type":73,"value":2422},"app",{"type":68,"tag":532,"props":2424,"children":2425},{"style":556},[2426],{"type":73,"value":1068},{"type":68,"tag":532,"props":2428,"children":2429},{"style":601},[2430],{"type":73,"value":2431},"post",{"type":68,"tag":532,"props":2433,"children":2434},{"style":572},[2435],{"type":73,"value":1747},{"type":68,"tag":532,"props":2437,"children":2438},{"style":556},[2439],{"type":73,"value":614},{"type":68,"tag":532,"props":2441,"children":2442},{"style":545},[2443],{"type":73,"value":2444},"\u002Fwebhook",{"type":68,"tag":532,"props":2446,"children":2447},{"style":556},[2448],{"type":73,"value":614},{"type":68,"tag":532,"props":2450,"children":2451},{"style":556},[2452],{"type":73,"value":1772},{"type":68,"tag":532,"props":2454,"children":2455},{"style":556},[2456],{"type":73,"value":2457}," (",{"type":68,"tag":532,"props":2459,"children":2461},{"style":2460},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[2462],{"type":73,"value":2463},"req",{"type":68,"tag":532,"props":2465,"children":2466},{"style":556},[2467],{"type":73,"value":1772},{"type":68,"tag":532,"props":2469,"children":2470},{"style":2460},[2471],{"type":73,"value":2472}," res",{"type":68,"tag":532,"props":2474,"children":2475},{"style":556},[2476],{"type":73,"value":2395},{"type":68,"tag":532,"props":2478,"children":2479},{"style":723},[2480],{"type":73,"value":2372},{"type":68,"tag":532,"props":2482,"children":2483},{"style":556},[2484],{"type":73,"value":2485}," {\n",{"type":68,"tag":532,"props":2487,"children":2488},{"class":534,"line":857},[2489,2494,2498,2502,2506,2511,2515,2520,2525,2529,2534,2538,2543],{"type":68,"tag":532,"props":2490,"children":2491},{"style":1836},[2492],{"type":73,"value":2493},"  if",{"type":68,"tag":532,"props":2495,"children":2496},{"style":1755},[2497],{"type":73,"value":2457},{"type":68,"tag":532,"props":2499,"children":2500},{"style":572},[2501],{"type":73,"value":2463},{"type":68,"tag":532,"props":2503,"children":2504},{"style":556},[2505],{"type":73,"value":1068},{"type":68,"tag":532,"props":2507,"children":2508},{"style":572},[2509],{"type":73,"value":2510},"body",{"type":68,"tag":532,"props":2512,"children":2513},{"style":556},[2514],{"type":73,"value":1068},{"type":68,"tag":532,"props":2516,"children":2517},{"style":572},[2518],{"type":73,"value":2519},"event",{"type":68,"tag":532,"props":2521,"children":2522},{"style":556},[2523],{"type":73,"value":2524}," ===",{"type":68,"tag":532,"props":2526,"children":2527},{"style":556},[2528],{"type":73,"value":968},{"type":68,"tag":532,"props":2530,"children":2531},{"style":545},[2532],{"type":73,"value":2533},"meeting.started",{"type":68,"tag":532,"props":2535,"children":2536},{"style":556},[2537],{"type":73,"value":614},{"type":68,"tag":532,"props":2539,"children":2540},{"style":1755},[2541],{"type":73,"value":2542},") ",{"type":68,"tag":532,"props":2544,"children":2545},{"style":556},[2546],{"type":73,"value":712},{"type":68,"tag":532,"props":2548,"children":2549},{"class":534,"line":991},[2550,2555,2559,2563,2567,2571,2575,2580,2584],{"type":68,"tag":532,"props":2551,"children":2552},{"style":601},[2553],{"type":73,"value":2554},"    handleMeetingStarted",{"type":68,"tag":532,"props":2556,"children":2557},{"style":1755},[2558],{"type":73,"value":1747},{"type":68,"tag":532,"props":2560,"children":2561},{"style":572},[2562],{"type":73,"value":2463},{"type":68,"tag":532,"props":2564,"children":2565},{"style":556},[2566],{"type":73,"value":1068},{"type":68,"tag":532,"props":2568,"children":2569},{"style":572},[2570],{"type":73,"value":2510},{"type":68,"tag":532,"props":2572,"children":2573},{"style":556},[2574],{"type":73,"value":1068},{"type":68,"tag":532,"props":2576,"children":2577},{"style":572},[2578],{"type":73,"value":2579},"payload",{"type":68,"tag":532,"props":2581,"children":2582},{"style":1755},[2583],{"type":73,"value":2395},{"type":68,"tag":532,"props":2585,"children":2586},{"style":556},[2587],{"type":73,"value":1801},{"type":68,"tag":532,"props":2589,"children":2590},{"class":534,"line":1000},[2591],{"type":68,"tag":532,"props":2592,"children":2593},{"style":556},[2594],{"type":73,"value":2595},"  }\n",{"type":68,"tag":532,"props":2597,"children":2598},{"class":534,"line":1009},[2599,2604,2608,2613,2617,2622,2626,2630,2635,2639],{"type":68,"tag":532,"props":2600,"children":2601},{"style":572},[2602],{"type":73,"value":2603},"  res",{"type":68,"tag":532,"props":2605,"children":2606},{"style":556},[2607],{"type":73,"value":1068},{"type":68,"tag":532,"props":2609,"children":2610},{"style":601},[2611],{"type":73,"value":2612},"status",{"type":68,"tag":532,"props":2614,"children":2615},{"style":1755},[2616],{"type":73,"value":1747},{"type":68,"tag":532,"props":2618,"children":2619},{"style":813},[2620],{"type":73,"value":2621},"200",{"type":68,"tag":532,"props":2623,"children":2624},{"style":1755},[2625],{"type":73,"value":2395},{"type":68,"tag":532,"props":2627,"children":2628},{"style":556},[2629],{"type":73,"value":1068},{"type":68,"tag":532,"props":2631,"children":2632},{"style":601},[2633],{"type":73,"value":2634},"send",{"type":68,"tag":532,"props":2636,"children":2637},{"style":1755},[2638],{"type":73,"value":2367},{"type":68,"tag":532,"props":2640,"children":2641},{"style":556},[2642],{"type":73,"value":1801},{"type":68,"tag":532,"props":2644,"children":2645},{"class":534,"line":1018},[2646,2651,2655],{"type":68,"tag":532,"props":2647,"children":2648},{"style":556},[2649],{"type":73,"value":2650},"}",{"type":68,"tag":532,"props":2652,"children":2653},{"style":572},[2654],{"type":73,"value":2395},{"type":68,"tag":532,"props":2656,"children":2657},{"style":556},[2658],{"type":73,"value":1801},{"type":68,"tag":1645,"props":2660,"children":2661},{},[2662],{"type":68,"tag":76,"props":2663,"children":2664},{},[2665,2670,2671,2680],{"type":68,"tag":121,"props":2666,"children":2667},{},[2668],{"type":73,"value":2669},"Webhook setup details:",{"type":73,"value":1657},{"type":68,"tag":121,"props":2672,"children":2673},{},[2674],{"type":68,"tag":129,"props":2675,"children":2677},{"href":2676},"..\u002Fwebhooks\u002FSKILL.md",[2678],{"type":73,"value":2679},"zoom-webhooks",{"type":73,"value":2681}," skill for comprehensive webhook implementation.",{"type":68,"tag":161,"props":2683,"children":2685},{"id":2684},"complete-documentation-library",[2686],{"type":73,"value":2687},"Complete Documentation Library",{"type":68,"tag":76,"props":2689,"children":2690},{},[2691],{"type":73,"value":2692},"This skill includes comprehensive guides organized by category:",{"type":68,"tag":514,"props":2694,"children":2696},{"id":2695},"core-concepts",[2697],{"type":73,"value":2698},"Core Concepts",{"type":68,"tag":275,"props":2700,"children":2701},{},[2702,2720,2732],{"type":68,"tag":180,"props":2703,"children":2704},{},[2705,2712,2714,2719],{"type":68,"tag":121,"props":2706,"children":2707},{},[2708],{"type":68,"tag":129,"props":2709,"children":2710},{"href":188},[2711],{"type":73,"value":191},{"type":73,"value":2713}," - REST design, base URLs, regional routing, ",{"type":68,"tag":82,"props":2715,"children":2717},{"className":2716},[],[2718],{"type":73,"value":199},{"type":73,"value":201},{"type":68,"tag":180,"props":2721,"children":2722},{},[2723,2730],{"type":68,"tag":121,"props":2724,"children":2725},{},[2726],{"type":68,"tag":129,"props":2727,"children":2728},{"href":210},[2729],{"type":73,"value":213},{"type":73,"value":2731}," - All OAuth flows (S2S, User, PKCE, Device Code)",{"type":68,"tag":180,"props":2733,"children":2734},{},[2735,2742],{"type":68,"tag":121,"props":2736,"children":2737},{},[2738],{"type":68,"tag":129,"props":2739,"children":2740},{"href":260},[2741],{"type":73,"value":263},{"type":73,"value":2743}," - Limits by plan, retry patterns, request queuing",{"type":68,"tag":514,"props":2745,"children":2747},{"id":2746},"complete-examples",[2748],{"type":73,"value":2749},"Complete Examples",{"type":68,"tag":275,"props":2751,"children":2752},{},[2753,2765,2779,2791,2803],{"type":68,"tag":180,"props":2754,"children":2755},{},[2756,2763],{"type":68,"tag":121,"props":2757,"children":2758},{},[2759],{"type":68,"tag":129,"props":2760,"children":2761},{"href":246},[2762],{"type":73,"value":249},{"type":73,"value":2764}," - Full Create → Update → Start → End → Delete flow with webhook events",{"type":68,"tag":180,"props":2766,"children":2767},{},[2768,2777],{"type":68,"tag":121,"props":2769,"children":2770},{},[2771],{"type":68,"tag":129,"props":2772,"children":2774},{"href":2773},"examples\u002Fuser-management.md",[2775],{"type":73,"value":2776},"User Management",{"type":73,"value":2778}," - CRUD users, list with pagination, bulk operations",{"type":68,"tag":180,"props":2780,"children":2781},{},[2782,2789],{"type":68,"tag":121,"props":2783,"children":2784},{},[2785],{"type":68,"tag":129,"props":2786,"children":2787},{"href":501},[2788],{"type":73,"value":504},{"type":73,"value":2790}," - Download recordings via webhooks + API",{"type":68,"tag":180,"props":2792,"children":2793},{},[2794,2801],{"type":68,"tag":121,"props":2795,"children":2796},{},[2797],{"type":68,"tag":129,"props":2798,"children":2799},{"href":450},[2800],{"type":73,"value":453},{"type":73,"value":2802}," - Express.js server with CRC validation and signature verification",{"type":68,"tag":180,"props":2804,"children":2805},{},[2806,2813],{"type":68,"tag":121,"props":2807,"children":2808},{},[2809],{"type":68,"tag":129,"props":2810,"children":2811},{"href":342},[2812],{"type":73,"value":345},{"type":73,"value":2814}," - GraphQL queries, mutations, cursor pagination",{"type":68,"tag":514,"props":2816,"children":2818},{"id":2817},"troubleshooting",[2819],{"type":73,"value":2820},"Troubleshooting",{"type":68,"tag":275,"props":2822,"children":2823},{},[2824,2836],{"type":68,"tag":180,"props":2825,"children":2826},{},[2827,2834],{"type":68,"tag":121,"props":2828,"children":2829},{},[2830],{"type":68,"tag":129,"props":2831,"children":2832},{"href":428},[2833],{"type":73,"value":431},{"type":73,"value":2835}," - HTTP status codes, Zoom error codes, error response formats",{"type":68,"tag":180,"props":2837,"children":2838},{},[2839,2846],{"type":68,"tag":121,"props":2840,"children":2841},{},[2842],{"type":68,"tag":129,"props":2843,"children":2844},{"href":439},[2845],{"type":73,"value":442},{"type":73,"value":2847}," - Rate limits, token refresh, pagination pitfalls, gotchas",{"type":68,"tag":514,"props":2849,"children":2851},{"id":2850},"references-39-files-covering-all-zoom-api-domains",[2852],{"type":73,"value":2853},"References (39 files covering all Zoom API domains)",{"type":68,"tag":2855,"props":2856,"children":2858},"h4",{"id":2857},"core-apis",[2859],{"type":73,"value":2860},"Core APIs",{"type":68,"tag":275,"props":2862,"children":2863},{},[2864,2875,2887,2900,2912,2925],{"type":68,"tag":180,"props":2865,"children":2866},{},[2867,2874],{"type":68,"tag":121,"props":2868,"children":2869},{},[2870],{"type":68,"tag":129,"props":2871,"children":2872},{"href":286},[2873],{"type":73,"value":286},{"type":73,"value":291},{"type":68,"tag":180,"props":2876,"children":2877},{},[2878,2885],{"type":68,"tag":121,"props":2879,"children":2880},{},[2881],{"type":68,"tag":129,"props":2882,"children":2883},{"href":300},[2884],{"type":73,"value":300},{"type":73,"value":2886}," - User provisioning, types, scopes",{"type":68,"tag":180,"props":2888,"children":2889},{},[2890,2898],{"type":68,"tag":121,"props":2891,"children":2892},{},[2893],{"type":68,"tag":129,"props":2894,"children":2896},{"href":2895},"references\u002Fwebinars.md",[2897],{"type":73,"value":2895},{"type":73,"value":2899}," - Webinar management, registrants",{"type":68,"tag":180,"props":2901,"children":2902},{},[2903,2910],{"type":68,"tag":121,"props":2904,"children":2905},{},[2906],{"type":68,"tag":129,"props":2907,"children":2908},{"href":314},[2909],{"type":73,"value":314},{"type":73,"value":2911}," - Cloud recording access",{"type":68,"tag":180,"props":2913,"children":2914},{},[2915,2923],{"type":68,"tag":121,"props":2916,"children":2917},{},[2918],{"type":68,"tag":129,"props":2919,"children":2921},{"href":2920},"references\u002Freports.md",[2922],{"type":73,"value":2920},{"type":73,"value":2924}," - Usage reports, analytics",{"type":68,"tag":180,"props":2926,"children":2927},{},[2928,2936],{"type":68,"tag":121,"props":2929,"children":2930},{},[2931],{"type":68,"tag":129,"props":2932,"children":2934},{"href":2933},"references\u002Faccounts.md",[2935],{"type":73,"value":2933},{"type":73,"value":2937}," - Account management",{"type":68,"tag":2855,"props":2939,"children":2941},{"id":2940},"communication",[2942],{"type":73,"value":2943},"Communication",{"type":68,"tag":275,"props":2945,"children":2946},{},[2947,2960,2973,2986,2999],{"type":68,"tag":180,"props":2948,"children":2949},{},[2950,2958],{"type":68,"tag":121,"props":2951,"children":2952},{},[2953],{"type":68,"tag":129,"props":2954,"children":2956},{"href":2955},"references\u002Fteam-chat.md",[2957],{"type":73,"value":2955},{"type":73,"value":2959}," - Team Chat messaging",{"type":68,"tag":180,"props":2961,"children":2962},{},[2963,2971],{"type":68,"tag":121,"props":2964,"children":2965},{},[2966],{"type":68,"tag":129,"props":2967,"children":2969},{"href":2968},"references\u002Fchatbot.md",[2970],{"type":73,"value":2968},{"type":73,"value":2972}," - Interactive chatbots",{"type":68,"tag":180,"props":2974,"children":2975},{},[2976,2984],{"type":68,"tag":121,"props":2977,"children":2978},{},[2979],{"type":68,"tag":129,"props":2980,"children":2982},{"href":2981},"references\u002Fphone.md",[2983],{"type":73,"value":2981},{"type":73,"value":2985}," - Zoom Phone",{"type":68,"tag":180,"props":2987,"children":2988},{},[2989,2997],{"type":68,"tag":121,"props":2990,"children":2991},{},[2992],{"type":68,"tag":129,"props":2993,"children":2995},{"href":2994},"references\u002Fmail.md",[2996],{"type":73,"value":2994},{"type":73,"value":2998}," - Zoom Mail",{"type":68,"tag":180,"props":3000,"children":3001},{},[3002,3010],{"type":68,"tag":121,"props":3003,"children":3004},{},[3005],{"type":68,"tag":129,"props":3006,"children":3008},{"href":3007},"references\u002Fcalendar.md",[3009],{"type":73,"value":3007},{"type":73,"value":3011}," - Zoom Calendar",{"type":68,"tag":2855,"props":3013,"children":3015},{"id":3014},"infrastructure",[3016],{"type":73,"value":3017},"Infrastructure",{"type":68,"tag":275,"props":3019,"children":3020},{},[3021,3034,3047,3060],{"type":68,"tag":180,"props":3022,"children":3023},{},[3024,3032],{"type":68,"tag":121,"props":3025,"children":3026},{},[3027],{"type":68,"tag":129,"props":3028,"children":3030},{"href":3029},"references\u002Frooms.md",[3031],{"type":73,"value":3029},{"type":73,"value":3033}," - Zoom Rooms",{"type":68,"tag":180,"props":3035,"children":3036},{},[3037,3045],{"type":68,"tag":121,"props":3038,"children":3039},{},[3040],{"type":68,"tag":129,"props":3041,"children":3043},{"href":3042},"references\u002Fscim2.md",[3044],{"type":73,"value":3042},{"type":73,"value":3046}," - SCIM 2.0 provisioning APIs",{"type":68,"tag":180,"props":3048,"children":3049},{},[3050,3058],{"type":68,"tag":121,"props":3051,"children":3052},{},[3053],{"type":68,"tag":129,"props":3054,"children":3056},{"href":3055},"references\u002Frate-limits.md",[3057],{"type":73,"value":3055},{"type":73,"value":3059}," - Rate limit details",{"type":68,"tag":180,"props":3061,"children":3062},{},[3063,3071],{"type":68,"tag":121,"props":3064,"children":3065},{},[3066],{"type":68,"tag":129,"props":3067,"children":3069},{"href":3068},"references\u002Fqss.md",[3070],{"type":73,"value":3068},{"type":73,"value":3072}," - Quality of Service Subscription",{"type":68,"tag":2855,"props":3074,"children":3076},{"id":3075},"advanced",[3077],{"type":73,"value":3078},"Advanced",{"type":68,"tag":275,"props":3080,"children":3081},{},[3082,3095,3108,3121],{"type":68,"tag":180,"props":3083,"children":3084},{},[3085,3093],{"type":68,"tag":121,"props":3086,"children":3087},{},[3088],{"type":68,"tag":129,"props":3089,"children":3091},{"href":3090},"references\u002Fgraphql.md",[3092],{"type":73,"value":3090},{"type":73,"value":3094}," - GraphQL API (beta)",{"type":68,"tag":180,"props":3096,"children":3097},{},[3098,3106],{"type":68,"tag":121,"props":3099,"children":3100},{},[3101],{"type":68,"tag":129,"props":3102,"children":3104},{"href":3103},"references\u002Fai-companion.md",[3105],{"type":73,"value":3103},{"type":73,"value":3107}," - AI features",{"type":68,"tag":180,"props":3109,"children":3110},{},[3111,3119],{"type":68,"tag":121,"props":3112,"children":3113},{},[3114],{"type":68,"tag":129,"props":3115,"children":3117},{"href":3116},"references\u002Fauthentication.md",[3118],{"type":73,"value":3116},{"type":73,"value":3120}," - Auth reference",{"type":68,"tag":180,"props":3122,"children":3123},{},[3124,3132],{"type":68,"tag":121,"props":3125,"children":3126},{},[3127],{"type":68,"tag":129,"props":3128,"children":3130},{"href":3129},"references\u002Fopenapi.md",[3131],{"type":73,"value":3129},{"type":73,"value":3133}," - OpenAPI specs, Postman, code generation",{"type":68,"tag":2855,"props":3135,"children":3137},{"id":3136},"additional-api-domains",[3138],{"type":73,"value":3139},"Additional API Domains",{"type":68,"tag":275,"props":3141,"children":3142},{},[3143,3156,3169,3182,3195,3208,3221,3234,3247,3260,3273,3286,3299,3312,3325,3338,3351,3364,3377,3390],{"type":68,"tag":180,"props":3144,"children":3145},{},[3146,3154],{"type":68,"tag":121,"props":3147,"children":3148},{},[3149],{"type":68,"tag":129,"props":3150,"children":3152},{"href":3151},"references\u002Fevents.md",[3153],{"type":73,"value":3151},{"type":73,"value":3155}," - Events and event platform APIs",{"type":68,"tag":180,"props":3157,"children":3158},{},[3159,3167],{"type":68,"tag":121,"props":3160,"children":3161},{},[3162],{"type":68,"tag":129,"props":3163,"children":3165},{"href":3164},"references\u002Fscheduler.md",[3166],{"type":73,"value":3164},{"type":73,"value":3168}," - Zoom Scheduler APIs",{"type":68,"tag":180,"props":3170,"children":3171},{},[3172,3180],{"type":68,"tag":121,"props":3173,"children":3174},{},[3175],{"type":68,"tag":129,"props":3176,"children":3178},{"href":3177},"references\u002Ftasks.md",[3179],{"type":73,"value":3177},{"type":73,"value":3181}," - Tasks APIs",{"type":68,"tag":180,"props":3183,"children":3184},{},[3185,3193],{"type":68,"tag":121,"props":3186,"children":3187},{},[3188],{"type":68,"tag":129,"props":3189,"children":3191},{"href":3190},"references\u002Fwhiteboard.md",[3192],{"type":73,"value":3190},{"type":73,"value":3194}," - Whiteboard APIs",{"type":68,"tag":180,"props":3196,"children":3197},{},[3198,3206],{"type":68,"tag":121,"props":3199,"children":3200},{},[3201],{"type":68,"tag":129,"props":3202,"children":3204},{"href":3203},"references\u002Fvideo-management.md",[3205],{"type":73,"value":3203},{"type":73,"value":3207}," - Video management APIs",{"type":68,"tag":180,"props":3209,"children":3210},{},[3211,3219],{"type":68,"tag":121,"props":3212,"children":3213},{},[3214],{"type":68,"tag":129,"props":3215,"children":3217},{"href":3216},"references\u002Fvideo-sdk-api.md",[3218],{"type":73,"value":3216},{"type":73,"value":3220}," - Video SDK REST APIs",{"type":68,"tag":180,"props":3222,"children":3223},{},[3224,3232],{"type":68,"tag":121,"props":3225,"children":3226},{},[3227],{"type":68,"tag":129,"props":3228,"children":3230},{"href":3229},"references\u002Fmarketplace-apps.md",[3231],{"type":73,"value":3229},{"type":73,"value":3233}," - Marketplace app management",{"type":68,"tag":180,"props":3235,"children":3236},{},[3237,3245],{"type":68,"tag":121,"props":3238,"children":3239},{},[3240],{"type":68,"tag":129,"props":3241,"children":3243},{"href":3242},"references\u002Fcommerce.md",[3244],{"type":73,"value":3242},{"type":73,"value":3246}," - Commerce and billing APIs",{"type":68,"tag":180,"props":3248,"children":3249},{},[3250,3258],{"type":68,"tag":121,"props":3251,"children":3252},{},[3253],{"type":68,"tag":129,"props":3254,"children":3256},{"href":3255},"references\u002Fcontact-center.md",[3257],{"type":73,"value":3255},{"type":73,"value":3259}," - Contact Center APIs",{"type":68,"tag":180,"props":3261,"children":3262},{},[3263,3271],{"type":68,"tag":121,"props":3264,"children":3265},{},[3266],{"type":68,"tag":129,"props":3267,"children":3269},{"href":3268},"references\u002Fquality-management.md",[3270],{"type":73,"value":3268},{"type":73,"value":3272}," - Quality management APIs",{"type":68,"tag":180,"props":3274,"children":3275},{},[3276,3284],{"type":68,"tag":121,"props":3277,"children":3278},{},[3279],{"type":68,"tag":129,"props":3280,"children":3282},{"href":3281},"references\u002Fworkforce-management.md",[3283],{"type":73,"value":3281},{"type":73,"value":3285}," - Workforce management APIs",{"type":68,"tag":180,"props":3287,"children":3288},{},[3289,3297],{"type":68,"tag":121,"props":3290,"children":3291},{},[3292],{"type":68,"tag":129,"props":3293,"children":3295},{"href":3294},"references\u002Fhealthcare.md",[3296],{"type":73,"value":3294},{"type":73,"value":3298}," - Healthcare APIs",{"type":68,"tag":180,"props":3300,"children":3301},{},[3302,3310],{"type":68,"tag":121,"props":3303,"children":3304},{},[3305],{"type":68,"tag":129,"props":3306,"children":3308},{"href":3307},"references\u002Fauto-dialer.md",[3309],{"type":73,"value":3307},{"type":73,"value":3311}," - Auto dialer APIs",{"type":68,"tag":180,"props":3313,"children":3314},{},[3315,3323],{"type":68,"tag":121,"props":3316,"children":3317},{},[3318],{"type":68,"tag":129,"props":3319,"children":3321},{"href":3320},"references\u002Fnumber-management.md",[3322],{"type":73,"value":3320},{"type":73,"value":3324}," - Number management APIs",{"type":68,"tag":180,"props":3326,"children":3327},{},[3328,3336],{"type":68,"tag":121,"props":3329,"children":3330},{},[3331],{"type":68,"tag":129,"props":3332,"children":3334},{"href":3333},"references\u002Frevenue-accelerator.md",[3335],{"type":73,"value":3333},{"type":73,"value":3337}," - Revenue Accelerator APIs",{"type":68,"tag":180,"props":3339,"children":3340},{},[3341,3349],{"type":68,"tag":121,"props":3342,"children":3343},{},[3344],{"type":68,"tag":129,"props":3345,"children":3347},{"href":3346},"references\u002Fvirtual-agent.md",[3348],{"type":73,"value":3346},{"type":73,"value":3350}," - Virtual Agent APIs",{"type":68,"tag":180,"props":3352,"children":3353},{},[3354,3362],{"type":68,"tag":121,"props":3355,"children":3356},{},[3357],{"type":68,"tag":129,"props":3358,"children":3360},{"href":3359},"references\u002Fcobrowse-sdk-api.md",[3361],{"type":73,"value":3359},{"type":73,"value":3363}," - Cobrowse SDK APIs",{"type":68,"tag":180,"props":3365,"children":3366},{},[3367,3375],{"type":68,"tag":121,"props":3368,"children":3369},{},[3370],{"type":68,"tag":129,"props":3371,"children":3373},{"href":3372},"references\u002Fcrc.md",[3374],{"type":73,"value":3372},{"type":73,"value":3376}," - Cloud Room Connector APIs",{"type":68,"tag":180,"props":3378,"children":3379},{},[3380,3388],{"type":68,"tag":121,"props":3381,"children":3382},{},[3383],{"type":68,"tag":129,"props":3384,"children":3386},{"href":3385},"references\u002Fclips.md",[3387],{"type":73,"value":3385},{"type":73,"value":3389}," - Clips APIs",{"type":68,"tag":180,"props":3391,"children":3392},{},[3393,3401],{"type":68,"tag":121,"props":3394,"children":3395},{},[3396],{"type":68,"tag":129,"props":3397,"children":3399},{"href":3398},"references\u002Fzoom-docs.md",[3400],{"type":73,"value":3398},{"type":73,"value":3402}," - Zoom docs and source references",{"type":68,"tag":161,"props":3404,"children":3406},{"id":3405},"sample-repositories",[3407],{"type":73,"value":3408},"Sample Repositories",{"type":68,"tag":514,"props":3410,"children":3412},{"id":3411},"official-by-zoom",[3413],{"type":73,"value":3414},"Official (by Zoom)",{"type":68,"tag":1161,"props":3416,"children":3417},{},[3418,3434],{"type":68,"tag":1165,"props":3419,"children":3420},{},[3421],{"type":68,"tag":1169,"props":3422,"children":3423},{},[3424,3429],{"type":68,"tag":1173,"props":3425,"children":3426},{},[3427],{"type":73,"value":3428},"Type",{"type":68,"tag":1173,"props":3430,"children":3431},{},[3432],{"type":73,"value":3433},"Repository",{"type":68,"tag":1184,"props":3435,"children":3436},{},[3437,3455,3473,3491,3509,3527,3545,3563],{"type":68,"tag":1169,"props":3438,"children":3439},{},[3440,3445],{"type":68,"tag":1191,"props":3441,"children":3442},{},[3443],{"type":73,"value":3444},"OAuth Sample",{"type":68,"tag":1191,"props":3446,"children":3447},{},[3448],{"type":68,"tag":129,"props":3449,"children":3452},{"href":3450,"rel":3451},"https:\u002F\u002Fgithub.com\u002Fzoom\u002Foauth-sample-app",[133],[3453],{"type":73,"value":3454},"oauth-sample-app",{"type":68,"tag":1169,"props":3456,"children":3457},{},[3458,3463],{"type":68,"tag":1191,"props":3459,"children":3460},{},[3461],{"type":73,"value":3462},"S2S OAuth Starter",{"type":68,"tag":1191,"props":3464,"children":3465},{},[3466],{"type":68,"tag":129,"props":3467,"children":3470},{"href":3468,"rel":3469},"https:\u002F\u002Fgithub.com\u002Fzoom\u002Fserver-to-server-oauth-starter-api",[133],[3471],{"type":73,"value":3472},"server-to-server-oauth-starter-api",{"type":68,"tag":1169,"props":3474,"children":3475},{},[3476,3481],{"type":68,"tag":1191,"props":3477,"children":3478},{},[3479],{"type":73,"value":3480},"User OAuth",{"type":68,"tag":1191,"props":3482,"children":3483},{},[3484],{"type":68,"tag":129,"props":3485,"children":3488},{"href":3486,"rel":3487},"https:\u002F\u002Fgithub.com\u002Fzoom\u002Fuser-level-oauth-starter",[133],[3489],{"type":73,"value":3490},"user-level-oauth-starter",{"type":68,"tag":1169,"props":3492,"children":3493},{},[3494,3499],{"type":68,"tag":1191,"props":3495,"children":3496},{},[3497],{"type":73,"value":3498},"S2S Token",{"type":68,"tag":1191,"props":3500,"children":3501},{},[3502],{"type":68,"tag":129,"props":3503,"children":3506},{"href":3504,"rel":3505},"https:\u002F\u002Fgithub.com\u002Fzoom\u002Fserver-to-server-oauth-token",[133],[3507],{"type":73,"value":3508},"server-to-server-oauth-token",{"type":68,"tag":1169,"props":3510,"children":3511},{},[3512,3517],{"type":68,"tag":1191,"props":3513,"children":3514},{},[3515],{"type":73,"value":3516},"Rivet Library",{"type":68,"tag":1191,"props":3518,"children":3519},{},[3520],{"type":68,"tag":129,"props":3521,"children":3524},{"href":3522,"rel":3523},"https:\u002F\u002Fgithub.com\u002Fzoom\u002Frivet-javascript",[133],[3525],{"type":73,"value":3526},"rivet-javascript",{"type":68,"tag":1169,"props":3528,"children":3529},{},[3530,3535],{"type":68,"tag":1191,"props":3531,"children":3532},{},[3533],{"type":73,"value":3534},"WebSocket Sample",{"type":68,"tag":1191,"props":3536,"children":3537},{},[3538],{"type":68,"tag":129,"props":3539,"children":3542},{"href":3540,"rel":3541},"https:\u002F\u002Fgithub.com\u002Fzoom\u002Fwebsocket-js-sample",[133],[3543],{"type":73,"value":3544},"websocket-js-sample",{"type":68,"tag":1169,"props":3546,"children":3547},{},[3548,3553],{"type":68,"tag":1191,"props":3549,"children":3550},{},[3551],{"type":73,"value":3552},"Webhook Sample",{"type":68,"tag":1191,"props":3554,"children":3555},{},[3556],{"type":68,"tag":129,"props":3557,"children":3560},{"href":3558,"rel":3559},"https:\u002F\u002Fgithub.com\u002Fzoom\u002Fwebhook-sample-node.js",[133],[3561],{"type":73,"value":3562},"webhook-sample-node.js",{"type":68,"tag":1169,"props":3564,"children":3565},{},[3566,3571],{"type":68,"tag":1191,"props":3567,"children":3568},{},[3569],{"type":73,"value":3570},"Python S2S",{"type":68,"tag":1191,"props":3572,"children":3573},{},[3574],{"type":68,"tag":129,"props":3575,"children":3578},{"href":3576,"rel":3577},"https:\u002F\u002Fgithub.com\u002Fzoom\u002Fserver-to-server-python-sample",[133],[3579],{"type":73,"value":3580},"server-to-server-python-sample",{"type":68,"tag":161,"props":3582,"children":3584},{"id":3583},"resources",[3585],{"type":73,"value":3586},"Resources",{"type":68,"tag":275,"props":3588,"children":3589},{},[3590,3604,3619,3634,3649,3664],{"type":68,"tag":180,"props":3591,"children":3592},{},[3593,3598,3599],{"type":68,"tag":121,"props":3594,"children":3595},{},[3596],{"type":73,"value":3597},"API Reference",{"type":73,"value":127},{"type":68,"tag":129,"props":3600,"children":3602},{"href":131,"rel":3601},[133],[3603],{"type":73,"value":131},{"type":68,"tag":180,"props":3605,"children":3606},{},[3607,3612,3613],{"type":68,"tag":121,"props":3608,"children":3609},{},[3610],{"type":73,"value":3611},"GraphQL Playground",{"type":73,"value":127},{"type":68,"tag":129,"props":3614,"children":3617},{"href":3615,"rel":3616},"https:\u002F\u002Fnws.zoom.us\u002Fgraphql\u002Fplayground",[133],[3618],{"type":73,"value":3615},{"type":68,"tag":180,"props":3620,"children":3621},{},[3622,3627,3628],{"type":68,"tag":121,"props":3623,"children":3624},{},[3625],{"type":73,"value":3626},"Postman Collection",{"type":73,"value":127},{"type":68,"tag":129,"props":3629,"children":3632},{"href":3630,"rel":3631},"https:\u002F\u002Fmarketplace.zoom.us\u002Fdocs\u002Fapi-reference\u002Fpostman",[133],[3633],{"type":73,"value":3630},{"type":68,"tag":180,"props":3635,"children":3636},{},[3637,3642,3643],{"type":68,"tag":121,"props":3638,"children":3639},{},[3640],{"type":73,"value":3641},"Developer Forum",{"type":73,"value":127},{"type":68,"tag":129,"props":3644,"children":3647},{"href":3645,"rel":3646},"https:\u002F\u002Fdevforum.zoom.us\u002F",[133],[3648],{"type":73,"value":3645},{"type":68,"tag":180,"props":3650,"children":3651},{},[3652,3657,3658],{"type":68,"tag":121,"props":3653,"children":3654},{},[3655],{"type":73,"value":3656},"Changelog",{"type":73,"value":127},{"type":68,"tag":129,"props":3659,"children":3662},{"href":3660,"rel":3661},"https:\u002F\u002Fdevelopers.zoom.us\u002Fchangelog\u002F",[133],[3663],{"type":73,"value":3660},{"type":68,"tag":180,"props":3665,"children":3666},{},[3667,3672,3673],{"type":68,"tag":121,"props":3668,"children":3669},{},[3670],{"type":73,"value":3671},"Status Page",{"type":73,"value":127},{"type":68,"tag":129,"props":3674,"children":3677},{"href":3675,"rel":3676},"https:\u002F\u002Fstatus.zoom.us\u002F",[133],[3678],{"type":73,"value":3675},{"type":68,"tag":3680,"props":3681,"children":3682},"hr",{},[],{"type":68,"tag":76,"props":3684,"children":3685},{},[3686,3691],{"type":68,"tag":121,"props":3687,"children":3688},{},[3689],{"type":73,"value":3690},"Need help?",{"type":73,"value":3692}," Start with Integrated Index section below for complete navigation.",{"type":68,"tag":3680,"props":3694,"children":3695},{},[],{"type":68,"tag":161,"props":3697,"children":3699},{"id":3698},"integrated-index",[3700],{"type":73,"value":355},{"type":68,"tag":76,"props":3702,"children":3703},{},[3704],{"type":68,"tag":3705,"props":3706,"children":3707},"em",{},[3708,3710,3716],{"type":73,"value":3709},"This section was migrated from ",{"type":68,"tag":82,"props":3711,"children":3713},{"className":3712},[],[3714],{"type":73,"value":3715},"SKILL.md",{"type":73,"value":1068},{"type":68,"tag":161,"props":3718,"children":3720},{"id":3719},"quick-start-path",[3721],{"type":73,"value":3722},"Quick Start Path",{"type":68,"tag":76,"props":3724,"children":3725},{},[3726],{"type":68,"tag":121,"props":3727,"children":3728},{},[3729],{"type":73,"value":3730},"If you're new to the Zoom REST API, follow this order:",{"type":68,"tag":176,"props":3732,"children":3733},{},[3734,3748,3781,3816,3842,3863,3884],{"type":68,"tag":180,"props":3735,"children":3736},{},[3737,3742,3744],{"type":68,"tag":121,"props":3738,"children":3739},{},[3740],{"type":73,"value":3741},"Run preflight checks first",{"type":73,"value":3743}," → ",{"type":68,"tag":129,"props":3745,"children":3746},{"href":397},[3747],{"type":73,"value":397},{"type":68,"tag":180,"props":3749,"children":3750},{},[3751,3756,3757,3761],{"type":68,"tag":121,"props":3752,"children":3753},{},[3754],{"type":73,"value":3755},"Understand the API design",{"type":73,"value":3743},{"type":68,"tag":129,"props":3758,"children":3759},{"href":188},[3760],{"type":73,"value":188},{"type":68,"tag":275,"props":3762,"children":3763},{},[3764,3776],{"type":68,"tag":180,"props":3765,"children":3766},{},[3767,3769,3774],{"type":73,"value":3768},"Base URLs, regional endpoints, ",{"type":68,"tag":82,"props":3770,"children":3772},{"className":3771},[],[3773],{"type":73,"value":199},{"type":73,"value":3775}," keyword rules",{"type":68,"tag":180,"props":3777,"children":3778},{},[3779],{"type":73,"value":3780},"Meeting ID vs UUID, double-encoding, time formats",{"type":68,"tag":180,"props":3782,"children":3783},{},[3784,3789,3790,3794],{"type":68,"tag":121,"props":3785,"children":3786},{},[3787],{"type":73,"value":3788},"Set up authentication",{"type":73,"value":3743},{"type":68,"tag":129,"props":3791,"children":3792},{"href":210},[3793],{"type":73,"value":210},{"type":68,"tag":275,"props":3795,"children":3796},{},[3797,3802,3807],{"type":68,"tag":180,"props":3798,"children":3799},{},[3800],{"type":73,"value":3801},"Server-to-Server OAuth (backend automation)",{"type":68,"tag":180,"props":3803,"children":3804},{},[3805],{"type":73,"value":3806},"User OAuth with PKCE (user-facing apps)",{"type":68,"tag":180,"props":3808,"children":3809},{},[3810,3812],{"type":73,"value":3811},"Cross-reference: ",{"type":68,"tag":129,"props":3813,"children":3814},{"href":1663},[3815],{"type":73,"value":1666},{"type":68,"tag":180,"props":3817,"children":3818},{},[3819,3824,3825,3829],{"type":68,"tag":121,"props":3820,"children":3821},{},[3822],{"type":73,"value":3823},"Create your first meeting",{"type":73,"value":3743},{"type":68,"tag":129,"props":3826,"children":3827},{"href":246},[3828],{"type":73,"value":246},{"type":68,"tag":275,"props":3830,"children":3831},{},[3832,3837],{"type":68,"tag":180,"props":3833,"children":3834},{},[3835],{"type":73,"value":3836},"Full CRUD with curl and Node.js examples",{"type":68,"tag":180,"props":3838,"children":3839},{},[3840],{"type":73,"value":3841},"Webhook event integration",{"type":68,"tag":180,"props":3843,"children":3844},{},[3845,3850,3851,3855],{"type":68,"tag":121,"props":3846,"children":3847},{},[3848],{"type":73,"value":3849},"Handle rate limits",{"type":73,"value":3743},{"type":68,"tag":129,"props":3852,"children":3853},{"href":260},[3854],{"type":73,"value":260},{"type":68,"tag":275,"props":3856,"children":3857},{},[3858],{"type":68,"tag":180,"props":3859,"children":3860},{},[3861],{"type":73,"value":3862},"Plan-based limits, retry patterns, request queuing",{"type":68,"tag":180,"props":3864,"children":3865},{},[3866,3871,3872,3876],{"type":68,"tag":121,"props":3867,"children":3868},{},[3869],{"type":73,"value":3870},"Set up webhooks",{"type":73,"value":3743},{"type":68,"tag":129,"props":3873,"children":3874},{"href":450},[3875],{"type":73,"value":450},{"type":68,"tag":275,"props":3877,"children":3878},{},[3879],{"type":68,"tag":180,"props":3880,"children":3881},{},[3882],{"type":73,"value":3883},"CRC validation, signature verification, event handling",{"type":68,"tag":180,"props":3885,"children":3886},{},[3887,3892,3893,3897],{"type":68,"tag":121,"props":3888,"children":3889},{},[3890],{"type":73,"value":3891},"Troubleshoot issues",{"type":73,"value":3743},{"type":68,"tag":129,"props":3894,"children":3895},{"href":439},[3896],{"type":73,"value":439},{"type":68,"tag":275,"props":3898,"children":3899},{},[3900],{"type":68,"tag":180,"props":3901,"children":3902},{},[3903],{"type":73,"value":3904},"Token refresh, pagination pitfalls, common gotchas",{"type":68,"tag":3680,"props":3906,"children":3907},{},[],{"type":68,"tag":161,"props":3909,"children":3911},{"id":3910},"documentation-structure",[3912],{"type":73,"value":3913},"Documentation Structure",{"type":68,"tag":521,"props":3915,"children":3918},{"className":3916,"code":3917,"language":73},[1134],"rest-api\u002F\n├── SKILL.md                              # Main skill overview + quick start\n├── SKILL.md                              # This file - navigation guide\n│\n├── concepts\u002F                             # Core architectural concepts\n│   ├── api-architecture.md              # REST design, URLs, IDs, time formats\n│   ├── authentication-flows.md          # OAuth flows (S2S, User, PKCE, Device)\n│   └── rate-limiting-strategy.md        # Limits by plan, retry, queuing\n│\n├── examples\u002F                             # Complete working code\n│   ├── meeting-lifecycle.md             # Create→Update→Start→End→Delete\n│   ├── user-management.md              # CRUD users, pagination, bulk ops\n│   ├── recording-pipeline.md           # Download recordings via webhooks\n│   ├── webhook-server.md               # Express.js CRC + signature verification\n│   └── graphql-queries.md              # GraphQL queries, mutations, pagination\n│\n├── troubleshooting\u002F                      # Problem solving\n│   ├── common-errors.md                # HTTP codes, Zoom error codes table\n│   └── common-issues.md               # Rate limits, tokens, pagination pitfalls\n│\n└── references\u002F                           # 39 domain-specific reference files\n    ├── authentication.md                # Auth methods reference\n    ├── meetings.md                      # Meeting endpoints\n    ├── users.md                         # User management endpoints\n    ├── webinars.md                      # Webinar endpoints\n    ├── recordings.md                    # Cloud recording endpoints\n    ├── reports.md                       # Reports & analytics\n    ├── accounts.md                      # Account management\n    ├── rate-limits.md                   # Rate limit details\n    ├── graphql.md                       # GraphQL API (beta)\n    ├── zoom-team-chat.md                     # Team Chat messaging\n    ├── chatbot.md                       # Chatbot integration\n    ├── phone.md                         # Zoom Phone\n    ├── rooms.md                         # Zoom Rooms\n    ├── calendar.md                      # Zoom Calendar\n    ├── mail.md                          # Zoom Mail\n    ├── ai-companion.md                  # AI features\n    ├── openapi.md                       # OpenAPI specs\n    ├── qss.md                           # Quality of Service\n    ├── contact-center.md                # Contact Center\n    ├── events.md                        # Zoom Events\n    ├── whiteboard.md                    # Whiteboard\n    ├── clips.md                         # Zoom Clips\n    ├── scheduler.md                     # Scheduler\n    ├── scim2.md                         # SCIM 2.0\n    ├── marketplace-apps.md              # App management\n    ├── zoom-video-sdk-api.md                 # Video SDK REST\n    └── ... (39 total files)\n",[3919],{"type":68,"tag":82,"props":3920,"children":3921},{"__ignoreMap":526},[3922],{"type":73,"value":3917},{"type":68,"tag":3680,"props":3924,"children":3925},{},[],{"type":68,"tag":161,"props":3927,"children":3929},{"id":3928},"by-use-case",[3930],{"type":73,"value":3931},"By Use Case",{"type":68,"tag":514,"props":3933,"children":3935},{"id":3934},"i-want-to-create-and-manage-meetings",[3936],{"type":73,"value":3937},"I want to create and manage meetings",{"type":68,"tag":176,"props":3939,"children":3940},{},[3941,3950,3959],{"type":68,"tag":180,"props":3942,"children":3943},{},[3944,3948],{"type":68,"tag":129,"props":3945,"children":3946},{"href":188},[3947],{"type":73,"value":191},{"type":73,"value":3949}," - Base URL, time formats",{"type":68,"tag":180,"props":3951,"children":3952},{},[3953,3957],{"type":68,"tag":129,"props":3954,"children":3955},{"href":246},[3956],{"type":73,"value":249},{"type":73,"value":3958}," - Full CRUD + webhook events",{"type":68,"tag":180,"props":3960,"children":3961},{},[3962,3967],{"type":68,"tag":129,"props":3963,"children":3964},{"href":286},[3965],{"type":73,"value":3966},"Meetings Reference",{"type":73,"value":3968}," - All endpoints, types, settings",{"type":68,"tag":514,"props":3970,"children":3972},{"id":3971},"i-want-to-manage-users-programmatically",[3973],{"type":73,"value":3974},"I want to manage users programmatically",{"type":68,"tag":176,"props":3976,"children":3977},{},[3978,3987],{"type":68,"tag":180,"props":3979,"children":3980},{},[3981,3985],{"type":68,"tag":129,"props":3982,"children":3983},{"href":2773},[3984],{"type":73,"value":2776},{"type":73,"value":3986}," - CRUD, pagination, bulk ops",{"type":68,"tag":180,"props":3988,"children":3989},{},[3990,3995],{"type":68,"tag":129,"props":3991,"children":3992},{"href":300},[3993],{"type":73,"value":3994},"Users Reference",{"type":73,"value":3996}," - Endpoints, user types, scopes",{"type":68,"tag":514,"props":3998,"children":4000},{"id":3999},"i-want-to-download-recordings-automatically",[4001],{"type":73,"value":4002},"I want to download recordings automatically",{"type":68,"tag":176,"props":4004,"children":4005},{},[4006,4015],{"type":68,"tag":180,"props":4007,"children":4008},{},[4009,4013],{"type":68,"tag":129,"props":4010,"children":4011},{"href":501},[4012],{"type":73,"value":504},{"type":73,"value":4014}," - Webhook-triggered downloads",{"type":68,"tag":180,"props":4016,"children":4017},{},[4018,4023],{"type":68,"tag":129,"props":4019,"children":4020},{"href":314},[4021],{"type":73,"value":4022},"Recordings Reference",{"type":73,"value":4024}," - File types, download auth",{"type":68,"tag":514,"props":4026,"children":4028},{"id":4027},"i-want-to-receive-real-time-events",[4029],{"type":73,"value":4030},"I want to receive real-time events",{"type":68,"tag":176,"props":4032,"children":4033},{},[4034,4043,4053],{"type":68,"tag":180,"props":4035,"children":4036},{},[4037,4041],{"type":68,"tag":129,"props":4038,"children":4039},{"href":450},[4040],{"type":73,"value":453},{"type":73,"value":4042}," - CRC validation, signature check",{"type":68,"tag":180,"props":4044,"children":4045},{},[4046,4047,4051],{"type":73,"value":3811},{"type":68,"tag":129,"props":4048,"children":4049},{"href":2676},[4050],{"type":73,"value":2679},{"type":73,"value":4052}," for comprehensive webhook docs",{"type":68,"tag":180,"props":4054,"children":4055},{},[4056,4057,4063],{"type":73,"value":3811},{"type":68,"tag":129,"props":4058,"children":4060},{"href":4059},"..\u002Fwebsockets\u002FSKILL.md",[4061],{"type":73,"value":4062},"zoom-websockets",{"type":73,"value":4064}," for WebSocket events",{"type":68,"tag":514,"props":4066,"children":4068},{"id":4067},"i-want-to-use-graphql-instead-of-rest",[4069],{"type":73,"value":4070},"I want to use GraphQL instead of REST",{"type":68,"tag":176,"props":4072,"children":4073},{},[4074,4083],{"type":68,"tag":180,"props":4075,"children":4076},{},[4077,4081],{"type":68,"tag":129,"props":4078,"children":4079},{"href":342},[4080],{"type":73,"value":345},{"type":73,"value":4082}," - Queries, mutations, pagination",{"type":68,"tag":180,"props":4084,"children":4085},{},[4086,4091],{"type":68,"tag":129,"props":4087,"children":4088},{"href":3090},[4089],{"type":73,"value":4090},"GraphQL Reference",{"type":73,"value":4092}," - Available entities, scopes, rate limits",{"type":68,"tag":514,"props":4094,"children":4096},{"id":4095},"i-want-to-set-up-authentication",[4097],{"type":73,"value":4098},"I want to set up authentication",{"type":68,"tag":176,"props":4100,"children":4101},{},[4102,4111],{"type":68,"tag":180,"props":4103,"children":4104},{},[4105,4109],{"type":68,"tag":129,"props":4106,"children":4107},{"href":210},[4108],{"type":73,"value":213},{"type":73,"value":4110}," - All OAuth methods",{"type":68,"tag":180,"props":4112,"children":4113},{},[4114,4115,4119],{"type":73,"value":3811},{"type":68,"tag":129,"props":4116,"children":4117},{"href":1663},[4118],{"type":73,"value":1666},{"type":73,"value":4120}," for full OAuth implementation",{"type":68,"tag":514,"props":4122,"children":4124},{"id":4123},"im-hitting-rate-limits",[4125],{"type":73,"value":4126},"I'm hitting rate limits",{"type":68,"tag":176,"props":4128,"children":4129},{},[4130,4139,4149],{"type":68,"tag":180,"props":4131,"children":4132},{},[4133,4137],{"type":68,"tag":129,"props":4134,"children":4135},{"href":260},[4136],{"type":73,"value":263},{"type":73,"value":4138}," - Limits by plan, strategies",{"type":68,"tag":180,"props":4140,"children":4141},{},[4142,4147],{"type":68,"tag":129,"props":4143,"children":4144},{"href":3055},[4145],{"type":73,"value":4146},"Rate Limits Reference",{"type":73,"value":4148}," - Detailed tables",{"type":68,"tag":180,"props":4150,"children":4151},{},[4152,4156],{"type":68,"tag":129,"props":4153,"children":4154},{"href":439},[4155],{"type":73,"value":442},{"type":73,"value":4157}," - Practical solutions",{"type":68,"tag":514,"props":4159,"children":4161},{"id":4160},"im-getting-errors",[4162],{"type":73,"value":4163},"I'm getting errors",{"type":68,"tag":176,"props":4165,"children":4166},{},[4167,4176],{"type":68,"tag":180,"props":4168,"children":4169},{},[4170,4174],{"type":68,"tag":129,"props":4171,"children":4172},{"href":428},[4173],{"type":73,"value":431},{"type":73,"value":4175}," - Error code tables",{"type":68,"tag":180,"props":4177,"children":4178},{},[4179,4183],{"type":68,"tag":129,"props":4180,"children":4181},{"href":439},[4182],{"type":73,"value":442},{"type":73,"value":4184}," - Diagnostic workflow",{"type":68,"tag":514,"props":4186,"children":4188},{"id":4187},"i-want-to-build-webinars",[4189],{"type":73,"value":4190},"I want to build webinars",{"type":68,"tag":176,"props":4192,"children":4193},{},[4194,4204],{"type":68,"tag":180,"props":4195,"children":4196},{},[4197,4202],{"type":68,"tag":129,"props":4198,"children":4199},{"href":2895},[4200],{"type":73,"value":4201},"Webinars Reference",{"type":73,"value":4203}," - Endpoints, types, registrants",{"type":68,"tag":180,"props":4205,"children":4206},{},[4207,4211],{"type":68,"tag":129,"props":4208,"children":4209},{"href":246},[4210],{"type":73,"value":249},{"type":73,"value":4212}," - Similar patterns apply",{"type":68,"tag":514,"props":4214,"children":4216},{"id":4215},"i-want-to-integrate-zoom-phone",[4217],{"type":73,"value":4218},"I want to integrate Zoom Phone",{"type":68,"tag":176,"props":4220,"children":4221},{},[4222,4232],{"type":68,"tag":180,"props":4223,"children":4224},{},[4225,4230],{"type":68,"tag":129,"props":4226,"children":4227},{"href":2981},[4228],{"type":73,"value":4229},"Phone Reference",{"type":73,"value":4231}," - Phone API endpoints",{"type":68,"tag":180,"props":4233,"children":4234},{},[4235,4239],{"type":68,"tag":129,"props":4236,"children":4237},{"href":260},[4238],{"type":73,"value":263},{"type":73,"value":4240}," - Separate Phone rate limits",{"type":68,"tag":3680,"props":4242,"children":4243},{},[],{"type":68,"tag":161,"props":4245,"children":4247},{"id":4246},"most-critical-documents",[4248],{"type":73,"value":4249},"Most Critical Documents",{"type":68,"tag":514,"props":4251,"children":4253},{"id":4252},"_1-api-architecture-foundation",[4254],{"type":73,"value":4255},"1. API Architecture (FOUNDATION)",{"type":68,"tag":76,"props":4257,"children":4258},{},[4259],{"type":68,"tag":121,"props":4260,"children":4261},{},[4262],{"type":68,"tag":129,"props":4263,"children":4264},{"href":188},[4265],{"type":73,"value":188},{"type":68,"tag":76,"props":4267,"children":4268},{},[4269],{"type":73,"value":4270},"Essential knowledge before making any API call:",{"type":68,"tag":275,"props":4272,"children":4273},{},[4274,4279,4290,4295,4300],{"type":68,"tag":180,"props":4275,"children":4276},{},[4277],{"type":73,"value":4278},"Base URLs and regional endpoints",{"type":68,"tag":180,"props":4280,"children":4281},{},[4282,4283,4288],{"type":73,"value":1151},{"type":68,"tag":82,"props":4284,"children":4286},{"className":4285},[],[4287],{"type":73,"value":199},{"type":73,"value":4289}," keyword rules (different per app type!)",{"type":68,"tag":180,"props":4291,"children":4292},{},[4293],{"type":73,"value":4294},"Meeting ID vs UUID double-encoding",{"type":68,"tag":180,"props":4296,"children":4297},{},[4298],{"type":73,"value":4299},"ISO 8601 time formats (UTC vs local)",{"type":68,"tag":180,"props":4301,"children":4302},{},[4303],{"type":73,"value":4304},"Download URL authentication",{"type":68,"tag":514,"props":4306,"children":4308},{"id":4307},"_2-rate-limiting-strategy-most-common-production-issue",[4309],{"type":73,"value":4310},"2. Rate Limiting Strategy (MOST COMMON PRODUCTION ISSUE)",{"type":68,"tag":76,"props":4312,"children":4313},{},[4314],{"type":68,"tag":121,"props":4315,"children":4316},{},[4317],{"type":68,"tag":129,"props":4318,"children":4319},{"href":260},[4320],{"type":73,"value":260},{"type":68,"tag":76,"props":4322,"children":4323},{},[4324],{"type":73,"value":4325},"Rate limits are per-account, shared across all apps:",{"type":68,"tag":275,"props":4327,"children":4328},{},[4329,4334,4339,4344],{"type":68,"tag":180,"props":4330,"children":4331},{},[4332],{"type":73,"value":4333},"Free: 4\u002Fsec Light, 2\u002Fsec Medium, 1\u002Fsec Heavy",{"type":68,"tag":180,"props":4335,"children":4336},{},[4337],{"type":73,"value":4338},"Pro: 30\u002Fsec Light, 20\u002Fsec Medium, 10\u002Fsec Heavy",{"type":68,"tag":180,"props":4340,"children":4341},{},[4342],{"type":73,"value":4343},"Business+: 80\u002Fsec Light, 60\u002Fsec Medium, 40\u002Fsec Heavy",{"type":68,"tag":180,"props":4345,"children":4346},{},[4347],{"type":73,"value":4348},"Per-user: 100 meeting create\u002Fupdate per day",{"type":68,"tag":514,"props":4350,"children":4352},{"id":4351},"_3-meeting-lifecycle-most-common-task",[4353],{"type":73,"value":4354},"3. Meeting Lifecycle (MOST COMMON TASK)",{"type":68,"tag":76,"props":4356,"children":4357},{},[4358],{"type":68,"tag":121,"props":4359,"children":4360},{},[4361],{"type":68,"tag":129,"props":4362,"children":4363},{"href":246},[4364],{"type":73,"value":246},{"type":68,"tag":76,"props":4366,"children":4367},{},[4368],{"type":73,"value":4369},"Complete CRUD with webhook integration — the pattern most developers need first.",{"type":68,"tag":3680,"props":4371,"children":4372},{},[],{"type":68,"tag":161,"props":4374,"children":4376},{"id":4375},"key-learnings",[4377],{"type":73,"value":4378},"Key Learnings",{"type":68,"tag":514,"props":4380,"children":4382},{"id":4381},"critical-discoveries",[4383],{"type":73,"value":4384},"Critical Discoveries:",{"type":68,"tag":176,"props":4386,"children":4387},{},[4388,4422,4466,4506,4535,4573,4626],{"type":68,"tag":180,"props":4389,"children":4390},{},[4391,4396,4398],{"type":68,"tag":121,"props":4392,"children":4393},{},[4394],{"type":73,"value":4395},"JWT app type is deprecated",{"type":73,"value":4397}," — use Server-to-Server OAuth",{"type":68,"tag":275,"props":4399,"children":4400},{},[4401,4413],{"type":68,"tag":180,"props":4402,"children":4403},{},[4404,4406,4411],{"type":73,"value":4405},"The JWT ",{"type":68,"tag":3705,"props":4407,"children":4408},{},[4409],{"type":73,"value":4410},"app type",{"type":73,"value":4412}," on Marketplace is deprecated, NOT JWT token signatures",{"type":68,"tag":180,"props":4414,"children":4415},{},[4416,4418],{"type":73,"value":4417},"See: ",{"type":68,"tag":129,"props":4419,"children":4420},{"href":210},[4421],{"type":73,"value":213},{"type":68,"tag":180,"props":4423,"children":4424},{},[4425,4435],{"type":68,"tag":121,"props":4426,"children":4427},{},[4428,4433],{"type":68,"tag":82,"props":4429,"children":4431},{"className":4430},[],[4432],{"type":73,"value":199},{"type":73,"value":4434}," keyword behaves differently by app type",{"type":68,"tag":275,"props":4436,"children":4437},{},[4438,4448,4458],{"type":68,"tag":180,"props":4439,"children":4440},{},[4441,4443],{"type":73,"value":4442},"User OAuth: MUST use ",{"type":68,"tag":82,"props":4444,"children":4446},{"className":4445},[],[4447],{"type":73,"value":199},{"type":68,"tag":180,"props":4449,"children":4450},{},[4451,4453],{"type":73,"value":4452},"S2S OAuth: MUST NOT use ",{"type":68,"tag":82,"props":4454,"children":4456},{"className":4455},[],[4457],{"type":73,"value":199},{"type":68,"tag":180,"props":4459,"children":4460},{},[4461,4462],{"type":73,"value":4417},{"type":68,"tag":129,"props":4463,"children":4464},{"href":188},[4465],{"type":73,"value":191},{"type":68,"tag":180,"props":4467,"children":4468},{},[4469,4474],{"type":68,"tag":121,"props":4470,"children":4471},{},[4472],{"type":73,"value":4473},"Rate limiting is nuanced (don’t assume a single global rule)",{"type":68,"tag":275,"props":4475,"children":4476},{},[4477,4482,4487,4498],{"type":68,"tag":180,"props":4478,"children":4479},{},[4480],{"type":73,"value":4481},"Limits can vary by endpoint and may be enforced at account\u002Fapp\u002Fuser levels",{"type":68,"tag":180,"props":4483,"children":4484},{},[4485],{"type":73,"value":4486},"Treat quotas as potentially shared across your account and implement backoff",{"type":68,"tag":180,"props":4488,"children":4489},{},[4490,4492,4497],{"type":73,"value":4491},"Monitor rate limit response headers (for example ",{"type":68,"tag":82,"props":4493,"children":4495},{"className":4494},[],[4496],{"type":73,"value":2242},{"type":73,"value":2395},{"type":68,"tag":180,"props":4499,"children":4500},{},[4501,4502],{"type":73,"value":4417},{"type":68,"tag":129,"props":4503,"children":4504},{"href":260},[4505],{"type":73,"value":263},{"type":68,"tag":180,"props":4507,"children":4508},{},[4509,4514],{"type":68,"tag":121,"props":4510,"children":4511},{},[4512],{"type":73,"value":4513},"100 meeting creates per user per day",{"type":68,"tag":275,"props":4515,"children":4516},{},[4517,4522,4527],{"type":68,"tag":180,"props":4518,"children":4519},{},[4520],{"type":73,"value":4521},"This is a hard per-user limit, not related to rate limits",{"type":68,"tag":180,"props":4523,"children":4524},{},[4525],{"type":73,"value":4526},"Distribute across host users for bulk operations",{"type":68,"tag":180,"props":4528,"children":4529},{},[4530,4531],{"type":73,"value":4417},{"type":68,"tag":129,"props":4532,"children":4533},{"href":260},[4534],{"type":73,"value":263},{"type":68,"tag":180,"props":4536,"children":4537},{},[4538,4543],{"type":68,"tag":121,"props":4539,"children":4540},{},[4541],{"type":73,"value":4542},"UUID double-encoding is required for certain UUIDs",{"type":68,"tag":275,"props":4544,"children":4545},{},[4546,4565],{"type":68,"tag":180,"props":4547,"children":4548},{},[4549,4551,4556,4558,4563],{"type":73,"value":4550},"UUIDs starting with ",{"type":68,"tag":82,"props":4552,"children":4554},{"className":4553},[],[4555],{"type":73,"value":1975},{"type":73,"value":4557}," or containing ",{"type":68,"tag":82,"props":4559,"children":4561},{"className":4560},[],[4562],{"type":73,"value":1983},{"type":73,"value":4564}," must be double-encoded",{"type":68,"tag":180,"props":4566,"children":4567},{},[4568,4569],{"type":73,"value":4417},{"type":68,"tag":129,"props":4570,"children":4571},{"href":188},[4572],{"type":73,"value":191},{"type":68,"tag":180,"props":4574,"children":4575},{},[4576,4595],{"type":68,"tag":121,"props":4577,"children":4578},{},[4579,4581,4587,4589],{"type":73,"value":4580},"Pagination: use ",{"type":68,"tag":82,"props":4582,"children":4584},{"className":4583},[],[4585],{"type":73,"value":4586},"next_page_token",{"type":73,"value":4588},", not ",{"type":68,"tag":82,"props":4590,"children":4592},{"className":4591},[],[4593],{"type":73,"value":4594},"page_number",{"type":68,"tag":275,"props":4596,"children":4597},{},[4598,4608,4618],{"type":68,"tag":180,"props":4599,"children":4600},{},[4601,4606],{"type":68,"tag":82,"props":4602,"children":4604},{"className":4603},[],[4605],{"type":73,"value":4594},{"type":73,"value":4607}," is legacy and being phased out",{"type":68,"tag":180,"props":4609,"children":4610},{},[4611,4616],{"type":68,"tag":82,"props":4612,"children":4614},{"className":4613},[],[4615],{"type":73,"value":4586},{"type":73,"value":4617}," is the recommended approach",{"type":68,"tag":180,"props":4619,"children":4620},{},[4621,4622],{"type":73,"value":4417},{"type":68,"tag":129,"props":4623,"children":4624},{"href":439},[4625],{"type":73,"value":442},{"type":68,"tag":180,"props":4627,"children":4628},{},[4629,4647],{"type":68,"tag":121,"props":4630,"children":4631},{},[4632,4634,4640,4641],{"type":73,"value":4633},"GraphQL is at ",{"type":68,"tag":82,"props":4635,"children":4637},{"className":4636},[],[4638],{"type":73,"value":4639},"\u002Fv3\u002Fgraphql",{"type":73,"value":4588},{"type":68,"tag":82,"props":4642,"children":4644},{"className":4643},[],[4645],{"type":73,"value":4646},"\u002Fv2\u002F",{"type":68,"tag":275,"props":4648,"children":4649},{},[4650,4655,4660],{"type":68,"tag":180,"props":4651,"children":4652},{},[4653],{"type":73,"value":4654},"Single endpoint, cursor-based pagination",{"type":68,"tag":180,"props":4656,"children":4657},{},[4658],{"type":73,"value":4659},"Rate limits apply per-field (each field = one REST equivalent)",{"type":68,"tag":180,"props":4661,"children":4662},{},[4663,4664],{"type":73,"value":4417},{"type":68,"tag":129,"props":4665,"children":4666},{"href":342},[4667],{"type":73,"value":345},{"type":68,"tag":3680,"props":4669,"children":4670},{},[],{"type":68,"tag":161,"props":4672,"children":4674},{"id":4673},"quick-reference",[4675],{"type":73,"value":4676},"Quick Reference",{"type":68,"tag":514,"props":4678,"children":4680},{"id":4679},"_401-unauthorized",[4681],{"type":73,"value":4682},"\"401 Unauthorized\"",{"type":68,"tag":76,"props":4684,"children":4685},{},[4686,4688,4692],{"type":73,"value":4687},"→ ",{"type":68,"tag":129,"props":4689,"children":4690},{"href":210},[4691],{"type":73,"value":213},{"type":73,"value":4693}," - Token expired or wrong scopes",{"type":68,"tag":514,"props":4695,"children":4697},{"id":4696},"_429-too-many-requests",[4698],{"type":73,"value":4699},"\"429 Too Many Requests\"",{"type":68,"tag":76,"props":4701,"children":4702},{},[4703,4704,4708],{"type":73,"value":4687},{"type":68,"tag":129,"props":4705,"children":4706},{"href":260},[4707],{"type":73,"value":263},{"type":73,"value":4709}," - Check headers for reset time",{"type":68,"tag":514,"props":4711,"children":4713},{"id":4712},"invalid-token-when-using-userid",[4714],{"type":73,"value":4715},"\"Invalid token\" when using userId",{"type":68,"tag":76,"props":4717,"children":4718},{},[4719,4720,4724,4726],{"type":73,"value":4687},{"type":68,"tag":129,"props":4721,"children":4722},{"href":188},[4723],{"type":73,"value":191},{"type":73,"value":4725}," - User OAuth apps must use ",{"type":68,"tag":82,"props":4727,"children":4729},{"className":4728},[],[4730],{"type":73,"value":199},{"type":68,"tag":514,"props":4732,"children":4734},{"id":4733},"how-do-i-paginate-results",[4735],{"type":73,"value":4736},"\"How do I paginate results?\"",{"type":68,"tag":76,"props":4738,"children":4739},{},[4740,4741,4745,4747],{"type":73,"value":4687},{"type":68,"tag":129,"props":4742,"children":4743},{"href":439},[4744],{"type":73,"value":442},{"type":73,"value":4746}," - Use ",{"type":68,"tag":82,"props":4748,"children":4750},{"className":4749},[],[4751],{"type":73,"value":4586},{"type":68,"tag":514,"props":4753,"children":4755},{"id":4754},"webhooks-not-arriving",[4756],{"type":73,"value":4757},"\"Webhooks not arriving\"",{"type":68,"tag":76,"props":4759,"children":4760},{},[4761,4762,4766],{"type":73,"value":4687},{"type":68,"tag":129,"props":4763,"children":4764},{"href":450},[4765],{"type":73,"value":453},{"type":73,"value":4767}," - CRC validation required",{"type":68,"tag":514,"props":4769,"children":4771},{"id":4770},"recording-download-fails",[4772],{"type":73,"value":4773},"\"Recording download fails\"",{"type":68,"tag":76,"props":4775,"children":4776},{},[4777,4778,4782],{"type":73,"value":4687},{"type":68,"tag":129,"props":4779,"children":4780},{"href":501},[4781],{"type":73,"value":504},{"type":73,"value":4783}," - Bearer auth + follow redirects",{"type":68,"tag":514,"props":4785,"children":4787},{"id":4786},"how-do-i-create-a-meeting",[4788],{"type":73,"value":4789},"\"How do I create a meeting?\"",{"type":68,"tag":76,"props":4791,"children":4792},{},[4793,4794,4798],{"type":73,"value":4687},{"type":68,"tag":129,"props":4795,"children":4796},{"href":246},[4797],{"type":73,"value":249},{"type":73,"value":4799}," - Full working examples",{"type":68,"tag":3680,"props":4801,"children":4802},{},[],{"type":68,"tag":161,"props":4804,"children":4806},{"id":4805},"related-skills",[4807],{"type":73,"value":4808},"Related Skills",{"type":68,"tag":1161,"props":4810,"children":4811},{},[4812,4828],{"type":68,"tag":1165,"props":4813,"children":4814},{},[4815],{"type":68,"tag":1169,"props":4816,"children":4817},{},[4818,4823],{"type":68,"tag":1173,"props":4819,"children":4820},{},[4821],{"type":73,"value":4822},"Skill",{"type":68,"tag":1173,"props":4824,"children":4825},{},[4826],{"type":73,"value":4827},"Use When",{"type":68,"tag":1184,"props":4829,"children":4830},{},[4831,4849,4867,4885],{"type":68,"tag":1169,"props":4832,"children":4833},{},[4834,4844],{"type":68,"tag":1191,"props":4835,"children":4836},{},[4837],{"type":68,"tag":121,"props":4838,"children":4839},{},[4840],{"type":68,"tag":129,"props":4841,"children":4842},{"href":1663},[4843],{"type":73,"value":1666},{"type":68,"tag":1191,"props":4845,"children":4846},{},[4847],{"type":73,"value":4848},"Implementing OAuth flows, token management",{"type":68,"tag":1169,"props":4850,"children":4851},{},[4852,4862],{"type":68,"tag":1191,"props":4853,"children":4854},{},[4855],{"type":68,"tag":121,"props":4856,"children":4857},{},[4858],{"type":68,"tag":129,"props":4859,"children":4860},{"href":2676},[4861],{"type":73,"value":2679},{"type":68,"tag":1191,"props":4863,"children":4864},{},[4865],{"type":73,"value":4866},"Deep webhook implementation, event catalog",{"type":68,"tag":1169,"props":4868,"children":4869},{},[4870,4880],{"type":68,"tag":1191,"props":4871,"children":4872},{},[4873],{"type":68,"tag":121,"props":4874,"children":4875},{},[4876],{"type":68,"tag":129,"props":4877,"children":4878},{"href":4059},[4879],{"type":73,"value":4062},{"type":68,"tag":1191,"props":4881,"children":4882},{},[4883],{"type":73,"value":4884},"WebSocket event streaming",{"type":68,"tag":1169,"props":4886,"children":4887},{},[4888,4900],{"type":68,"tag":1191,"props":4889,"children":4890},{},[4891],{"type":68,"tag":121,"props":4892,"children":4893},{},[4894],{"type":68,"tag":129,"props":4895,"children":4897},{"href":4896},"..\u002Fgeneral\u002FSKILL.md",[4898],{"type":73,"value":4899},"zoom-general",{"type":68,"tag":1191,"props":4901,"children":4902},{},[4903],{"type":73,"value":4904},"Cross-product patterns, community repos",{"type":68,"tag":3680,"props":4906,"children":4907},{},[],{"type":68,"tag":76,"props":4909,"children":4910},{},[4911],{"type":68,"tag":121,"props":4912,"children":4913},{},[4914],{"type":73,"value":4915},"Based on Zoom REST API v2 (current) and GraphQL v3 (beta)",{"type":68,"tag":161,"props":4917,"children":4919},{"id":4918},"environment-variables",[4920],{"type":73,"value":4921},"Environment Variables",{"type":68,"tag":275,"props":4923,"children":4924},{},[4925],{"type":68,"tag":180,"props":4926,"children":4927},{},[4928,4930,4935,4937,4943],{"type":73,"value":4929},"See ",{"type":68,"tag":129,"props":4931,"children":4933},{"href":4932},"references\u002Fenvironment-variables.md",[4934],{"type":73,"value":4932},{"type":73,"value":4936}," for standardized ",{"type":68,"tag":82,"props":4938,"children":4940},{"className":4939},[],[4941],{"type":73,"value":4942},".env",{"type":73,"value":4944}," keys and where to find each value.",{"type":68,"tag":4946,"props":4947,"children":4948},"style",{},[4949],{"type":73,"value":4950},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4952,"total":5136},[4953,4973,4987,4999,5018,5031,5052,5072,5086,5099,5107,5120],{"slug":4954,"name":4954,"fn":4955,"description":4956,"org":4957,"tags":4958,"stars":4970,"repoUrl":4971,"updatedAt":4972},"algorithmic-art","create algorithmic art with p5.js","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4959,4962,4965,4968],{"name":4960,"slug":4961,"type":16},"Creative","creative",{"name":4963,"slug":4964,"type":16},"Design","design",{"name":4966,"slug":4967,"type":16},"Generative Art","generative-art",{"name":4969,"slug":1697,"type":16},"JavaScript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":4974,"name":4974,"fn":4975,"description":4976,"org":4977,"tags":4978,"stars":4970,"repoUrl":4971,"updatedAt":4986},"brand-guidelines","apply Anthropic brand colors and typography","Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4979,4982,4983],{"name":4980,"slug":4981,"type":16},"Branding","branding",{"name":4963,"slug":4964,"type":16},{"name":4984,"slug":4985,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":4988,"name":4988,"fn":4989,"description":4990,"org":4991,"tags":4992,"stars":4970,"repoUrl":4971,"updatedAt":4998},"canvas-design","create posters and visual art as PNG or PDF","Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4993,4994,4995],{"name":4960,"slug":4961,"type":16},{"name":4963,"slug":4964,"type":16},{"name":4996,"slug":4997,"type":16},"PDF","pdf","2026-04-06T17:56:03.794732",{"slug":5000,"name":5000,"fn":5001,"description":5002,"org":5003,"tags":5004,"stars":4970,"repoUrl":4971,"updatedAt":5017},"claude-api","build apps with the Claude API","Reference for the Claude API \u002F Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude\u002FAnthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing\u002Fmodel choice\u002Flimits\u002Fcaching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent\u002FMCP\u002Ftool-definition\u002Fmulti-agent\u002FRAG\u002FLLM-judge\u002Fcomputer-use; generate\u002Fsummarize\u002Fextract\u002Fclassify\u002Frewrite\u002Fconverse over NL; debugging refusals\u002Fcutoffs\u002Fstreaming\u002Ftool-calls\u002Ftokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI\u002FGPT\u002FGemini\u002FLlama\u002FMistral\u002FCohere\u002FOllama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5005,5008,5009,5012,5014],{"name":5006,"slug":5007,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":5010,"slug":5011,"type":16},"Anthropic SDK","anthropic-sdk",{"name":5013,"slug":5000,"type":16},"Claude API",{"name":5015,"slug":5016,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":5019,"name":5019,"fn":5020,"description":5021,"org":5022,"tags":5023,"stars":4970,"repoUrl":4971,"updatedAt":5030},"doc-coauthoring","co-author documentation and technical specs","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5024,5027],{"name":5025,"slug":5026,"type":16},"Documentation","documentation",{"name":5028,"slug":5029,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":5032,"name":5032,"fn":5033,"description":5034,"org":5035,"tags":5036,"stars":4970,"repoUrl":4971,"updatedAt":5051},"docx","create and edit Word documents","Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5037,5040,5042,5045,5048],{"name":5038,"slug":5039,"type":16},"Documents","documents",{"name":5041,"slug":5032,"type":16},"DOCX",{"name":5043,"slug":5044,"type":16},"Office","office",{"name":5046,"slug":5047,"type":16},"Templates","templates",{"name":5049,"slug":5050,"type":16},"Word","word","2026-07-18T05:16:23.136271",{"slug":5053,"name":5053,"fn":5054,"description":5055,"org":5056,"tags":5057,"stars":4970,"repoUrl":4971,"updatedAt":5071},"frontend-design","design production-grade frontend interfaces","Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5058,5059,5062,5065,5068],{"name":4963,"slug":4964,"type":16},{"name":5060,"slug":5061,"type":16},"Frontend","frontend",{"name":5063,"slug":5064,"type":16},"React","react",{"name":5066,"slug":5067,"type":16},"Tailwind CSS","tailwind-css",{"name":5069,"slug":5070,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":5073,"name":5073,"fn":5074,"description":5075,"org":5076,"tags":5077,"stars":4970,"repoUrl":4971,"updatedAt":5085},"internal-comms","write internal company communications","A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5078,5081,5082],{"name":5079,"slug":5080,"type":16},"Communications","communications",{"name":5046,"slug":5047,"type":16},{"name":5083,"slug":5084,"type":16},"Writing","writing","2026-04-06T17:56:20.695522",{"slug":5087,"name":5087,"fn":5088,"description":5089,"org":5090,"tags":5091,"stars":4970,"repoUrl":4971,"updatedAt":5098},"mcp-builder","build MCP servers","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5092,5093,5094,5095],{"name":5006,"slug":5007,"type":16},{"name":21,"slug":22,"type":16},{"name":5015,"slug":5016,"type":16},{"name":5096,"slug":5097,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":4997,"name":4997,"fn":5100,"description":5101,"org":5102,"tags":5103,"stars":4970,"repoUrl":4971,"updatedAt":5106},"read edit and manipulate PDF files","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5104,5105],{"name":5038,"slug":5039,"type":16},{"name":4996,"slug":4997,"type":16},"2026-04-06T17:56:02.483316",{"slug":5108,"name":5108,"fn":5109,"description":5110,"org":5111,"tags":5112,"stars":4970,"repoUrl":4971,"updatedAt":5119},"pptx","create and edit PowerPoint presentations","Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5113,5116],{"name":5114,"slug":5115,"type":16},"PowerPoint","powerpoint",{"name":5117,"slug":5118,"type":16},"Presentations","presentations","2026-07-18T05:16:24.1471",{"slug":5121,"name":5121,"fn":5122,"description":5123,"org":5124,"tags":5125,"stars":4970,"repoUrl":4971,"updatedAt":5135},"skill-creator","create and optimize agent skills","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5126,5127,5128,5131,5134],{"name":5006,"slug":5007,"type":16},{"name":5025,"slug":5026,"type":16},{"name":5129,"slug":5130,"type":16},"Evals","evals",{"name":5132,"slug":5133,"type":16},"Performance","performance",{"name":5028,"slug":5029,"type":16},"2026-04-19T06:45:40.804",490,{"items":5138,"total":5245},[5139,5153,5169,5185,5201,5220,5232],{"slug":5140,"name":5140,"fn":5141,"description":5142,"org":5143,"tags":5144,"stars":26,"repoUrl":27,"updatedAt":5152},"accessibility-review","run WCAG accessibility audits","Run a WCAG 2.1 AA accessibility audit on a design or page. Trigger with \"audit accessibility\", \"check a11y\", \"is this accessible?\", or when reviewing a design for color contrast, keyboard navigation, touch target size, or screen reader behavior before handoff.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5145,5148,5149],{"name":5146,"slug":5147,"type":16},"Accessibility","accessibility",{"name":4963,"slug":4964,"type":16},{"name":5150,"slug":5151,"type":16},"WCAG","wcag","2026-04-06T17:58:05.682394",{"slug":5154,"name":5154,"fn":5155,"description":5156,"org":5157,"tags":5158,"stars":26,"repoUrl":27,"updatedAt":5168},"account-research","research accounts for sales intel","Research a company or person and get actionable sales intel. Works standalone with web search, supercharged when you connect enrichment tools or your CRM. Trigger with \"research [company]\", \"look up [person]\", \"intel on [prospect]\", \"who is [name] at [company]\", or \"tell me about [company]\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5159,5162,5165],{"name":5160,"slug":5161,"type":16},"CRM","crm",{"name":5163,"slug":5164,"type":16},"Research","research",{"name":5166,"slug":5167,"type":16},"Sales","sales","2026-04-06T17:56:41.410418",{"slug":5170,"name":5170,"fn":5171,"description":5172,"org":5173,"tags":5174,"stars":26,"repoUrl":27,"updatedAt":5184},"analyze","answer data questions and run analyses","Answer data questions -- from quick lookups to full analyses. Use when looking up a single metric, investigating what's driving a trend or drop, comparing segments over time, or preparing a formal data report for stakeholders.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5175,5178,5181],{"name":5176,"slug":5177,"type":16},"Analytics","analytics",{"name":5179,"slug":5180,"type":16},"Data Analysis","data-analysis",{"name":5182,"slug":5183,"type":16},"SQL","sql","2026-04-06T17:57:21.593647",{"slug":5186,"name":5186,"fn":5187,"description":5188,"org":5189,"tags":5190,"stars":26,"repoUrl":27,"updatedAt":5200},"architecture","create and evaluate architecture decision records","Create or evaluate an architecture decision record (ADR). Use when choosing between technologies (e.g., Kafka vs SQS), documenting a design decision with trade-offs and consequences, reviewing a system design proposal, or designing a new component from requirements and constraints.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5191,5194,5196,5197],{"name":5192,"slug":5193,"type":16},"ADR","adr",{"name":5195,"slug":5186,"type":16},"Architecture",{"name":5025,"slug":5026,"type":16},{"name":5198,"slug":5199,"type":16},"Engineering","engineering","2026-04-06T17:57:49.26444",{"slug":5202,"name":5202,"fn":5203,"description":5204,"org":5205,"tags":5206,"stars":26,"repoUrl":27,"updatedAt":5219},"audit-support","support SOX 404 control testing","Support SOX 404 compliance with control testing methodology, sample selection, and documentation standards. Use when generating testing workpapers, selecting audit samples, classifying control deficiencies, or preparing for internal or external audits.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5207,5210,5213,5216],{"name":5208,"slug":5209,"type":16},"Audit","audit",{"name":5211,"slug":5212,"type":16},"Finance","finance",{"name":5214,"slug":5215,"type":16},"Regulatory Compliance","regulatory-compliance",{"name":5217,"slug":5218,"type":16},"SOX","sox","2026-04-06T17:57:36.714815",{"slug":5221,"name":5221,"fn":5222,"description":5223,"org":5224,"tags":5225,"stars":26,"repoUrl":27,"updatedAt":5231},"brand-review","review content against brand voice","Review content against your brand voice, style guide, and messaging pillars, flagging deviations by severity with specific before\u002Fafter fixes. Use when checking a draft before it ships, when auditing copy for voice consistency and terminology, or when screening for unsubstantiated claims, missing disclaimers, and other legal flags.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5226,5227,5230],{"name":4980,"slug":4981,"type":16},{"name":5228,"slug":5229,"type":16},"Marketing","marketing",{"name":5083,"slug":5084,"type":16},"2026-04-06T17:58:19.548331",{"slug":5233,"name":5233,"fn":5234,"description":5235,"org":5236,"tags":5237,"stars":26,"repoUrl":27,"updatedAt":5244},"brand-voice-enforcement","enforce brand voice in content","This skill applies brand guidelines to content creation. It should be used when the user asks to \"write an email\", \"draft a proposal\", \"create a pitch deck\", \"write a LinkedIn post\", \"draft a presentation\", \"write a Slack message\", \"draft sales content\", or any content creation request where brand voice should be applied. Also triggers on \"on-brand\", \"brand voice\", \"enforce voice\", \"apply brand guidelines\", \"brand-aligned content\", \"write in our voice\", \"use our brand tone\", \"make this sound like us\", \"rewrite this in our tone\", or \"this doesn't sound on-brand\". Not for generating guidelines from scratch (use guideline-generation) or discovering brand materials (use discover-brand).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5238,5239,5240,5243],{"name":4980,"slug":4981,"type":16},{"name":5079,"slug":5080,"type":16},{"name":5241,"slug":5242,"type":16},"Content Creation","content-creation",{"name":5083,"slug":5084,"type":16},"2026-04-06T18:00:23.528956",200]