Webex Messaging
Webex Messaging API for creating and managing rooms, messages, attachments, teams, memberships, and real-time collaboration. Supports text, markdown, file sharing, and webhook event subscriptions.
Webex Messaging API for creating and managing rooms, messages, attachments, teams, memberships, and real-time collaboration. Supports text, markdown, file sharing, and webhook event subscriptions.
{
"openapi": "3.0.0",
"info": {
"title": "Webex Messaging",
"version": "1.0.0",
"description": "The Webex Messaging APIs offer robust programmatic access to messaging features within Webex, including sending and receiving messages, managing spaces, memberships, attachments, and moderating content. These APIs enable integration with bots, workflow automation, notification systems, and custom messaging solutions to enhance team collaboration and productivity. Use cases include building chatbots, integrating with ticketing or alerting platforms, automating onboarding flows, and creating custom collaboration experiences tailored to business needs."
},
"tags": [],
"paths": {
"/attachment/actions": {
"post": {
"responses": {
"202": {
"description": "Accepted",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AttachmentActivity"
},
"example": {
"id": "Y2lzY29zcGFyazovL3VzL0NBTExTLzU0MUFFMzBFLUUyQzUtNERENi04NTM4LTgzOTRDODYzM0I3MQo",
"personId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZ",
"roomId": "L3VzL1BFT1BMRS80MDNlZmUwNy02Yzc3LTQyY2UtOWI",
"type": "submit",
"messageId": "GFyazovL3VzL1BFT1BMRS80MDNlZmUwNy02Yzc3LTQyY2UtOWI4NC",
"inputs": {
"Name": "John Andersen",
"Url": "https://example.com",
"Email": "[email protected]",
"Tel": "+1 408 555 7209"
},
"created": "2016-05-10T19:41:00.100Z"
}
}
}
},
"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",
"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": "Create an Attachment Action",
"operationId": "Create an Attachment Action",
"description": "Create a new attachment action.",
"tags": [
"Attachment Actions"
],
"parameters": [],
"requestBody": {
"content": {
"application/json": {
"example": {
"type": "submit",
"messageId": "GFyazovL3VzL1BFT1BMRS80MDNlZmUwNy02Yzc3LTQyY2UtOWI4NC",
"inputs": {
"Name": "John Andersen",
"Url": "https://example.com",
"Email": "[email protected]",
"Tel": "+1 408 555 7209"
}
},
"schema": {
"$ref": "#/components/schemas/SubmitCardAction"
}
}
}
}
}
},
"/attachment/actions/{id}": {
"get": {
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AttachmentActivity"
},
"example": {
"id": "Y2lzY29zcGFyazovL3VzL0NBTExTLzU0MUFFMzBFLUUyQzUtNERENi04NTM4LTgzOTRDODYzM0I3MQo",
"personId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZ",
"roomId": "L3VzL1BFT1BMRS80MDNlZmUwNy02Yzc3LTQyY2UtOWI",
"type": "submit",
"messageId": "GFyazovL3VzL1BFT1BMRS80MDNlZmUwNy02Yzc3LTQyY2UtOWI4NC",
"inputs": {
"Name": "John Andersen",
"Url": "https://example.com",
"Email": "[email protected]",
"Tel": "+1 408 555 7209"
},
"created": "2016-05-10T19:41:00.100Z"
}
}
}
},
"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": "Get Attachment Action Details",
"operationId": "Get Attachment Action Details",
"description": "Shows details for a attachment action, by ID.\n\nSpecify the attachment action ID in the `id` URI parameter.",
"tags": [
"Attachment Actions"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "A unique identifier for the attachment action.",
"required": true,
"example": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTE",
"schema": {
"type": "string"
}
}
]
}
},
"/room/linkedFolders": {
"get": {
"responses": {
"200": {
"description": "OK",
"headers": {
"Link": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ECMFolderCollectionResponse"
},
"example": {
"items": [
{
"id": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMl9hL1RBQlMvZDg1ZTYwNj",
"roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"roomType": "group",
"driveId": "123",
"itemId": "456",
"defaultFolder": "false",
"displayName": "OneDrive folder for shared documents",
"contentUrl": "https://cisco-my.sharepoint.com/personal/naalluri/123",
"creatorId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY",
"created": "2015-10-18T14:26:16.203Z"
}
]
}
}
}
},
"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 ECM folder",
"operationId": "List ECM folder",
"description": "Lists the ECM folder of a room specified by the `roomId` query parameter.",
"tags": [
"ECM folder linking"
],
"parameters": [
{
"name": "roomId",
"in": "query",
"description": "ID of the room for which to list the ECM folder.",
"required": true,
"example": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"schema": {
"type": "string"
}
}
]
},
"post": {
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ECMFolder"
},
"example": {
"id": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMl9hL1RBQlMvZDg1ZTYwNj",
"roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"roomType": "group",
"driveId": "123",
"itemId": "456",
"defaultFolder": "false",
"displayName": "OneDrive folder for shared documents",
"contentUrl": "https://cisco-my.sharepoint.com/personal/naalluri/123",
"creatorId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY",
"created": "2015-10-18T14:26:16.203Z"
}
}
}
},
"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": "Create an ECM folder configuration",
"operationId": "Create an ECM folder configuration",
"description": "Adds an existing ECM folder to a room as (default or reference) file storage. There is no data validation happening for the request. Please ensure the correct `driveId` and `itemId.` These can be collected from the MS Graph API. The `contentUrl` and `displayName` are used only for user convenience. The folder will be configured with the MS folder name as `displayName`, and the `contentURL` may be updated or corrected as needed. To assess final configuration, please make a GET request on the linkedFolder.",
"tags": [
"ECM folder linking"
],
"parameters": [],
"requestBody": {
"content": {
"application/json": {
"example": {
"roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"contentUrl": "https://cisco-my.sharepoint.com/personal/naalluri/123",
"displayName": "OneDrive folder for shared documents",
"driveId": "123",
"itemId": "456",
"defaultFolder": "false"
},
"schema": {
"type": "object",
"required": [
"roomId",
"contentUrl",
"displayName",
"driveId",
"itemId",
"defaultFolder"
],
"properties": {
"roomId": {
"type": "string",
"example": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"description": "A unique identifier for the room."
},
"contentUrl": {
"type": "string",
"example": "https://cisco-my.sharepoint.com/personal/naalluri/123",
"description": "URL of the ECM folder."
},
"displayName": {
"type": "string",
"example": "OneDrive folder for shared documents",
"description": "This should match the folder name in the ECM backend."
},
"driveId": {
"type": "string",
"example": "123",
"description": "Sharepoint or OneDrive drive id. It can be queried via MS Graph APIs."
},
"itemId": {
"type": "string",
"example": "456",
"description": "Sharepoint or OneDrive item id. It can be queried via MS Graph APIs."
},
"defaultFolder": {
"type": "string",
"example": "false",
"description": "Makes the folder the default storage for the space."
}
}
}
}
}
}
}
},
"/room/linkedFolders/{id}": {
"get": {
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ECMFolder"
},
"example": {
"id": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMl9hL1RBQlMvZDg1ZTYwNj",
"roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"roomType": "group",
"driveId": "123",
"itemId": "456",
"defaultFolder": "false",
"displayName": "OneDrive folder for shared documents",
"contentUrl": "https://cisco-my.sharepoint.com/personal/naalluri/123",
"creatorId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY",
"created": "2015-10-18T14:26:16.203Z"
}
}
}
},
"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": "Get ECM Folder Details",
"operationId": "Get ECM Folder Details",
"description": "Get details for a room ECM folder with the specified folder id.",
"tags": [
"ECM folder linking"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "The unique identifier for the folder.",
"required": true,
"example": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMl9hL1RBQlMvZDg1ZTYwNj",
"schema": {
"type": "string"
}
}
]
},
"put": {
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ECMFolder"
},
"example": {
"id": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMl9hL1RBQlMvZDg1ZTYwNj",
"roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"roomType": "group",
"driveId": "123",
"itemId": "456",
"defaultFolder": "false",
"displayName": "OneDrive folder for shared documents",
"contentUrl": "https://cisco-my.sharepoint.com/personal/naalluri/123",
"creatorId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY",
"created": "2015-10-18T14:26:16.203Z"
}
}
}
},
"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": "Update an ECM Linked Folder",
"operationId": "Update an ECM Linked Folder",
"description": "Updates the configuration of the specified Room folder. There is no data validation happening for the request. Please ensure the correct `driveId` and `itemId.` These can be collected from the MS Graph API. The `contentUrl` and `displayName` are used only for user convenience. The folder will be configured with the MS folder name as `displayName`, and the `contentURL` may be updated or corrected as needed. To assess final configuration, please make a GET request on the linkedFolder.",
"tags": [
"ECM folder linking"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "The unique identifier for the room folder.",
"required": true,
"example": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMl9hL1RBQlMvZDg1ZTYwNj",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"example": {
"roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"contentUrl": "https://cisco-my.sharepoint.com/personal/naalluri/123",
"displayName": "OneDrive folder for shared documents",
"driveId": "123",
"itemId": "456",
"defaultFolder": "false"
},
"schema": {
"type": "object",
"required": [
"roomId",
"contentUrl",
"displayName",
"driveId",
"itemId",
"defaultFolder"
],
"properties": {
"roomId": {
"type": "string",
"example": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
"description": "ID of the room that contains the room tab in question."
},
"contentUrl": {
"type": "string",
"example": "https://cisco-my.sharepoint.com/personal/naalluri/123",
"description": "Content URL of the folder."
# --- truncated at 32 KB (781 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webex/refs/heads/main/openapi/webex-messaging-openapi.json