Webex Meetings
Webex Meetings API for scheduling, managing, and reporting on video meetings. Provides endpoints for meeting lifecycle management, invitees, participants, recordings, transcripts, and meeting templates.
Webex Meetings API for scheduling, managing, and reporting on video meetings. Provides endpoints for meeting lifecycle management, invitees, participants, recordings, transcripts, and meeting templates.
{
"openapi": "3.0.0",
"info": {
"title": "Webex Meetings",
"version": "1.0.0",
"description": "The Webex Meetings APIs enable developers to schedule, manage, and retrieve information about Webex meetings, webinars, and events. They provide endpoints for meeting creation, participant management, recordings, transcripts, in-meeting features such as chat and closed captions, and post-meeting analytics. Common use cases include integrating meeting scheduling into calendar apps, automating follow-ups with recordings and transcripts, embedding meeting controls in custom portals, and extracting insights for compliance or productivity analysis. The APIs support both real-time and asynchronous workflows for seamless collaboration."
},
"tags": [
{
"name": "slidoSecurePremium",
"description": "APIs for Slido Secure Premium integration with Webex Meetings."
}
],
"paths": {
"/meetings/postMeetingChats": {
"get": {
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"application/json;charset=UTF-8": {
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChatObject"
},
"description": "Chat array"
}
}
},
"example": {
"items": [
{
"id": "1aea8390-e375-4547-b7ff-58ecd9e0b03d",
"chatTime": "2021-07-06T09:22:34Z",
"text": "hi",
"meetingId": "a2f95f5073e347489f7611492dbd6ad5_I_199075330905867928",
"type": "private",
"sender": {
"email": "[email protected]",
"displayName": "John Andersen",
"personId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9jN2ZkNzNmMi05ZjFlLTQ3ZjctYWEwNS05ZWI5OGJiNjljYzY=",
"orgId": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi9jMmUyMjE4Zi00ZDZhLTQwODEtYTc1MS0yOWIyZTk3MDRiZGU="
},
"receivers": [
{
"email": "[email protected]",
"displayName": "Catherine Sinu",
"personId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9hYmEwZDRjYi02MGVkLTQzYjctYTkyNy1mZTc2MmIyZTRiODY=",
"orgId": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi9jMmUyMjE4Zi00ZDZhLTQwODEtYTc1MS0yOWIyZTk3MDRiZGU="
}
]
}
]
}
}
}
},
"400": {
"description": "Bad Request",
"headers": {},
"content": {}
},
"401": {
"description": "Unauthorized: Authentication credentials were missing or incorrect."
},
"403": {
"description": "Forbidden: The request is understood, but it has been refused or access is not allowed."
},
"404": {
"description": "Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method."
},
"405": {
"description": "Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported."
},
"409": {
"description": "Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once."
},
"410": {
"description": "Gone: The requested resource is no longer available."
},
"415": {
"description": "Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported."
},
"423": {
"description": "Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again."
},
"428": {
"description": "Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded."
},
"429": {
"description": "Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made."
},
"500": {
"description": "Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support)."
},
"502": {
"description": "Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later."
},
"503": {
"description": "Service Unavailable: Server is overloaded with requests. Try again later."
},
"504": {
"description": "Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it."
}
},
"summary": "List Meeting Chats",
"operationId": "List Meeting Chats",
"description": "Lists the meeting chats of a finished [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) specified by `meetingId`. You can set a maximum number of chats to return.\n\nUse this operation to list the chats of a finished [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) when they are ready. Please note that only **meeting instances** in state `ended` are supported for `meetingId`. **Meeting series**, **scheduled meetings** and `in-progress` **meeting instances** are not supported.",
"tags": [
"Chats"
],
"parameters": [
{
"name": "meetingId",
"in": "query",
"description": "A unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) to which the chats belong. The meeting ID of a scheduled [personal room](https://help.webex.com/en-us/article/nul0wut/Webex-Personal-Rooms-in-Webex-Meetings) meeting is not supported.",
"required": true,
"example": "0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044",
"schema": {
"type": "string"
}
},
{
"name": "max",
"in": "query",
"description": "Limit the maximum number of meeting chats in the response, up to 100.",
"example": "100",
"schema": {
"type": "number",
"default": 10
}
},
{
"name": "offset",
"in": "query",
"description": "Offset from the first result that you want to fetch.",
"example": "0",
"schema": {
"type": "number"
}
}
]
},
"delete": {
"responses": {
"400": {
"description": "Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further."
},
"401": {
"description": "Unauthorized: Authentication credentials were missing or incorrect."
},
"403": {
"description": "Forbidden: The request is understood, but it has been refused or access is not allowed."
},
"404": {
"description": "Not Found",
"headers": {},
"content": {}
},
"405": {
"description": "Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported."
},
"409": {
"description": "Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once."
},
"410": {
"description": "Gone: The requested resource is no longer available."
},
"415": {
"description": "Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported."
},
"423": {
"description": "Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again."
},
"428": {
"description": "Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded."
},
"429": {
"description": "Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made."
},
"500": {
"description": "Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support)."
},
"502": {
"description": "Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later."
},
"503": {
"description": "Service Unavailable: Server is overloaded with requests. Try again later."
},
"504": {
"description": "Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it."
}
},
"summary": "Delete Meeting Chats",
"operationId": "Delete Meeting Chats",
"description": "Deletes the meeting chats of a finished [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) specified by `meetingId`.\n\nUse this operation to delete the chats of a finished [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) when they are ready. Please note that only **meeting instances** in state `ended` are supported for `meetingId`. **Meeting series**, **scheduled meetings** and `in-progress` **meeting instances** are not supported.",
"tags": [
"Chats"
],
"parameters": [
{
"name": "meetingId",
"in": "query",
"description": "A unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) to which the chats belong. Meeting IDs of a scheduled [personal room](https://help.webex.com/en-us/article/nul0wut/Webex-Personal-Rooms-in-Webex-Meetings) meeting are not supported.",
"required": true,
"example": "0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044",
"schema": {
"type": "string"
}
}
]
}
},
"/meetingClosedCaptions": {
"get": {
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"application/json;charset=UTF-8": {
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClosedCaptionObject"
},
"description": "Closed caption array"
}
}
},
"example": {
"items": [
{
"id": "195d64646ad14be2924ea50f541fd91d",
"meetingId": "0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044",
"vttDownloadLink": "http://site-example.webex.com/v1/meetingClosedCaptions/195d64646ad14be2924ea50f541fd91d/download?format=vtt",
"txtDownloadLink": "http://site-example.webex.com/v1/meetingClosedCaptions/195d64646ad14be2924ea50f541fd91d/download?format=txt",
"start": "2022-04-18T01:46:29Z"
}
]
}
}
}
},
"400": {
"description": "Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further."
},
"401": {
"description": "Unauthorized: Authentication credentials were missing or incorrect."
},
"403": {
"description": "Forbidden: The request is understood, but it has been refused or access is not allowed."
},
"404": {
"description": "Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method."
},
"405": {
"description": "Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported."
},
"409": {
"description": "Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once."
},
"410": {
"description": "Gone: The requested resource is no longer available."
},
"415": {
"description": "Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported."
},
"423": {
"description": "Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again."
},
"428": {
"description": "Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded."
},
"429": {
"description": "Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made."
},
"500": {
"description": "Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support)."
},
"502": {
"description": "Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later."
},
"503": {
"description": "Service Unavailable: Server is overloaded with requests. Try again later."
},
"504": {
"description": "Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it."
}
},
"summary": "List Meeting Closed Captions",
"operationId": "getMeetingClosedCaptions",
"description": "Lists closed captions of a finished [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) specified by `meetingId`.\n\n* Closed captions are ready 15 minutes after the meeting is finished.\n\n* Only **meeting instances** in state `ended` are supported for `meetingId`. **Meeting series**, **scheduled meetings** and `in-progress` **meeting instances** are not supported.\n\n* Currently, a meeting may have only one closed caption associated with its `meetingId`. The response is a closed captions array, which may contain multiple values to allow for future expansion, but currently only one closed caption is included in the response.",
"tags": [
"Closed Captions"
],
"parameters": [
{
"name": "meetingId",
"in": "query",
"description": "Unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) which the closed captions belong to. This parameter only applies to ended meeting instances. It does not apply to meeting series, scheduled meetings or scheduled [personal room](https://help.webex.com/en-us/article/nul0wut/Webex-Personal-Rooms-in-Webex-Meetings) meetings.",
"required": true,
"example": "0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044",
"schema": {
"type": "string"
}
}
]
}
},
"/meetingClosedCaptions/{closedCaptionId}/snippets": {
"get": {
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"application/json;charset=UTF-8": {
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SnippetObject"
},
"description": "Closed caption snippet array"
}
}
},
"example": {
"items": [
{
"id": "195d64646ad14be2924ea50f541fd91d_00001",
"meetingId": "0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044",
"text": "Hello everyone",
"personName": "John Andersen",
"personEmail": "[email protected]",
"peopleId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY",
"start": "2019-11-01T12:30:05Z",
"offsetMillisecond": "0",
"durationMillisecond": "200",
"language": "en"
}
]
}
}
}
},
"400": {
"description": "Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further."
},
"401": {
"description": "Unauthorized: Authentication credentials were missing or incorrect."
},
"403": {
"description": "Forbidden: The request is understood, but it has been refused or access is not allowed."
},
"404": {
"description": "Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method."
},
"405": {
"description": "Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported."
},
"409": {
"description": "Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once."
},
"410": {
"description": "Gone: The requested resource is no longer available."
},
"415": {
"description": "Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported."
},
"423": {
"description": "Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again."
},
"428": {
"description": "Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded."
},
"429": {
"description": "Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made."
},
"500": {
"description": "Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support)."
},
"502": {
"description": "Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later."
},
"503": {
"description": "Service Unavailable: Server is overloaded with requests. Try again later."
},
"504": {
"description": "Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it."
}
},
"summary": "List Meeting Closed Caption Snippets",
"operationId": "getMeetingClosedCaptionsSnippets",
"description": "Lists snippets of a meeting closed caption specified by `closedCaptionId`.",
"tags": [
"Closed Captions"
],
"parameters": [
{
"name": "closedCaptionId",
"in": "path",
"description": "Unique identifier for the meeting closed caption which the snippets belong to.",
"required": true,
"example": "195d64646ad14be2924ea50f541fd91d",
"schema": {
"type": "string"
}
},
{
"name": "meetingId",
"in": "query",
"description": "Unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) which the closed caption snippets belong to. This parameter only applies to ended meeting instances. It does not apply to meeting series, scheduled meetings or scheduled [personal room](https://help.webex.com/en-us/article/nul0wut/Webex-Personal-Rooms-in-Webex-Meetings) meetings.",
"required": true,
"example": "0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044",
"schema": {
"type": "string"
}
}
]
}
},
"/meetingClosedCaptions/{closedCaptionId}/download": {
"get": {
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"text/vtt": {
"example": "WEBVTT\n\n1\n00:00:20.904 --> 00:00:24.564\nThis is an s sample closed caption snippet.\n\n2\n00:00:31.014 --> 00:00:33.744\nTesting out download closed captions.\n"
}
}
},
"400": {
"description": "Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further."
},
"401": {
"description": "Unauthorized: Authentication credentials were missing or incorrect."
},
"403": {
"description": "Forbidden: The request is understood, but it has been refused or access is not allowed."
},
"404": {
"description": "Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method."
},
"405": {
"description": "Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported."
},
"409": {
"description": "Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once."
},
"410": {
"description": "Gone: The requested resource is no longer available."
},
"415": {
"description": "Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported."
},
"423": {
"description": "Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again."
},
"428": {
"description": "Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded."
},
"429": {
"description": "Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made."
},
"500": {
"description": "Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support)."
},
"502": {
"description": "Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later."
},
"503": {
"description": "Service Unavailable: Server is overloaded with requests. Try again later."
},
"504": {
"description": "Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it."
}
},
"summary": "Download Meeting Closed Caption Snippets",
"operationId": "downloadTranscript",
"description": "Download meeting closed caption snippets from the meeting closed caption specified by `closedCaptionId` formatted either as a Video Text Track (.vtt) file or plain text (.txt) file.\n\n#### Request Header\n\n* `timezone`: *[Time zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) for time stamps in response body, defined in conformance with the [IANA time zone database](https://www.iana.org/time-zones). The default value is `UTC` if not specified.*",
"tags": [
"Closed Captions"
],
"parameters": [
{
"name": "closedCaptionId",
"in": "path",
"description": "Unique identifier for the meeting closed caption.",
"required": true,
"example": "195d64646ad14be2924ea50f541fd91d",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Format for the downloaded meeting closed caption snippets.",
"example": "vtt",
"schema": {
"type": "string",
"default": "vtt",
"enum": [
"vtt",
"txt"
]
}
},
{
"name": "meetingId",
"in": "query",
"description": "Unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) which the closed caption snippets belong to. This parameter only applies to meeting instances in the `ended` state. It does not apply to meeting series, scheduled meetings or scheduled [personal room](https://help.webex.com/en-us/article/nul0wut/Webex-Personal-Rooms-in-Webex-Meetings) meetings.",
"required": true,
"example": "870f51ff287b41be84648412901e0402_I_167427437874906709",
"schema": {
"type": "string"
}
},
{
"name": "timezone",
"in": "header",
"description": "e.g. UTC",
"required": false,
"schema": {
"type": "string"
},
"example": "UTC"
}
]
}
},
"/meetingInvitees": {
"get": {
"responses": {
"200": {
"description": "OK",
"headers": {
"Link": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/json;charset=UTF-8": {
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GetInviteeObject"
},
"description": "Array of meeting invitees."
}
}
},
"example": {
"items": [
{
"id": "870f51ff287b41be84648412901e0402_2628957",
"email": "[email protected]",
"displayName": "John Andersen",
"coHost": false,
"panelist": false,
"meetingId": "870f51ff287b41be84648412901e0402"
},
{
"id": "870f51ff287b41be84648412901e0402_2628962",
"email": "[email protected]",
"displayName": "Brenda Song",
"coHost": false,
"panelist": false,
"meetingId": "870f51ff287b41be84648412901e0402"
}
]
}
}
}
},
"400": {
"description": "Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further."
},
"401": {
"description": "Unauthorized: Authentication credentials were missing or incorrect."
},
"403": {
"description": "Forbidden: The request is understood, but it has been refused or access is not allowed."
},
"404": {
"description": "Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method."
},
"405": {
"description": "Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported."
},
"409": {
"description": "Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once."
},
"410": {
"description": "Gone: The requested resource is no longer available."
},
"415": {
"description": "Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported."
},
"423": {
"description": "Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again."
},
"428": {
"description": "Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded."
},
"429": {
"description": "Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made."
},
"500": {
# --- truncated at 32 KB (2369 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webex/refs/heads/main/openapi/webex-meeting-openapi.json