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

Meetings

Access Meeting Resources Guide

Use this guide to learn how to code to access the meeting resources from Webex.

anchorAccess Meeting Resources Guide

anchor

Solutions for sales enablement need to know what meetings are occurring, who are the participants in each individual meeting, when these meetings start and end, and how to access the content from these meetings. Web developers have asked for improved availability of connecting to the resources that allow applications to be meeting aware and get access to post meeting resources.

anchorGetting Started

anchor

To leverage assets from a meeting, you must first ensure the following settings are enabled in Webex when the meeting starts:

  • Recording: To record the meeting, you must enable the recordings option. This can be done by the users during a meeting or programmatically via API for a scheduled meeting.

  • Transcripts: To create a transcript, you must turn on Webex Assistant. This cannot be done programmatically and must be turned on by the meeting host/participant or set as default behavior in the control hub. NOTE: Webex Assistant requires a license.

anchorAccessing Meeting Resources

anchor

When a meeting ends, Webex triggers a notice that unlocks the meeting assets that you can retrieve.

To achieve this via APIs, you must create a webhook to notify of the meeting termination.

The documentation for the Webhook APIs can be found at https://developer.webex.com/docs/api/v1/webhooks/create-a-webhook

Creation is a post request to /v1/webhooks event = ended and resource = meetings

The post might look like below:

{
  "name": "Meeting Ended Webhook",
  "targetUrl": "https://example.com/mywebhook",
  "resource": "meetings",
  "event": "ended",
}

Then the response might be something like:

{
    "id": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLXdlc3QtMl9yL1dFQkhPT0svNDk5ZjkxZjItY2QxMi00NTk2LWEzYjctNDY4NTA1OGQ2NTlm",
    "name": "Meeting Ended Webhook",
    "targetUrl": "https://webhook.site/c231a24c-8a04-42b6-a7ed-85ff1a51b60b",
    "resource": "meetings",
    "event": "ended",
    "orgId": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi81NWM1YWUzZi04ZDdmLTQyN2ItYTRmOS01ZTNjYjNkZGRmN2I",
    "createdBy": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9hYzAxZjUzMi1kMDIyLTRmOGUtYTQ5NC1mMGE0ZDc5ZTUyMjc",
    "appId": "Y2lzY29zcGFyazovL3VzL0FQUExJQ0FUSU9OL0NmMzkyNWU5NDFmMzhhYTc0M2Y0MmFiNzcwZmZhZjFhNTIyMjcxZDI5OTQ4NDhjNjk2YWMwYTEwN2Q2YTg5MjI3",
    "ownedBy": "creator",
    "status": "active",
    "created": "2021-05-14T20:20:01.024Z"
}

If you want to synchronize your app with all meetings, there are webhooks for the following categories: created, updated, and deleted.

The webhook you receive for a "meeting ended" event might look something like:

{
  "id": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLXdlc3QtMl9yL1dFQkhPT0svNDk5ZjkxZjItY2QxMi00NTk2LWEzYjctNDY4NTA1OGQ2NTlm",
  "name": "Meeting Ended Webhook",
  "targetUrl": "https://webhook.site/c231a24c-8a04-42b6-a7ed-85ff1a51b60b",
  "resource": "meetings",
  "event": "ended",
  "orgId": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi81NWM1YWUzZi04ZDdmLTQyN2ItYTRmOS01ZTNjYjNkZGRmN2I",
  "createdBy": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9hYzAxZjUzMi1kMDIyLTRmOGUtYTQ5NC1mMGE0ZDc5ZTUyMjc",
  "appId": "Y2lzY29zcGFyazovL3VzL0FQUExJQ0FUSU9OL0NmMzkyNWU5NDFmMzhhYTc0M2Y0MmFiNzcwZmZhZjFhNTIyMjcxZDI5OTQ4NDhjNjk2YWMwYTEwN2Q2YTg5MjI3",
  "ownedBy": "creator",
  "status": "active",
  "created": "2021-05-14T20:20:01.024Z",
  "data": {
    "id": "501e995485e2460bb129410116757b13_I_194316955237236650",
    "meetingType": "meeting",
    "timezone": "UTC",
    "start": "2021-05-14T20:25:19Z",
    "end": "2021-05-14T20:26:54Z",
    "hostUserId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9hYzAxZjUzMi1kMDIyLTRmOGUtYTQ5NC1mMGE0ZDc5ZTUyMjc",
    "state": "ended",
    "hostEmail": "spouliottes@gmail.com",
    "siteUrl": "spouliottes-test.webex.com",
    "orgId": "55c5ae3f-8d7f-427b-a4f9-5e3cb3dddf7b"
  }
}

