DocumentationBlogSupport
Log inSign up
Log inSign up
BlogSupport
Build
Getting StartedPlatform Introduction
Embedded Apps
What's NewOverviewDeveloper GuideSidebar API Quick StartSubmission Checklist for Embedded Apps
Design Guidelines
MessagingMeetingsDevicesSidebarSidebar on Mobile
API Reference
BotsButtons and CardsIntegrationsBYODSService AppsService App GuestsService Apps G2GGuest IssuerWidgetsWebex ConnectLogin with WebexInstant ConnectInstant Connect Meeting LinksDeveloper SandboxBeta ProgramSubmit Your AppSupport PolicyFAQs
APIs
API Behavior ChangesPartners API GuideXML API DeprecationAccess the APIREST API BasicsCompliance
Webex APIs
Reference
Data Sources
Admin
OverviewAdmin APIsHybrid ServicesAuthentication
Guides
Hybrid ServicesWebhooksReal-time File DLP BasicsProvisioning APIsBackground ImagesAudit Events Error Reference
Reference
Admin Audit EventsAuthorizationsEventsGroupsHistorical AnalyticsHybrid ClustersHybrid ConnectorsLicensesMeeting QualitiesOrganization ContactsOrganizationsPartner ManagementPartner Reports/TemplatesPartner TagsPeopleRecording ReportRecordingsReport TemplatesReportsResource Group MembershipsResource GroupsRolesSecurity Audit EventsSession TypesSettingsSpace ClassificationsTracking CodesWorkspace LocationsWorkspace Metrics
Webex Calling Beta
Overview
Guides
Integrations and AuthorizationMetadata and Samples
Webex Calling
OverviewSDKs and ToolsWhat's New
Guides
Integrations and AuthorizationProvisioning APIsMetadata and SamplesBackground Images
Reference
Call ControlsCall RoutingCall Settings For MeCalling Service SettingsClient Call SettingsConference ControlsConverged RecordingsDECT Devices SettingsDevice Call SettingsDevicesEmergency Services SettingsFeatures: Announcement PlaylistFeatures: Announcement RepositoryFeatures: Auto AttendantFeatures: Call ParkFeatures: Call PickupFeatures: Call QueueFeatures: Call RecordingFeatures: Customer Experience EssentialsFeatures: Hunt GroupFeatures: Operating ModesFeatures: Paging GroupFeatures: Single Number ReachLocation Call SettingsLocation Call Settings: Call HandlingLocation Call Settings: SchedulesLocation Call Settings: VoicemailLocationsNumbersPSTNPartner Reports/TemplatesPeopleRecording ReportReportsReports: Detailed Call HistorySend Activation EmailUser Call SettingsVirtual Line Call SettingsWorkspace Call SettingsWorkspaces
Webex for Broadworks
Overview
Guides
Integrations and AuthorizationDeveloper's Guide
Reference
BroadWorks Billing ReportsBroadWorks EnterprisesBroadWorks SubscribersBroadWorks Workspaces
Webex for Wholesale
Overview
Guides
Developer's Guide
Reference
Wholesale Billing ReportsWholesale Provisioning
Webex for UCM
Guides
Integrations and Authorization
Reference
UCM Profile
Contact Center
Overview
Reference
Data Sources
Customer Journey Data
Overview
Guides
Getting StartedFAQ
Devices
Overview
Guides
Devices
Reference
Device Call SettingsDevice ConfigurationsDevicesWorkspace LocationsWorkspace MetricsWorkspace PersonalizationWorkspacesxAPI
Directory Services
Reference
Domain ManagementIdentity Organization
Meetings
Overview
Guides
Integrations and AuthorizationWebhooksWebinar GuideMeeting Resource Guide
Reference
Meeting ChatsMeeting Closed CaptionsMeeting InviteesMeeting MessagesMeeting ParticipantsMeeting PollsMeeting PreferencesMeeting Q and AMeeting QualitiesMeeting TranscriptsMeetingsMeetings Summary ReportPeopleRecording ReportRecordingsSession TypesTracking CodesVideo MeshWebhooks
Messaging
Overview
Guides
BotsIntegrations and AuthorizationWebhooksButtons and Cards
Reference
Attachment ActionsEventsMembershipsMessagesPeopleRoom TabsRoomsTeam MembershipsTeamsWebhooks
SCIM 2
Overview
Reference
SCIM 2 BulkSCIM 2 GroupsSCIM 2 Users
Workspace Integrations
OverviewTechnical DetailsControl Hub Features
Webex Status API
Full API Reference
Admin Audit EventsAttachment ActionsAuthorizationsBroadWorks Billing ReportsBroadWorks EnterprisesBroadWorks SubscribersBroadWorks WorkspacesCall ControlsCall RoutingCall Settings For MeCalling Service SettingsClient Call SettingsConference ControlsConverged RecordingsDECT Devices SettingsData SourcesDevice Call SettingsDevice ConfigurationsDevicesDomain ManagementEmergency Services SettingsEventsFeatures: Announcement PlaylistFeatures: Announcement RepositoryFeatures: Auto AttendantFeatures: Call ParkFeatures: Call PickupFeatures: Call QueueFeatures: Call RecordingFeatures: Customer Experience EssentialsFeatures: Hunt GroupFeatures: Operating ModesFeatures: Paging GroupFeatures: Single Number ReachGroupsGuests ManagementHistorical AnalyticsHybrid ClustersHybrid ConnectorsIdentity OrganizationIssuesLicensesLocation Call SettingsLocation Call Settings: Call HandlingLocation Call Settings: SchedulesLocation Call Settings: VoicemailLocationsMeeting ChatsMeeting Closed CaptionsMeeting InviteesMeeting MessagesMeeting ParticipantsMeeting PollsMeeting PreferencesMeeting Q and AMeeting QualitiesMeeting TranscriptsMeetingsMeetings Summary ReportMembershipsMessagesNumbersOrganization ContactsOrganizationsPSTNPartner ManagementPartner Reports/TemplatesPartner TagsPeopleRecording ReportRecordingsReport TemplatesReportsReports: Detailed Call HistoryResource Group MembershipsResource GroupsRolesRoom TabsRoomsSCIM 2 BulkSCIM 2 GroupsSCIM 2 UsersSecurity Audit EventsSend Activation EmailSession TypesSettingsSiteSpace ClassificationsTeam MembershipsTeamsTracking CodesUCM ProfileUser Call SettingsVideo MeshVirtual Line Call SettingsWebhooksWholesale Billing ReportsWholesale ProvisioningWorkspace Call SettingsWorkspace LocationsWorkspace MetricsWorkspace PersonalizationWorkspacesxAPI
API Changelog
SDKs
Space Meetings Migration
Calling
Introduction
Platform
Web
IntroductionQuickstart
Basics
AuthorizationCore ConceptsCalls
Advanced Features
Call SettingsContactsSupplementary ServicesVoicemailBackground Noise Reduction
Kitchen Sink
Meetings
Introduction
Platform
Web
IntroductionQuickstart
Basics
AuthorizationJoin a MeetingMigration To Improved MeetingsPasswords & CaptchasUnified Space Meetings
Advanced Features
Advanced ControlsDialing In and OutStreams & EffectsVideo Resolution
Multistream
Multistream Comprehensive GuideMultistream Quickstart
Migrating SDK V2 to V3
iOSAndroidBrowserNode.jsClick to Call
Developer CommunityCertifications

