# zoom-apps-sdk
> Zoom Apps SDK for building apps that run inside the Zoom client. JavaScript SDK for
in-meeting experiences and Layers API for immersive apps. Use when you want your app
to appear within Zoom meetings or the Zoom client.
- Author: Tan Chun Siong
- Repository: tanchunsiong/agent-skills
- Version: 20260206220912
- Stars: 1
- Forks: 0
- Last Updated: 2026-02-07
- Source: https://github.com/tanchunsiong/agent-skills
- Web: https://mule.run/skillshub/@@tanchunsiong/agent-skills~zoom-apps-sdk:20260206220912
---
---
name: zoom-apps-sdk
description: |
Zoom Apps SDK for building apps that run inside the Zoom client. JavaScript SDK for
in-meeting experiences and Layers API for immersive apps. Use when you want your app
to appear within Zoom meetings or the Zoom client.
---
# Zoom Apps SDK
Build apps that run inside the Zoom client.
## Prerequisites
- Zoom app configured as "Zoom App" type in Marketplace
- OAuth credentials with Zoom Apps scopes
- Web application to serve your Zoom App
- **Your hosted URL whitelisted in Marketplace** (see below)
> **Need help with OAuth?** See the **[zoom-oauth](/zoom-oauth/SKILL.md)** skill for authentication flows.
## Quick Start
```html
```
## Critical: Global Variable Conflict
The SDK script defines `window.zoomSdk` globally. **Do NOT redeclare it:**
```javascript
// WRONG - causes SyntaxError
let zoomSdk = null;
zoomSdk = window.zoomSdk;
// CORRECT - use different variable name
let sdk = null;
sdk = window.zoomSdk;
```
## Browser Preview / Demo Mode
The SDK only functions inside the Zoom client. When accessed in a regular browser:
- `window.zoomSdk` exists but `sdk.config()` throws an error
- Always implement try/catch with fallback UI
- Add timeout (3 seconds) in case SDK hangs
## URL Whitelisting (Required)
**Your app will NOT load in Zoom unless the URL is whitelisted.**
1. Go to [Zoom Marketplace](https://marketplace.zoom.us/)
2. Open your app > **Feature** tab
3. Under **Zoom App**, find **Add Allow List**
4. Add your domain (e.g., `https://www.aiweshipcode.com`)
Without this, the Zoom client will refuse to load your app's URL.
## OAuth Scopes (Required)
**Capabilities require matching OAuth scopes enabled in Marketplace.**
| Capability | Required Scope |
|------------|----------------|
| `getMeetingContext` | `zoomapp:inmeeting` |
| `getUserContext` | `zoomapp:inmeeting` |
| `shareApp` | `zoomapp:inmeeting` |
| `openUrl` | `zoomapp:inmeeting` |
| `sendAppInvitation` | `zoomapp:inmeeting` |
| `runRenderingContext` | `zoomapp:inmeeting` |
**To add scopes:**
1. Marketplace > Your App > **Scopes** tab
2. Add required scopes for your capabilities
3. Users must re-authorize if you add new scopes
Missing scopes = capability fails silently or throws error.
## Key Concepts
| Concept | Description |
|---------|-------------|
| Zoom App | Web app running in Zoom's embedded browser |
| Capabilities | Permissions your app requests |
| Context | Meeting/user information |
| Layers API | Immersive visual experiences |
## Common APIs
| API | Description |
|-----|-------------|
| `config()` | Initialize SDK, request capabilities |
| `getMeetingContext()` | Get meeting info |
| `shareApp()` | Share app with participants |
| `openUrl()` | Open URL in browser |
| `runRenderingContext()` | Start Layers API |
## Detailed References
- **[references/apis.md](references/apis.md)** - Complete API reference
- **[references/events.md](references/events.md)** - SDK events
- **[references/layers-api.md](references/layers-api.md)** - Immersive experiences
- **[references/oauth.md](references/oauth.md)** - Zoom Apps OAuth flow
- **[references/zmail-sdk.md](references/zmail-sdk.md)** - ZMail integration for email
## Sample Repositories
### Official (by Zoom)
| Type | Repository | Stars |
|------|------------|-------|
| Hello World | [zoomapps-sample-js](https://github.com/zoom/zoomapps-sample-js) | 66 |
| Advanced React | [zoomapps-advancedsample-react](https://github.com/zoom/zoomapps-advancedsample-react) | 55 |
| SDK NPM | [appssdk](https://github.com/zoom/appssdk) | 49 |
| Collaborate Mode | [zoomapps-texteditor-vuejs](https://github.com/zoom/zoomapps-texteditor-vuejs) | 16 |
| Layers API | [zoomapps-customlayout-js](https://github.com/zoom/zoomapps-customlayout-js) | 16 |
| Serverless | [zoomapps-serverless-vuejs](https://github.com/zoom/zoomapps-serverless-vuejs) | 6 |
| Camera Mode | [zoomapps-cameramode-vuejs](https://github.com/zoom/zoomapps-cameramode-vuejs) | 6 |
| Workshop | [zoomapps-workshop-sample](https://github.com/zoom/zoomapps-workshop-sample) | 6 |
| RTMS Assistant | [arlo-meeting-assistant](https://github.com/zoom/arlo-meeting-assistant) | 2 |
| Recall.ai Bot | [meetingbot-recall-sample](https://github.com/zoom/meetingbot-recall-sample) | 2 |
### Community
| Type | Repository | Description |
|------|------------|-------------|
| Library | [harvard-edtech/zaccl](https://github.com/harvard-edtech/zaccl) | Zoom App Complete Connection Library |
| AI Demo | [inworld-ai/zoom-demeanor-evaluator-node](https://github.com/inworld-ai/zoom-demeanor-evaluator-node) | RTMS + Inworld AI |
**Full list**: See [zoom-general/references/community-repos.md](../zoom-general/references/community-repos.md)
## Resources
- **Official docs**: https://developers.zoom.us/docs/zoom-apps/
- **SDK reference**: https://appssdk.zoom.us/
- **Developer forum**: https://devforum.zoom.us/