Webex Meetings REST API

The new Webex Meetings REST API enables seamless integration of Cisco Webex Meetings into your websites, apps, and services. Schedule meetings, invite meeting attendees, update preferences, and more.

anchorWebex Meetings
anchor

Webex Meetings offers integrated audio, video, and content sharing with highly secure web meetings from the cloud. The Webex Meetings REST API allows developers to add basic Webex scheduling functionality to their custom applications or websites. You can:

More APIs are on the way! Watch our blog for announcements.

anchorCreating and Using Webex Apps
anchor

The base URL for the Webex REST API is https://webexapis.com/v1/. Detailed information about each API resource and endpoint can be found in the API Reference.

The Meetings-related APIs can be used with Webex Integrations. If you aren't familiar with integrations, check out the Integrations Guide for more information. To create a new integration, select My Webex Apps from the menu under your avatar at the top of this page to get started.

To use the Webex REST API you'll need to be a Webex Meetings subscriber with a Webex account backed by Cisco Webex Common Identity (CI). If you currently use Webex, your account is backed by Common Identity. If you're using only Webex Meetings, your site will need to be on Common Identity.

anchorUser Authentication and Scopes
anchor

Webex REST API authentication is described in detail in the Integrations Guide. The following scopes are required to use the Meetings-related API resources:

Scope
Usage
meeting:schedules_read
Retrieve your Webex meeting lists and details
meeting:schedules_write
Create, manage, or cancel your scheduled Webex meetings
meeting:recordings_read
Retrieve your Webex meeting recordings for playback
meeting:recordings_write
Manage or delete your meeting recordings for playback
meeting:preferences_read
Retrieve your Webex meeting preferences
meeting:preferences_write
Edit your Webex meeting preferences
meeting:controls_read
Read meeting control information for in-progress meetings
meeting:controls_write
Update meeting controls for in-progress meetings
meeting:participants_read
Read participant information from meetings
meeting:participants_write
Manage participants within meetings

Remember, when choosing scopes for your app, only select the scopes your application will need.

anchorAdmin/Organization level Authentication and Scopes
anchor

Webex site administrators have new admin-level scopes, which can be granted to integrations on behalf of all the users in the organization, to perform the following actions:

  • schedule/update/delete/query meetings on-behalf-of any meeting host who belongs to a site administered by the caller of the API
  • list/query/delete recording on-behalf-of any meeting host who belongs to a site administered by the caller of the API

In support of this functionality the admin must grant the integration the following admin scopes:

Scope
Usage
meeting:admin_participants_read
Read participant information from meetings for all WebEx users of your organization
meeting:admin_schedule_read
Retrieve meetings of all WebEx users of your organization
meeting:admin_schedule_write
Create, manage, or cancel meetings of all WebEx users of your organization
meeting:admin_recordings_read
Retrieve recordings of all WebEx users of your organization
meeting:admin_recordings_write
Manage or delete recordings of all WebEx users of your organization

The admin feature applies to both CI-enabled or CI-linked Webex sites. The managed user account (host) does not need to be CI-enabled/CI-linked.

In support of this feature, the following will be allowed as query parameters on GET requests and as valid attributes in the request body of POST and PUT commands:

  • hostEmail - When set as a query parameter on a GET request made by an admin, the response will be meetings hosted by the user specified instead of meetings hosted by the admin user. When set as part of the request body sent to a POST or PUT method by an admin, the user specified will be the host of the meeting if they belong to a site managed by that admin user. The meeting will belong to the specified host's default site unless the siteUrl attribute is used to override this.
  • siteUrl - optional - When set as a query parameter on a GET request, the response will be restricted to the meetings that belong to the specified site that are hosted by the caller of the API, or by the user specified via the hostEmail parameter. When set as part of the request body sent to a POST or PUT method, this attribute allows the caller of the API to create a meeting in a non-preferred site for a host who's account is associated with multiple sites.

Developers can become aware of the allowable values for siteUrl by querying the GET /meetingPreferences/sites API. At this time there is no on-behalf-of functionality for this API, so an administrator can only query the list of sites associated with their own account.

anchorMeeting Series, Scheduled Meetings, and Meeting Instances
anchor