SDKs

Web Meetings SDK | Quickstart Guide

Welcome to the Quick Start Guide for the Webex Meetings SDK. This guide is designed to provide developers with a concise walkthrough to swiftly set up, authorize, and test the core meeting functionalities within the Meeting SDK.

By following the sequential flow of this document and integrating the provided code snippets, you'll be able to authenticate your application and create and manage your first meetings. Whether you're new to Webex's Meeting SDK or looking to brush up on the basics, this guide ensures a streamlined experience to get you up and running in no time. Let's dive in!

anchorImport the Meetings SDK

anchor

To install the latest stable version of the Meetings SDK use either NPM or CDN.

NPM

We test against the Active LTS (Long Term Support) version of Node.js and use npm@6 to run security audits.

The Meetings SDK is available as a nodejs module via NPM. You can install it using either yarn or npm utilities:

 yarn add webex

or

npm install webex
CDN

A minified version of the Meeting SDK is also provided via the unpkg or jsdelivr Content Delivery Networks (CDN). To include the CDN Meeting SDK:

 <!-- unpkg -->
 <script crossorigin src="https://unpkg.com/webex/umd/webex.min.js"></script>
 <!-- jsdelivr -->
 <script crossorigin src="https://cdn.jsdelivr.net/npm/webex/umd/webex.min.js"></script>

If you're already using a bundler like Webpack or Rollup) you can simply import or require the package and use the above snippet, assigning the initialized webex variable to window.webex.

We also provide a meetings specific SDK via unpkg. Access by including the following code:

 <script crossorigin src="https://unpkg.com/webex/umd/meetings.min.js"></script>

anchorInitialize the SDK

anchor

If you don't already have a Cisco Webex account, visit the Webex Developer Portal to create your account and retrieve your access token from the following page: Getting and Using your Personal Access Token.