It is important to remember that you need to store the ID in the data, since retrieving listings will only return future and in progress meetings. You cannot recover this ID historically and need to store in your app.

Developer Note: When a meeting is created, the ID will look different than post meeting ID in webhook. Webex appends an additional ID that is demarcated with “_I_”. For example, in the above case the ID on end event was: '501e995485e2460bb129410116757b13_I_194316955237236650'

In the pre-meeting creation, the ID for the event would have been: '501e995485e2460bb129410116757b13'

anchorFind Recording Assets

anchor

After a meeting has finished, Webex will process and store post meeting assets and make them available through the endpoint: - /v1/recordings

You can query for all available recordings by leaving the query parameters blank or you can set specific data such as meetingId as in the example below: https://webexapis.com/v1/recordings?meetingId=501e995485e2460bb129410116757b13_I_194316955237236650

The response will look something like this:

{
  "items": [
    {
      "id": "724a81a697201039a976005056819cde",
      "meetingId": "501e995485e2460bb129410116757b13_I_194316955237236650",
      "scheduledMeetingId": "501e995485e2460bb129410116757b13_20210514T203000Z",
      "meetingSeriesId": "501e995485e2460bb129410116757b13",
      "topic": "Test meeting-20210514 2025-1",
      "createTime": "2021-05-14T20:28:53Z",
      "siteUrl": "spouliottes-test.webex.com",
      "downloadUrl": "https://spouliottes-test.webex.com/spouliottes-test/lsr.php?RCID=77ab059a6b6512550d6a3ddafeea57aa",
      "playbackUrl": "https://spouliottes-test.webex.com/spouliottes-test/ldr.php?RCID=6197666928e747419d239f3cfdee3e49",
      "password": "tA3hwXUm",
      "format": "MP4",
      "durationSeconds": 85,
      "sizeBytes": 4982263,
      "shareToMe": false
    }
  ]
}

The download and playback URLs are accessible via browser and require the password associated in the response.

If you want a direct download link, you can use the Get Recording Details API.

As found in the above example with id": "724a81a697201039a976005056819cde

This will return a response like the following:

{
  "id": "724a81a697201039a976005056819cde",
  "meetingId": "501e995485e2460bb129410116757b13_I_194316955237236650",
  "scheduledMeetingId": "501e995485e2460bb129410116757b13_20210514T203000Z",
  "meetingSeriesId": "501e995485e2460bb129410116757b13",
  "topic": "Test meeting-20210514 2025-1",
  "createTime": "2021-05-14T20:28:53Z",
  "siteUrl": "spouliottes-test.webex.com",
  "downloadUrl": "https://spouliottes-test.webex.com/spouliottes-test/lsr.php?RCID=77ab059a6b6512550d6a3ddafeea57aa",
  "playbackUrl": "https://spouliottes-test.webex.com/spouliottes-test/ldr.php?RCID=6197666928e747419d239f3cfdee3e49",
  "password": "tA3hwXUm",
  "temporaryDirectDownloadLinks": {
    "recordingDownloadLink": "https://nsj1wss.webex.com/nbr/MultiThreadDownloadServlet?siteid=13867087&recordid=220437037&confid=194316955237236650&from=MBS&trackingID=WEBEX-DEV-PORTAL_3bdadf4c-40a7-4ab5-967c-957c77a12a10_50&language=en_US&userid=600686172&serviceRecordID=220441022&ticket=SDJTSwAAAARjJiLHI3wKUisba87xO%2BurLcu84afdWTP4vg3ucK5ZhA%3D%3D&timestamp=1621283371277&islogin=yes&isprevent=no&ispwd=yes",
    "audioDownloadLink": "https://nsj1wss.webex.com/nbr/MultiThreadDownloadServlet/audio.mp3?siteid=13867087&recordid=220437037&confid=194316955237236650&from=MBS&trackingID=WEBEX-DEV-PORTAL_3bdadf4c-40a7-4ab5-967c-957c77a12a10_50&language=en_US&userid=600686172&serviceRecordID=220441022&ticket=SDJTSwAAAAS%2FF5Mw2d32msyLuoeJKubqgkKvTlrlXdzjrQdvVmQQ0Q%3D%3D&timestamp=1621283371276&islogin=yes&isprevent=no&ispwd=yes",
    "expiration": "2021-05-17T23:29:31Z"
  },
  "format": "MP4",
  "durationSeconds": 85,
  "sizeBytes": 4982263,
  "shareToMe": false
}

