Power custom video experiences with Zoom's core technology
65
stars
140
commits
JavaScript
primary language
Aug 10, 2026
updated
⚠️ Action Required:
We recommend that you upgrade to 2.3.15 or above if you use WebRTC video to prevent issues with future Chrome versions.
Use of this SDK is subject to our Terms of Use.
The Zoom Video SDK enables you to build custom video experiences with Zoom's core technology through a highly optimized WebAssembly module.
In your frontend project, install the Video SDK:
$ npm install @zoom/videosdk --save
Optionally, enable the AI agent skill so Cursor, Claude Code, or Codex can help you build with the SDK:
$ npx @zoom/videosdk install-skill

The Video SDK provides video, audio, screen sharing, chat, data streams, and more, as a service. You can build with all of these features, or pick and choose. The Video SDK also comes with a full set of server side APIs and Webhooks.
Use UTF-8 encoding
Add
<meta charset="UTF-8" />to your web app's entry point (index.html) to ensure the browser uses UTF-8. If not set, the browser might choose a different encoding, causing text or data issues.
In the component file where you want to use the Video SDK, import ZoomVideo and create the client.
import ZoomVideo from '@zoom/videosdk'
const client = ZoomVideo.createClient()
Then init the SDK and declare the stream which we will define later:
client.init('en-US', 'Global', { patchJsMedia: true })
let stream
Now we will start or join the session. Here are the required parameters for the client.join() function.
| Parameter | Parameter Description |
|---|---|
| topic | Required, a session name of your choice or the name of the session you are joining. |
| token | Required, your Video SDK JWT. |
| userName | Required, a name for the participant. |
| password | Optional, a session passcode of your choice or the passcode of the session you are joining. |
Then start or join the session and define the stream, which will be used for core features.
client.join(topic, token, userName, password).then(() => {
stream = client.getMediaStream()
}).catch((error) => {
console.log(error)
})
Now that we are in a session, we can start using core features like stream.startVideo().
For the full list of features and event listeners, as well as additional guides, see our Video SDK docs.
This package ships an agent skill that teaches AI coding assistants how to build with the Video SDK (API usage, framework integration, and troubleshooting). Install it into your project so Cursor, Claude Code, or Codex can use it:
npx @zoom/videosdk install-skill
By default this auto-detects your tool and copies the skill into the matching directory (.cursor/skills/, .claude/skills/, or .agents/skills/). You can also choose explicitly:
npx @zoom/videosdk install-skill --target cursor # or claude | codex | all
npx @zoom/videosdk install-skill --global # install for all your projects
Restart your editor after installing so it picks up the new skill.
"@zoom/videosdk": "1.11.0-zfg",
zmClient.init('en-US', 'Global');
zmClient.init('en-US', `https://source.zoomgov.com/videosdk/1.11.0/lib`, {
webEndpoint: "www.zoomgov.com",
});
If you're looking for help, try Developer Support or our Developer Forum. Priority support is also available with Premier Developer Support plans.
JavaScript
100.0%
Power custom video experiences with Zoom's core technology
65
stars
140
commits
JavaScript
primary language
Aug 10, 2026
updated
⚠️ Action Required:
We recommend that you upgrade to 2.3.15 or above if you use WebRTC video to prevent issues with future Chrome versions.
Use of this SDK is subject to our Terms of Use.
The Zoom Video SDK enables you to build custom video experiences with Zoom's core technology through a highly optimized WebAssembly module.
In your frontend project, install the Video SDK:
$ npm install @zoom/videosdk --save
Optionally, enable the AI agent skill so Cursor, Claude Code, or Codex can help you build with the SDK:
$ npx @zoom/videosdk install-skill

The Video SDK provides video, audio, screen sharing, chat, data streams, and more, as a service. You can build with all of these features, or pick and choose. The Video SDK also comes with a full set of server side APIs and Webhooks.
Use UTF-8 encoding
Add
<meta charset="UTF-8" />to your web app's entry point (index.html) to ensure the browser uses UTF-8. If not set, the browser might choose a different encoding, causing text or data issues.
In the component file where you want to use the Video SDK, import ZoomVideo and create the client.
import ZoomVideo from '@zoom/videosdk'
const client = ZoomVideo.createClient()
Then init the SDK and declare the stream which we will define later:
client.init('en-US', 'Global', { patchJsMedia: true })
let stream
Now we will start or join the session. Here are the required parameters for the client.join() function.
| Parameter | Parameter Description |
|---|---|
| topic | Required, a session name of your choice or the name of the session you are joining. |
| token | Required, your Video SDK JWT. |
| userName | Required, a name for the participant. |
| password | Optional, a session passcode of your choice or the passcode of the session you are joining. |
Then start or join the session and define the stream, which will be used for core features.
client.join(topic, token, userName, password).then(() => {
stream = client.getMediaStream()
}).catch((error) => {
console.log(error)
})
Now that we are in a session, we can start using core features like stream.startVideo().
For the full list of features and event listeners, as well as additional guides, see our Video SDK docs.
This package ships an agent skill that teaches AI coding assistants how to build with the Video SDK (API usage, framework integration, and troubleshooting). Install it into your project so Cursor, Claude Code, or Codex can use it:
npx @zoom/videosdk install-skill
By default this auto-detects your tool and copies the skill into the matching directory (.cursor/skills/, .claude/skills/, or .agents/skills/). You can also choose explicitly:
npx @zoom/videosdk install-skill --target cursor # or claude | codex | all
npx @zoom/videosdk install-skill --global # install for all your projects
Restart your editor after installing so it picks up the new skill.
"@zoom/videosdk": "1.11.0-zfg",
zmClient.init('en-US', 'Global');
zmClient.init('en-US', `https://source.zoomgov.com/videosdk/1.11.0/lib`, {
webEndpoint: "www.zoomgov.com",
});
If you're looking for help, try Developer Support or our Developer Forum. Priority support is also available with Premier Developer Support plans.
JavaScript
100.0%