To create a new Webex object, replace <AUTHORIZATION/BOT TOKEN> below with your Personal Access Token from the Developer Portal:

const Webex = import(`webex`);
const webex = Webex.init({
  credentials: {
    access_token: `<AUTHORIZATION/BOT TOKEN>`
  }
});

You can only create rooms or meetings once the Webex object is ready. You'll want to attach a listener for the Webex object's ready event and proceed only after that event has fired. Here's a complete workflow:

  1. Listen for the ready event and log a message.
  2. Create a room titled "My First Room".
  3. Add Alice and then Bob to the new room.
  4. Send a "Hi Everyone" message to all the participants in the room.
// Listen for the ready event
webex.once('ready', () => {
    console.log('Authentication#initWebex() :: Webex Ready');
  });

webex.rooms.create({ title: `My First Room` }).then(room => {
  return Promise.all([
    webex.memberships.create({
      roomId: room.id,
      personEmail: `alice@example.com`
    }),
    webex.memberships.create({
      roomId: room.id,
      personEmail: `bob@example.com`
    })
  ]).then(() =>
    webex.messages.create({
      markdown: `**Hi Everyone**`,
      roomId: room.id
    })
  );
});

anchorWebex Object Attribute Reference

anchor

The following tables cover all of the available configuration attributes for the webex object.

Default Attributes

S.noAttributeDescriptionData TypeDefault Attribute?
1.credentialsUse this object to set up credentials for authentication.ObjectYes
1.aaccess_tokenAccess token used to communicate with Webex.StringNo
1.bclientTypeType of client communicating with Webex, an example would be "Web".StringYes
2.deviceUse this object to set the settings for the device created in Webex.ObjectYes
2.avalidateDomainsValidate domains against the allowed domains.BooleanYes
2.ballowedDomainsThe allowed domains to validate domains against.String[]No
2.cephemeralEnable or disable "ephemeral" mode which sets a TTL of 30 minutes on the registration of the device created in Webex.BooleanYes
3.storageUse this object to set storage properties for the webex object.ObjectYes
3.aboundedAdapterUsed to store information pertaining to the webex object.StorageAdapterLocalStorageYes
3.bunboundedAdapterUsed to store information outside the scope of the webex object.LocalForageStoreAdapterYes
Credentials

S.noAttributeDescriptionData TypeDefault Attribute?
1.access_tokenAccess token used to communicate with Webex.StringNo
2.clientTypeType of client communicating with Webex, an example would be "Web".StringYes
3.client_idUnique client ID assigned to the developer for Oauth 2.0.StringNo
4.client_secretUnique client secret assigned to the developer for Oauth 2.0.StringNo
5.scopeScopes define the privilege level of the access token. They determine what the client can and cannot do.StringNo
6.redirect_uriRedirect URI points to the landing page of the developer's application after successful authentication.StringNo
Storage

S.noAttributeDescriptionData TypeDefault Attribute?
1.boundedAdapterUsed to store information pertaining to the webex object.StorageAdapterLocalStorageYes
2.unboundedAdapterUsed to store information outside the scope of the webex object.LocalForageStoreAdapterYes
Meetings

S.noAttributeDescriptionData TypeDefault Attribute?
1.mediaSettingsUse this object to set media settings for meetings.ObjectNo
1.apstnEnable or disable a PSTN connection within the meeting.BooleanNo
2.reconnectionUse this object to set reconnection settings for a meeting.ObjectNo
2.aenabledEnable or disable reconnection to a meeting.BooleanNo
2.bautoRejoinEnable or disable automatic rejoin once a connection is restored.BooleanNo
3.loggingUse this object to set logging.ObjectNo
3.aenableEnable or disable logging.BooleanNo
3.bverboseEventsEnable or disable verbose level debugs.BooleanNo
4.resolutionObject to the resolution of the video.ObjectNo
4.amaxWidthMaximum width of the video.IntNo
4.bmaxHeightMaximum height of the video.IntNo
4.cidealWidthIdeal width of the video.IntNo
4.didealHeightIdeal height of the video.IntNo
5.screenResolutionObject to set resolution of screen share.ObjectNo
5.amaxWidthMaximum width of the screenshare video.IntNo
5.bmaxHeightMaximum height of the screenshare video.IntNo
5.cidealWidthIdeal width of the screenshare video.IntNo
5.didealHeightIdeal height of the screenshare video.IntNo
6.bandwidthObject to set bandwidth constraints for a meeting.ObjectNo
6.aaudioMaximum bandwidth value for audio.IntNo
6.bvideoMaximum bandwidth value for video, independent of resolution.IntNo
6.cstartBitrateSets the starting bitrate for the media connection.IntNo
7.videoShareFrameRateSets the frame rate of the screenshare.IntNo
8.aspectRatioSets the aspect ratio of the video.FloatNo
9.autoUploadLogsWhen enabled, as calls are ended, SDK logs are uploaded and correlated.BooleanNo
10.enableRtxEnable or disable RTP packet retransmission.BooleanNo
11.receiveTranscriptionEnable receipt of transcription from Webex meeting services.BooleanNo
12.enableExtMapEnable or disable the advertising of RTP extension mapping within the SDP during WebRTC negotiation.BooleanNo
13.experimentalObject to turn expermiental features on or off.ObjectNo
13.aenableMediaNegotiatedEventEnable or disable emission of event from meeting object when media is negotiated successfully.BooleanNo
13.benableUnifiedMeetingsEnable or disable the improved meeting experience associated with a space. Refer to this help article for more details.BooleanNo
13.cenableAdhocMeetingsEnable or disable the creation of an instant meeting.BooleanNo
14.degradationPreferencesObject to set behavior of meetings when experiencing degradation.ObjectNo
14.amaxMacroblocksLimitSet the maximum number of blocks that can be requested by the web application during a meeting. Defaults to 8192.IntNo
Other Attributes