anchorGet the Transcripts – VTT and TXT format

anchor

You can now query for the transcripts using endpoint:- /v1/meetingTranscripts/

A query might look like: https://webexapis.com/v1/meetingTranscripts?meetingId=501e995485e2460bb129410116757b13_I_194316955237236650

This will return to something like this:

{
    "items": [
        {
            "id": "a5038f0b-320a-456f-a51f-7541eeb0eae5_M_501e995485e2460bb129410116757b13",
            "meetingId": "501e995485e2460bb129410116757b13_I_194316955237236650",
            "startTime": "2021-05-14T20:25:22Z",
            "vttDownloadLink": "https://webexapis.com/v1/meetingTranscripts/a5038f0b-320a-456f-a51f-7541eeb0eae5_M_501e995485e2460bb129410116757b13/download?meetingId=501e995485e2460bb129410116757b13_I_194316955237236650&format=vtt",
            "txtDownloadLink": "https://webexapis.com/v1/meetingTranscripts/a5038f0b-320a-456f-a51f-7541eeb0eae5_M_501e995485e2460bb129410116757b13/download?meetingId=501e995485e2460bb129410116757b13_I_194316955237236650&format=txt"
        }
    ]
}

anchorGet Assets in JSON format with speaker name

anchor

If you are designing an application that needs to programmatically use the transcript content, including speaker name in a machine readable format, use the snippets API.

The response body might be like the following:

+ Response 200 (application/json;charset=UTF-8)
    + Attributes
        + items (array[SnippetObject], fixed-type) - Transcript snippet array
    + Body
            {
                "items": [
                    {
                        "id": "195d64646ad14be2924ea50f541fd91d_00001",
                        "text": "Hello everyone",
                        "personName": "John Andersen",
                        "personEmail": "john.andersen@example.com",
                        "offset": 1000,
                        "duration": 1500
                    }
                ]
            }

The offset field is the meeting start time in seconds. The ID field is a unique ID for the speaker slot.

anchorSet recording to on During a Meeting

anchor

While the host of a meeting can toggle-on recording manually, you can also ensure that all meetings have their recording enabled programmatically. When you receive a meeting creation notification, use the meeting ID to find the details of a meeting.

The documentation for using the APIs can be found at https://developer.webex.com/docs/api/v1/meetings/list-meetings-of-a-meeting-series.

The endpoint for meetings is: /v1/meetings.

To retrieve a meetings details, perform a Get to /vi/meetings with the meeting ID set in the request URI along with any optional parameters you choose. This would look like: https://webexapis.com/v1/meetings?meetingSeriesId=25bbf831-5be9-4c25-b4b0-9b592c8a086b&max=100&from=2019-03-18T09:30:00+08:00&to=2019-03-25T09:30:00+08:00&meetingType=%5Bobject%20Object%5D,%5Bobject%20Object%5D&state=%5Bobject%20Object%5D,%5Bobject%20Object%5D,%5Bobject%20Object%5D,%5Bobject%20Object%5D,%5Bobject%20Object%5D,%5Bobject%20Object%5D&isModified=false&hostEmail=john.andersen@example.com

