openapi: 3.2.0
info:
title: Webex Data Sources API
version: 1.0.0
description: 'Operations tagged Data Sources across 3 of this provider''s published API definitions: webex-admin-openapi.json,
webex-contact-center-openapi.json, webex-data-sources-api-openapi.yml. Each path carries the servers of the definition
it was published in.'
x-provenance:
method: harvested
authored_by: Cisco Webex
harvested_by: API Evangelist
harvested_on: '2026-08-19'
first_party: true
note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
provider_published: true
derived_view: Per-tag view of webex-admin-openapi.json, the provider's source document. Operations and schemas are the
provider's, unmodified; only the partition is ours.
derived_from: webex-admin-openapi.json
operation_coverage: 7/7
x-evidence:
- type: source
url: https://github.com/webex/webex-openapi-specs/blob/main/public-spec/webex-admin.json
- type: raw
url: https://raw.githubusercontent.com/webex/webex-openapi-specs/main/public-spec/webex-admin.json
tags:
- name: Data Sources
paths:
/dataSources:
post:
responses:
'200':
content:
application/json:
examples:
response:
value:
audience: MedDocVirtualAgent
errorMessage: down for maintenance
id: f29bb291-5db0-411b-834a-e64f8dee0658
nonce: jeieu38udue83u398
schemaId: 78efc775-dccb-45ca-9acf-989a4a59f788
status: active
subject: callAudioData
tokenLifetimeMinutes: 60
url: https://www.byods.com/service1
schema:
properties:
audience:
description: The JWT `aud` (audience) claim. This is usually the DAP application's name.
type: string
errorMessage:
description: The error message shown in Control Hub when `status` is set to `disabled`.
type: string
id:
description: The data source ID.
type: string
nonce:
description: A unique nonce used when encrypting the JWT.
type: string
schemaId:
description: The schema ID used for the data exchange.
type: string
status:
description: 'The data source status: `active` or `disabled`.'
type: string
subject:
description: The JWT `sub` (subject) claim. This usually describes the application's function.
type: string
tokenLifetimeMinutes:
description: The JWT lifetime, in minutes. Before the token expires, provide a new token or Webex will
stop delivering data.
type: number
url:
description: The URL of the endpoint where Webex will send the data.
type: string
type: object
description: OK
headers: {}
'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.'
tags:
- Data Sources
description: 'Register a data source with the Webex BYODS system. Authenticate using a Service App with the `spark-admin:datasource_write`
scope.
Schema IDs determine the types of data Webex sends to the DAP and the expected responses. Use the Data Source Schemas
endpoints to inspect the available schemas.'
operationId: Register a Data Source
requestBody:
content:
application/json:
schema:
example:
audience: MedDocVirtualAgent
nonce: jeieu38udue83u398
schemaId: 78efc775-dccb-45ca-9acf-989a4a59f788
subject: callAudioData
tokenLifetimeMinutes: 60
url: https://www.byods.com/service1
properties:
audience:
description: The JWT `aud` (audience) claim. This is usually the DAP application's name.
type: string
nonce:
description: A unique nonce used when encrypting the JWT.
type: string
schemaId:
description: The schema ID used for the data exchange.
type: string
subject:
description: The JWT `sub` (subject) claim. This usually describes the application's function.
type: string
tokenLifetimeMinutes:
description: The JWT lifetime, in minutes. Before the token expires, provide a new token or Webex will stop
delivering data. Must be 1440 or less.
type: number
url:
description: The URL of the endpoint where Webex will send the data.
type: string
type: object
summary: Register a Data Source
/dataSources/:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
items:
- DataSource: ''
applicationId: Cf2e954e018f2de8c1403e2618323551df65
createdAt: '2022-01-01T00:00:00Z'
createdBy: 3e4d3b27-1bf1-4916-8d0c-d27fd765fa52
jwsToken: eyJraWQiOiIxOWFmMzYxYS0zYWI0LTU0NzEtYTViMC03MmQxODQyOTRjMmYiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJNeUFwcDIiLCJzdWIiOiJNeUFwcHNQdXJwb3NlMiIsImlzcyI6Imh0dHBzOlwvXC9pZGJyb2tlci53ZWJleC5jb21cL2lkYiIsImV4cCI6MTcyOTIyMDUxNSwiY29tLmNpc2NvLmRhdGFzb3VyY2UudXJsIjoiaHR0cHM6XC9cL3NjaGlmZmVydC5tZVwvZHMyIiwiY29tLmNpc2NvLmRhdGFzb3VyY2Uuc2NoZW1hLnV1aWQiOiI3OGVmYzc3NS1kY2NiLTQ1Y2EtOWFjZi05ODlhNGE1OWY3ODgiLCJpYXQiOjE3MjkyMTMzMTUsImNvbS5jaXNjby5vcmcudXVpZCI6ImNlODYxZmJhLTZlMmYtNDlmOS05YTg0LWIzNTQwMDhmYWM5ZSIsImp0aSI6IjEyMzQ1NiJ9.QxWYQCXOTLTNBx1Mr8qtd1rpx5uqHYcow1l_oiqMQ_2LorPor3wnEW9_dmMFUs-yAizpayTB4XJpU0ga9E-GY3XaiXz4CGW0G5f3566j3AvmfviMVCFgQFnMd0LpwgPIHhQGX-z2Y6KgzjTCLqm76WpSylAomOPEpgs8dqChfuC9aVHyuB2FfV77J265q-pLp8RSJa_EoSZ_05tpQHxxrDrB-qnn-WQoCFFlb88f3kKdyzPqQhvdWQuouyaP4YyMd_C8a6N_F1dk3cBUjSOtnHDm9WoGwYd8wUcjtZVk5g-z7coc656OooRvDQ0-JRdh7TVUfkzdQS79d4UfmRAhYQ
orgId: 63b02f90-9cc6-43b8-aa6d-cad425ac554c
schema:
properties:
items:
items: {}
type: array
type: object
description: OK
headers: {}
'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.'
tags:
- Data Sources
description: Lists all data sources registered by the Service App. Requires the `spark-admin:datasource_read` scope.
operationId: Retrieve All Data Sources
summary: Retrieve All Data Sources
/dataSources/schemas:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
items:
- appType: serviceApp
createdAt: '2024-09-05T01:35:04.772Z'
id: 78efc775-dccb-45ca-9acf-989a4a59f788
protocol: gRPC
serviceType: webService
url: /path/to/definition/file3
schema:
properties:
items:
items: {}
type: array
type: object
description: OK
headers: {}
'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.'
tags:
- Data Sources
description: Lists the available data source schemas. A valid API access token is required, but no specific scope is
needed.
operationId: Retrieve Data Source Schemas
summary: Retrieve Data Source Schemas
/dataSources/schemas/{schemaId}:
get:
parameters:
- description: The unique identifier for the schema.
example: 78efc775-dccb-45ca-9acf-989a4a59f788
in: path
name: schemaId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
appType: serviceApp
createdAt: '2024-09-05T01:35:04.772Z'
id: 78efc775-dccb-45ca-9acf-989a4a59f788
protocol: gRPC
serviceType: webService
url: /path/to/definition/file3
schema:
properties:
appType:
description: The application type used for the schema.
type: string
createdAt:
description: The date and time when the schema was created.
type: string
id:
description: The schema ID.
type: string
protocol:
description: The connection protocol used by the schema.
type: string
serviceType:
description: The service type, such as web or contact center.
type: string
url:
description: The URL where the schema can be inspected.
type: string
type: object
description: OK
headers: {}
'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.'
tags:
- Data Sources
description: Retrieves details for a specific data source schema by schema ID. A valid API access token is required,
but no specific scope is needed.
operationId: Retrieve Details of a Specific Data Source Schema
summary: Retrieve Details of a Specific Data Source Schema
/dataSources/{dataSourceId}:
delete:
parameters:
- description: The unique identifier for the data source.
example: f29bb291-5db0-411b-834a-e64f8dee0658
in: path
name: dataSourceId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'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.'
tags:
- Data Sources
description: 'Deletes a data source by ID.
Specify the data source ID in the `dataSourceId` URI parameter.'
operationId: Delete a Data Source
summary: Delete a Data Source
get:
parameters:
- description: The unique identifier for the data source.
example: f29bb291-5db0-411b-834a-e64f8dee0658
in: path
name: dataSourceId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
audience: MedDocVirtualAgent
errorMessage: down for maintenance
id: f29bb291-5db0-411b-834a-e64f8dee0658
nonce: jeieu38udue83u398
schemaId: 78efc775-dccb-45ca-9acf-989a4a59f788
status: active
subject: callAudioData
tokenLifetimeMinutes: 60
url: https://www.byods.com/service1
schema:
properties:
audience:
description: The JWT `aud` (audience) claim. This is usually the DAP application's name.
type: string
errorMessage:
description: The error message shown in Control Hub when `status` is set to `disabled`.
type: string
id:
description: The data source ID.
type: string
nonce:
description: A unique nonce used when encrypting the JWT.
type: string
schemaId:
description: The schema ID used for the data exchange.
type: string
status:
description: 'The data source status: `active` or `disabled`.'
type: string
subject:
description: The JWT `sub` (subject) claim. This usually describes the application's function.
type: string
tokenLifetimeMinutes:
description: The JWT lifetime, in minutes. Before the token expires, provide a new token or Webex will
stop delivering data.
type: number
url:
description: The URL of the endpoint where Webex will send the data.
type: string
type: object
description: OK
headers: {}
'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.'
tags:
- Data Sources
description: Retrieves details for a data source by ID. Use a Service App token with the `spark-admin:datasource_read`
scope.
operationId: Retrieve Data Source Details
summary: Retrieve Data Source Details
put:
parameters:
- description: The unique identifier for the data source.
example: f29bb291-5db0-411b-834a-e64f8dee0658
in: path
name: dataSourceId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
audience: MedDocVirtualAgent
errorMessage: down for maintenance
id: f29bb291-5db0-411b-834a-e64f8dee0658
nonce: jeieu38udue83u398
schemaId: 78efc775-dccb-45ca-9acf-989a4a59f788
status: active
subject: callAudioData
tokenLifetimeMinutes: 60
url: https://www.byods.com/service1
schema:
properties:
audience:
description: The JWT `aud` (audience) claim. This is usually the DAP application's name.
type: string
errorMessage:
description: The error message shown in Control Hub when `status` is set to `disabled`.
type: string
id:
description: The data source ID.
type: string
nonce:
description: A unique nonce used when encrypting the JWT.
type: string
schemaId:
description: The schema ID used for the data exchange.
type: string
status:
description: 'The data source status: `active` or `disabled`.'
type: string
subject:
description: The JWT `sub` (subject) claim. This usually describes the application's function.
type: string
tokenLifetimeMinutes:
description: The JWT lifetime, in minutes. Before the token expires, provide a new token or Webex will
stop delivering data.
type: number
url:
description: The URL of the endpoint where Webex will send the data.
type: string
type: object
description: OK
headers: {}
'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: 'Unsupporte
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webex/refs/heads/main/openapi/webex-data-sources-api-openapi.yml