S.noAttributeDescriptionData TypeDefault Attribute?
1.appPlatformPlatform or name of the application consuming the Webex Web Meetings SDK.StringNo
2.appVersionVersion of the application consuming the Webex Web Meetings SDK.StringNo
3.fedRampSet this flag to true if you are operating in the FedRAMP environment.BooleanNo
4.appNameName of the application consuming the Webex Web Meetings SDK.StringNo

Here's a complete example Webex object:

{
  appPlatform: 'testClient',
  fedRamp: true,
  credentials: {
    access_token: 'your_webex_access_token',
    clientType: 'confidential',
    client_id: 'id',
    client_secret: 'secret',
    scope: 'spark:all spark:kms',
    redirect_uri,
  },
  logger: {
    level: 'debug',
    historyLength: 1000,
  },
  appName: 'sdk-samples',
  storage: {
    boundedAdapter: new StorageAdapterLocalStorage('webex'),
    unboundedAdapter: new LocalForageStoreAdapter('web-client-internal'),
  },
  meetings: {
    mediaSettings: {
      pstn: false,
    },
    reconnection: {
      enabled: false,
      autoRejoin: true,
    },
    metrics: {
      clientName: 'WEBEX_JS_SDK',
      clientType: 'WEBEX_SDK',
    },
    logging: {
      enable: true,
      verboseEvents: true,
    },
    resolution: {
      maxWidth: 1280,
      maxHeight: 720,
      idealWidth: 1280,
      idealHeight: 720,
    },
    screenResolution: {
      maxWidth: 1920,
      maxHeight: 1080,
      idealWidth: 1920,
      idealHeight: 1080,
    },
    bandwidth: {
      audio: 64000,
      video: 4000000,
      startBitrate: 2000,
    },
    videoShareFrameRate: 30,
    aspectRatio: 1.7695852534562213,
    autoUploadLogs: true,
    enableRtx: true,
    receiveTranscription: false,
    enableExtmap: false,
    experimental: {
      enableMediaNegotiatedEvent: false,
      enableUnifiedMeetings: false,
      enableAdhocMeetings: false,
      enableTurnDiscovery: true,
    },
  },
};

anchorUse a Proxy Agent to Open a WebSocket Connection

anchor

For consumers who are not using the SDK via the browser, it may be necessary to configure a proxy agent to connect with Mercury and open a WebSocket in a proxy environment. This can be done by configuring an agent as part of a DefaultMercuryOptions config object. The agent object will then be injected into the SDK and used in the Mercury plug-in during WebSocket construction as an option property, allowing a connection to be established via the specified proxy URL:

const webex = require(`webex`);
const HttpsProxyAgent = require('https-proxy-agent');

let httpsProxyAgent = new HttpsProxyAgent(url.parse(proxyUrl));

webex.init({
  config: {
    defaultMercuryOptions: {
      agent: httpsProxyAgent
    }
  }
});
In This Article
  • Import the Meetings SDK
  • Initialize the SDK
  • Webex Object Attribute Reference
  • Use a Proxy Agent to Open a WebSocket Connection

Connect

Support

Developer Community

Developer Events

Contact Sales

Handy Links

Webex Ambassadors

Webex App Hub

Resources

Open Source Bot Starter Kits

Download Webex

DevNet Learning Labs

Terms of Service

Privacy Policy

Cookie Policy

Trademarks

© 2025 Cisco and/or its affiliates. All rights reserved.