{
    "items": [
        {
            "id": "870f51ff287b41be84648412901e0402_20191101T120000Z",
            "meetingSeriesId": "870f51ff287b41be84648412901e0402",
            "meetingNumber": "123456789",
            "title": "Example Daily Meeting",
            "agenda": "Example Agenda",
            "password": "BgJep@43",
            "phoneAndVideoSystemPassword": "12345678",
            "meetingType": "scheduledMeeting",
            "state": "ready",
            "isModified": false,
            "timezone": "UTC",
            "start": "2019-11-01T12:00:00Z",
            "end": "2019-11-01T13:00:00Z",
            "hostUserId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9jN2ZkNzNmMi05ZjFlLTQ3ZjctYWEwNS05ZWI5OGJiNjljYzY",
            "hostDisplayName": "John Andersen",
            "hostEmail": "john.andersen@example.com",
            "hostKey": "123456",
            "siteUrl": "site4-example.webex.com",
            "webLink": "https://site4-example.webex.com/site4/j.php?MTID=md41817da6a55b0925530cb88b3577b1e",
            "sipAddress": "123456789@site4-example.webex.com",
            "dialInIpAddress": "192.168.100.100",
            "enabledAutoRecordMeeting": false,
            "allowAnyUserToBeCoHost": false,
            "enabledJoinBeforeHost": false,
            "enableConnectAudioBeforeHost": false,
            "joinBeforeHostMinutes": 0,
            "allowFirstUserToBeCoHost": false,
            "allowAuthenticatedDevices": false,
            "telephony": {
                "accessCode": "1234567890",
                "callInNumbers": [
                    {
                        "label": "US Toll",
                        "callInNumber": "123456789",
                        "tollType": "toll"
                    }
                ],
                "links": [
                    {
                        "rel": "globalCallinNumbers",
                        "href": "/api/v1/meetings/870f51ff287b41be84648412901e0402/globalCallinNumbers",
                        "method": "GET"
                    }
                ]
            }
        },

anchorViewing the Log of the Participants

anchor

The meeting invite list can tell you who was invited, but it does not reveal who actually attended. Once a meeting is in progress or ended, you can query for a list of participants using: - /v1/meetingParticipants

With meetingID as a query parameter, you can request this information as follows: https://webexapis.com/v1/meetingParticipants?meetingId=501e995485e2460bb129410116757b13_I_194316955237236650

This will return a response something like:

{
    "items": [
        {
            "id": "870f51ff287b41be84648412901e0402_20191101T120000Z",
            "meetingSeriesId": "870f51ff287b41be84648412901e0402",
            "meetingNumber": "123456789",
            "title": "Example Daily Meeting",
            "agenda": "Example Agenda",
            "password": "BgJep@43",
            "phoneAndVideoSystemPassword": "12345678",
            "meetingType": "scheduledMeeting",
            "state": "ready",
            "isModified": false,
            "timezone": "UTC",
            "start": "2019-11-01T12:00:00Z",
            "end": "2019-11-01T13:00:00Z",
            "hostUserId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9jN2ZkNzNmMi05ZjFlLTQ3ZjctYWEwNS05ZWI5OGJiNjljYzY",
            "hostDisplayName": "John Andersen",
            "hostEmail": "john.andersen@example.com",
            "hostKey": "123456",
            "siteUrl": "site4-example.webex.com",
            "webLink": "https://site4-example.webex.com/site4/j.php?MTID=md41817da6a55b0925530cb88b3577b1e",
            "sipAddress": "123456789@site4-example.webex.com",
            "dialInIpAddress": "192.168.100.100",
            "enabledAutoRecordMeeting": false,
            "allowAnyUserToBeCoHost": false,
            "enabledJoinBeforeHost": false,
            "enableConnectAudioBeforeHost": false,
            "joinBeforeHostMinutes": 0,
            "allowFirstUserToBeCoHost": false,
            "allowAuthenticatedDevices": false,
            "telephony": {
                "accessCode": "1234567890",
                "callInNumbers": [
                    {
                        "label": "US Toll",
                        "callInNumber": "123456789",
                        "tollType": "toll"
                    }
                ],
                "links": [
                    {
                        "rel": "globalCallinNumbers",
                        "href": "/api/v1/meetings/870f51ff287b41be84648412901e0402/globalCallinNumbers",
                        "method": "GET"
                    }
                ]
            }
        },
In This Article
  • Access Meeting Resources Guide
  • Getting Started
  • Accessing Meeting Resources
  • Find Recording Assets
  • Get the Transcripts – VTT and TXT format
  • Get Assets in JSON format with speaker name
  • Set recording to on During a Meeting
  • Viewing the Log of the Participants

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.