zoom/videosdk-web

Power custom video experiences with Zoom's core technology

65

stars

140

commits

JavaScript

primary language

Aug 10, 2026

updated

www.npmjs.com/package/@zoom/videosdk
npm-package
Browse cluster: Zoom Video SDK Web Samples

README

Zoom Video SDK for Web

⚠️ 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.

Installation

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

Usage

Zoom Video SDK

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.

ParameterParameter Description
topicRequired, a session name of your choice or the name of the session you are joining.
tokenRequired, your Video SDK JWT.
userNameRequired, a name for the participant.
passwordOptional, 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().

Core Features:

For the full list of features and event listeners, as well as additional guides, see our Video SDK docs.

AI agent skill

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.

Sample Apps

Use ZFG(Zoom For Government). You need apply new sdk key for ZFG.

option1 change package.json and use zfg specific version

"@zoom/videosdk": "1.11.0-zfg",
zmClient.init('en-US', 'Global');

option2 change dev.conf and use ZFG init option webEndpoint

zmClient.init('en-US', `https://source.zoomgov.com/videosdk/1.11.0/lib`, {
   webEndpoint: "www.zoomgov.com",
});

Need help?

If you're looking for help, try Developer Support or our Developer Forum. Priority support is also available with Premier Developer Support plans.

Open Source Software attribution

Contributors

mayk-zoom

54 commits

endazoom

48 commits

ylkjick532428

15 commits

tommygaessler

11 commits

zoom/videosdk-web

Power custom video experiences with Zoom's core technology

65

stars

140

commits

JavaScript

primary language

Aug 10, 2026

updated

www.npmjs.com/package/@zoom/videosdk
npm-package
Browse cluster: Zoom Video SDK Web Samples

README

Zoom Video SDK for Web

⚠️ 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.

Installation

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

Usage

Zoom Video SDK

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.

ParameterParameter Description
topicRequired, a session name of your choice or the name of the session you are joining.
tokenRequired, your Video SDK JWT.
userNameRequired, a name for the participant.
passwordOptional, 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().

Core Features:

For the full list of features and event listeners, as well as additional guides, see our Video SDK docs.

AI agent skill

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.

Sample Apps

Use ZFG(Zoom For Government). You need apply new sdk key for ZFG.

option1 change package.json and use zfg specific version

"@zoom/videosdk": "1.11.0-zfg",
zmClient.init('en-US', 'Global');

option2 change dev.conf and use ZFG init option webEndpoint

zmClient.init('en-US', `https://source.zoomgov.com/videosdk/1.11.0/lib`, {
   webEndpoint: "www.zoomgov.com",
});

Need help?

If you're looking for help, try Developer Support or our Developer Forum. Priority support is also available with Premier Developer Support plans.

Open Source Software attribution

Contributors

mayk-zoom

54 commits

endazoom

48 commits

ylkjick532428

15 commits

tommygaessler

11 commits

Languages

JavaScript

100.0%