openapi: 3.0.0
info:
title: Webex Admin Address Book Data Sources API
version: 1.0.0
description: The Webex Admin APIs provide comprehensive programmatic access to administrative functions for managing Webex organizations, users, licenses, and settings. These APIs enable automation of user provisioning, license assignment, compliance management, and audit event retrieval. Administrators can integrate with enterprise identity systems, enforce security policies, monitor usage, and streamline onboarding/offboarding processes. The APIs support granular control over organizational resources, making them ideal for large-scale deployments and custom admin tooling.
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 audience field in the JWT token. Usually, the DAPs app name.
type: string
errorMessage:
description: Error Message shown in Control Hub when status is set to `disabled`.
type: string
id:
description: The Data Source Id.
type: string
nonce:
description: Unique nonce used in the encryption of the JWT token.
type: string
schemaId:
description: The schema id used for the data exchange.
type: string
status:
description: The status of the Data Source; `active` or `disabled`
type: string
subject:
description: Rhe subject field in the JWT token. Usually, an indication of the app's function
type: string
tokenLifetimeMinutes:
description: The validity of the created token in minutes. Before the token expiration time, a new token must be provided, or Webex will stop delivering data after the token expiration
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 your data source to the Webex BYODS system. Authentication must happen via a Service App with the scope `spark-admin:datasource_write`.
The schema IDs determine what data types are sent from Webex to the DAP and the expected responses. The schemas can be inspected on developer.webex.com.'
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 audience field in the JWT token. Usually, the DAPs app name.
type: string
nonce:
description: Unique nonce used in the encryption of the JWT token.
type: string
schemaId:
description: The schema id used for the data exchange.
type: string
subject:
description: Rhe subject field in the JWT token. Usually, an indication of the app's function
type: string
tokenLifetimeMinutes:
description: The validity of the created token in minutes. Before the token expiration time, a new token must be provided, or Webex will stop delivering data after the token expiration. Must be equal or less to 1440.
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: Show all data sources registered for this Service App with the scope `spark-admin:datasource_read`.
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: Show available schemas. No specific scope is needed to retrieve the dataSource schemas, but a valid API token should be presented.
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 app type used for this schema
type: string
createdAt:
description: datetime when the schema was created
type: string
id:
description: The Schema Id
type: string
protocol:
description: The connection protocol for this schema
type: string
serviceType:
description: The service type web or contact center
type: string
url:
description: the URL location where this 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: Retrieve details of a specific data source schema by schema id. No specific scope is needed to retrieve the dataSource schemas, but a valid API token should be presented.
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 dataSource.
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: 'Delete a Data Source, by Data Source ID.
Specify the Data Source ID in the `dataSourceId` parameter in the URI.'
operationId: Delete a Data Source
summary: Delete a Data Source
get:
parameters:
- description: The unique identifier for the dataSource.
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 audience field in the JWT token. Usually, the DAPs app name.
type: string
errorMessage:
description: Error Message shown in Control Hub when status is set to `disabled`.
type: string
id:
description: The Data Source Id.
type: string
nonce:
description: Unique nonce used in the encryption of the JWT token.
type: string
schemaId:
description: The schema id used for the data exchange.
type: string
status:
description: The status of the Data Source; `active` or `disabled`
type: string
subject:
description: Rhe subject field in the JWT token. Usually, an indication of the app's function
type: string
tokenLifetimeMinutes:
description: The validity of the created token in minutes. Before the token expiration time, a new token must be provided, or Webex will stop delivering data after the token expiration
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: 'Show details for a data source, by dataSource id.
To see details for a data source, use the 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 audience field in the JWT token. Usually, the DAPs app name.
type: string
errorMessage:
description: Error Message shown in Control Hub when status is set to `disabled`.
type: string
id:
description: The Data Source Id.
type: string
nonce:
description: Unique nonce used in the encryption of the JWT token.
type: string
schemaId:
description: The schema id used for the data exchange.
type: string
status:
description: The status of the Data Source; `active` or `disabled`
type: string
subject:
description: Rhe subject field in the JWT token. Usually, an indication of the app's function
type: string
tokenLifetimeMinutes:
description: The validity of the created token in minutes. Before the token expiration time, a new token must be provided, or Webex will stop delivering data after the token expiration
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':
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webex/refs/heads/main/openapi/webex-data-sources-api-openapi.yml