When using the Meetings and Meeting Invitees API resources, it's important to understand the difference between "meeting series", "scheduled meetings", and "meetings" objects. Each of these objects may be sent to or received from the API. To differentiate them, the value of the meetingType attribute in the object will be one of:

  • meetingSeries – a container object that includes all of the scheduling information for a meeting
  • scheduledMeeting – an object that represents the information associated with the scheduling information associated with a single instance of a meeting; a scheduledMeeting object can be thought of as a “child” of a meetingSeries object
  • meeting – an object that represents a meeting that is currently happening or has happened in the past; this object is created only when a meeting starts

Both meeting series and scheduled meetings may be used with the API. For example, to invite an attendee to the series, use the ID of the meeting series with the Create a Meeting Invitee endpoint. Or, to invite someone to just one scheduled instance of a meeting, use the ID of the scheduled meeting instead.

anchorMeeting States
anchor

Different meeting states are available for each type of meeting object. See "Meeting Series, Scheduled Meetings, and Meeting Instances" above for more detail.

Meeting Series
  • active – one or more future scheduled meetings exists for this series
  • inProgress – an instance of this meeting series is happening now
  • expired – all scheduled instances of this meeting have passed
Scheduled Meeting
  • scheduled – this meeting is scheduled in the future
  • ready – this meeting is ready to start
  • ended – this meeting was started and is now over
  • missed – this meeting was scheduled in the past but never happened
Meeting
  • lobby – a locked meeting has been joined by participants, but no hosts have joined
  • inProgress – the meeting has been joined and unlocked
  • ended – a meeting has concluded
anchorMeeting Lifecycle
anchor
Meeting Auto Delete

Auto Delete Options

There's a Delete from My Meetings when completed option in Webex page of classic view. It's invisible in Webex page of modern view and the default value is unchecked.

If the Delete from My Meetings when completed option is unchecked for a meeting, there will be a mandatory Delete after 180 days option for the meeting.

Auto Delete Cases

  1. If the Delete from My Meetings when completed option is checked for a non-recurring meeting, the meeting will be deleted automatically after the scheduled end time.

  2. If the Delete from My Meetings when completed option is unchecked for a non-recurring meeting, the meeting will be deleted automatically 180 days after the scheduled end time.

  3. If the Delete from My Meetings when completed option is checked for a meeting series, the entire meeting series will be deleted automatically after the scheduled end time of the last scheduled meeting of the meeting series.

  4. If the Delete from My Meetings when completed option is unchecked for a meeting series, the entire meeting will be deleted automatically 180 days after the scheduled end time of the last scheduled meeting of the meeting series.

Meeting Series Lifecycle
  1. A meeting series is created.

  2. A scheduled meeting of the meeting series is started.

  3. The ongoing scheduled meeting is ended, but it has not passed the scheduled end time of the last scheduled meeting of the meeting series.

  4. The ongoing scheduled meeting is ended, and it has passed the scheduled end time of the last scheduled meeting of the meeting series.

  5. It has passed the scheduled end time of the last scheduled meeting of the meeting series.

  6. The meeting series is deleted manually or automatically after it's been expired.

  7. The meeting series is deleted manually.

Scheduled Meeting Lifecycle
  1. The parent meeting series is created. Any scheduled meeting other than the first one of the meeting series is scheduled and it can be started in the future.

  2. The parent meeting series is created. The first scheduled meeting of the meeting series is ready and it can be started immediately.

  3. It has passed the scheduled end time of the previous scheduled meeting. The subsequent scheduled meeting becomes ready and it can be started immediately.

  4. The previous ready scheduled meeting has been started and ended, and it has passed its scheduled end time. This scheduled meeting becomes ended.

  5. The previous ready scheduled meeting has never been started, and it has passed its scheduled end time. This scheduled meeting becomes missed.

  6. The scheduled meeting is deleted manually or it's deleted when the parent meeting series is deleted maunally.

  7. The scheduled meeting is deleted manually or it's deleted when the parent meeting series is deleted maunally or automatically.

  8. The scheduled meeting is deleted manually or it's deleted when the parent meeting series is deleted maunally.

  9. The scheduled meeting is deleted manually or it's deleted when the parent meeting series is deleted maunally or automatically.

Meeting Lifecycle
  1. A locked meeting has been joined by participants, but no hosts have joined.

  2. The meeting has been started and not ended yet.

  3. The participants in lobby have been admitted to meeting.

  4. The meeting has ended.