Webex Data Sources API

The Data Sources API from Webex — 5 operation(s) for data sources.

OpenAPI Specification

webex-data-sources-api-openapi.yml Raw ↑
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