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.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