Cisco Catalyst Center Site Analytics API

The siteAnalytics API from Cisco Catalyst Center — 8 operation(s) for siteanalytics.

OpenAPI Specification

cisco-catalyst-center-siteanalytics-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open API Spec to get Site Analytics API
  description: 'These APIs return site level analytics data based on critical KPIs (Key Performanc Indicator). The KPIs are: Onboarding Attemts, Onboarding Duration, Roaming Attempts, Roaming Duration, Coverage and Connection Speed'
  contact:
    name: Cisco TAC World Wide
    url: https://www.cisco.com/c/en/us/support/web/tsd-cisco-worldwide-contacts.html
    email: tac@cisco.com
  license:
    name: Cisco Catalyst Center License
    url: https://www.cisco.com/c/en/us/products/collateral/software/dna-software-ebook-cte.html
  version: 1.0.0
  x-provenance:
    method: harvested
    authored_by: Cisco Catalyst Center
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    provider_published: true
    source_host: developer.cisco.com
    note: 27 Cisco-published OpenAPI 3.0 Assurance documents (185 operations). Ownership confirmed from the tac@cisco.com contact, the Cisco EULA terms-of-service URL and the Cisco Catalyst Center license block carried in each document.
  x-evidence:
  - type: source
    url: https://developer.cisco.com/docs/catalyst-center/
  - type: source
    url: https://developer.cisco.com/dnacenter/
servers:
- url: https://developer.cisco.com
tags:
- name: siteAnalytics
paths:
  /dna/data/api/v1/siteKpiSummaries:
    get:
      tags:
      - siteAnalytics
      summary: Get site analytics for the child sites of given parent site and other query parameters.
      description: "Returns site analytics for all child sites of given parent site. If no parent site is provided, then this API returns analytics for all children of Global site. Data is also filtered based on set of filters specified in query parameters. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time.\n\n\n**The process for using this API is as follows**:\n\n1). Make request to API to generate intended data.\n\n2). The success response will be a 202 HTTP code, with information regarding the generated taskId for this submitted request and the URL to poll the status of this task.\n\n\n Example: \"/dna/data/api/v1/assuranceTasks/bcbb2a8c-deae-4a3e-9459-0eb1dc12c191\"\n\n\n3). Once the task is completed, the response data will be retrievable using the same API, by providing the `taskId` query parameter:\n\nExample: GET /dna/data/api/v1/siteKpiSummaries?taskId=bcbb2a8c-deae-4a3e-9459-0eb1dc12c191.  \n\nWhen a taskId is provided, it is the ONLY query parameter that should be provided."
      operationId: readSiteKpiSummaries
      parameters:
      - name: X-CALLER-ID
        in: header
        description: 'Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It''s an optional header parameter that can be added to an API request.

          '
        required: false
        schema:
          type: string
          default: unknown
        example: ui:client360
      - name: taskId
        in: query
        description: 'used to retrieve asynchronously processed & stored data. When this parameter is used, the rest of the request params will be ignored.

          '
        schema:
          type: string
      - name: startTime
        in: query
        description: 'Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive.

          '
        schema:
          type: integer
          format: int64
        example: 1705348800000
      - name: endTime
        in: query
        description: 'End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive.

          '
        required: false
        schema:
          type: integer
          format: int64
        example: 1705435200000
      - name: siteHierarchy
        in: query
        description: 'The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`)


          This field supports wildcard asterisk (`*`) character search support. E.g. `*/San*, */San, /San*`


          Examples:


          `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested)


          `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: siteHierarchyId
        in: query
        description: 'The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`)


          This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*`


          Examples:


          `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested)


          `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: siteId
        in: query
        description: 'The UUID of the site. (Ex. `flooruuid`)


          Examples:


          `?siteId=id1` (single id requested)


          `?siteId=id1&siteId=id2&siteId=id3` (multiple ids requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: siteType
        in: query
        description: 'The type of the site. A site can be an area, building, or floor.


          Default when not provided will be `[floor,building,area]`


          Examples:


          `?siteType=area` (single siteType requested)


          `?siteType=area&siteType=building&siteType=floor` (multiple siteTypes requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
          default: floor,building,area
      - name: ssid
        in: query
        description: 'SSID is the name of wireless network to which client connects to. It is also referred to as WLAN ID - Wireless Local Area Network Identifier.

          Examples:

          `ssid=Alpha` (single ssid requested)

          `ssid=Alpha&ssid=Guest` (multiple ssid requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: band
        in: query
        description: 'WiFi frequency band that client or Access Point operates. Band value is represented in Giga Hertz - GHz

          Examples:

          `band=5` (single band requested)

          `band=2.4&band=6` (multiple band requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - '2.4'
            - '5'
            - '6'
      - name: failureCategory
        in: query
        description: 'Category of failure when a client fails to meet the threshold.

          Examples:

          `failureCategory=AUTH` (single failure category requested)

          `failureCategory=AUTH&failureCategory=DHCP` (multiple failure categories requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: failureReason
        in: query
        description: 'Reason for failure when a client fails to meet the threshold.

          Examples:

          `failureReason=MOBILITY_FAILURE` (single ssid requested)

          `failureReason=REASON_IPLEARN_CONNECT_TIMEOUT&failureReason=ST_EAP_TIMEOUT`   (multiple ssid requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: view
        in: query
        description: "The name of the View. Each view represents a specific data set. Please refer to the `SiteAnalyticsView` Model for supported views. View is predefined set of attributes supported by the API. Only the attributes related to the given view will be part of the API response along with default attributes. If multiple views are provided, then response will contain attributes from all those views. If no views are specified, all attributes will be returned.\n\n| View Name | Included Attributes |\n| --- | --- |\n| `coverage` | coverageAverage, coverageSuccessPercentage, coverageSuccessCount, coverageTotalCount, coverageFailureCount, coverageClientCount, coverageImpactedEntities, coverageFailureImpactedEntities, coverageFailureMetrics |\n| `onboardingAttempts` | onboardingAttemptsSuccessPercentage, onboardingAttemptsSuccessCount, onboardingAttemptsTotalCount, onboardingAttemptsFailureCount, onboardingAttemptsClientCount, onboardingAttemptsImpactedEntities, onboardingAttemptsFailureImpactedEntities, onboardingAttemptsFailureMetrics |\n| `onboardingDuration` | onboardingDurationAverage, onboardingDurationSuccessPercentage, onboardingDurationSuccessCount, onboardingDurationTotalCount, onboardingDurationFailureCount, onboardingDurationClientCount, onboardingDurationImpactedEntities, onboardingDurationFailureImpactedEntities, onboardingDurationFailureMetrics |\n| `roamingAttempts` | roamingAttemptsSuccessPercentage, roamingAttemptsSuccessCount, roamingAttemptsTotalCount, roamingAttemptsFailureCount, roamingAttemptsClientCount, roamingAttemptsImpactedEntities, roamingAttemptsFailureImpactedEntities, roamingAttemptsFailureMetrics |        \n| `roamingDuration` | roamingDurationAverage, roamingDurationSuccessPercentage, roamingDurationSuccessCount, roamingDurationTotalCount, roamingDurationFailureCount, roamingDurationClientCount, roamingDurationImpactedEntities, roamingDurationFailureImpactedEntities, roamingDurationFailureMetrics |\n| `connectionSpeed` | connectionSpeedAverage, connectionSpeedSuccessPercentage, connectionSpeedSuccessCount, connectionSpeedTotalCount, connectionSpeedFailureCount, connectionSpeedClientCount, connectionSpeedImpactedEntities, connectionSpeedFailureImpactedEntities, connectionSpeedFailureMetrics |\nExamples: `view=connectionSpeed` (single view requested) `view=roamingDuration&view=roamingAttempts` (multiple views requested)       \n"
        required: false
        style: form
        explode: true
        schema:
          maxItems: 5
          minItems: 1
          type: array
          items:
            type: string
            enum:
            - coverage
            - onboardingAttempts
            - onboardingDuration
            - roamingAttempts
            - roamingDuration
            - connectionSpeed
      - name: attribute
        in: query
        description: 'List of attributes related to site analytics. If these are provided, then only those attributes will be part of response along with the default attributes.

          Examples: `attribute=coverageAverage` (single attribute requested) `attribute=coverageFailureMetrics&attribute=coverageTotalCount` (multiple attributes requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - coverageAverage
            - coverageSuccessPercentage
            - coverageSuccessCount
            - coverageTotalCount
            - coverageFailureCount
            - coverageClientCount
            - coverageImpactedEntities
            - coverageFailureImpactedEntities
            - coverageFailureMetrics
            - onboardingAttemptsSuccessPercentage
            - onboardingAttemptsSuccessCount
            - onboardingAttemptsTotalCount
            - onboardingAttemptsFailureCount
            - onboardingAttemptsClientCount
            - onboardingAttemptsImpactedEntities
            - onboardingAttemptsFailureImpactedEntities
            - onboardingAttemptsFailureMetrics
            - onboardingDurationAverage
            - onboardingDurationSuccessPercentage
            - onboardingDurationSuccessCount
            - onboardingDurationTotalCount
            - onboardingDurationFailureCount
            - onboardingDurationClientCount
            - onboardingDurationImpactedEntities
            - onboardingDurationFailureImpactedEntities
            - onboardingDurationFailureMetrics
            - roamingAttemptsSuccessPercentage
            - roamingAttemptsSuccessCount
            - roamingAttemptsTotalCount
            - roamingAttemptsFailureCount
            - roamingAttemptsClientCount
            - roamingAttemptsImpactedEntities
            - roamingAttemptsFailureImpactedEntities
            - roamingAttemptsFailureMetrics
            - roamingDurationAverage
            - roamingDurationSuccessPercentage
            - roamingDurationSuccessCount
            - roamingDurationTotalCount
            - roamingDurationFailureCount
            - roamingDurationClientCount
            - roamingDurationImpactedEntities
            - roamingDurationFailureImpactedEntities
            - roamingDurationFailureMetrics
            - connectionSpeedAverage
            - connectionSpeedSuccessPercentage
            - connectionSpeedSuccessCount
            - connectionSpeedTotalCount
            - connectionSpeedFailureCount
            - connectionSpeedClientCount
            - connectionSpeedImpactedEntities
            - connectionSpeedFailureImpactedEntities
            - connectionSpeedFailureMetrics
            - apCount
      - name: limit
        in: query
        description: Maximum number of records to return
        schema:
          maximum: 20
          minimum: 1
          type: integer
          default: 10
      - name: offset
        in: query
        description: Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1.
        schema:
          minimum: 1
          type: integer
          default: 1
      - name: sortBy
        in: query
        description: Field name on which sorting needs to be done.
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
          - siteHierarchy
          - siteType
      - name: order
        in: query
        description: The sort order of the field ascending or descending.
        schema:
          type: string
          default: asc
          enum:
          - asc
          - desc
      responses:
        '200':
          description: Response containing site anlytics details for given filters
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/SiteAnalyticsListResponseModel'
        '202':
          description: Response model for asynchronous APIs to use for providing corresponding task information to API caller
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/asyncInfoContainer'
        '400':
          description: The client made a request that the server could not understand (for example, the request syntax is incorrect).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: The server could not fulfill the request due to internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        1XX:
          description: Informational Responses - The server received the request and sent an informational response.
        2XX:
          description: Successful Responses - The server received the client request, understood it, and accepted it.
        3XX:
          description: Redirection Messages - The client must take additional action to complete the request.
        4XX:
          description: Client Error Responses - The client request caused the error.
        5XX:
          description: Server Error Responses - The server failed to fulfill the request.
        default:
          description: Unexpected Error
  /dna/data/api/v1/siteKpiSummaries/count:
    get:
      tags:
      - siteAnalytics
      summary: Get the total number of site analytics records available for for given set of query parameters.
      description: Returns the total number of site analytics records available for for given set of query parameters. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time.
      operationId: readSiteKpiSummariesCount
      parameters:
      - name: X-CALLER-ID
        in: header
        description: 'Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It''s an optional header parameter that can be added to an API request.

          '
        required: false
        schema:
          type: string
          default: unknown
        example: ui:client360
      - name: startTime
        in: query
        description: 'Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive.

          '
        schema:
          type: integer
          format: int64
        example: 1705348800000
      - name: endTime
        in: query
        description: 'End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive.

          '
        required: false
        schema:
          type: integer
          format: int64
        example: 1705435200000
      - name: siteHierarchy
        in: query
        description: 'The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`)


          This field supports wildcard asterisk (`*`) character search support. E.g. `*/San*, */San, /San*`


          Examples:


          `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested)


          `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: siteHierarchyId
        in: query
        description: 'The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`)


          This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*`


          Examples:


          `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested)


          `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: siteId
        in: query
        description: 'The UUID of the site. (Ex. `flooruuid`)


          Examples:


          `?siteId=id1` (single id requested)


          `?siteId=id1&siteId=id2&siteId=id3` (multiple ids requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: siteType
        in: query
        description: 'The type of the site. A site can be an area, building, or floor.


          Default when not provided will be `[floor,building,area]`


          Examples:


          `?siteType=area` (single siteType requested)


          `?siteType=area&siteType=building&siteType=floor` (multiple siteTypes requested)

          '
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
          default: floor,building,area
      responses:
        '200':
          description: Reponse object containing total count of the records after applying requested filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountIntegerResponse'
        '400':
          description: The client made a request that the server could not understand (for example, the request syntax is incorrect).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: The server could not fulfill the request due to internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        1XX:
          description: Informational Responses - The server received the request and sent an informational response.
        2XX:
          description: Successful Responses - The server received the client request, understood it, and accepted it.
        3XX:
          description: Redirection Messages - The client must take additional action to complete the request.
        4XX:
          description: Client Error Responses - The client request caused the error.
        5XX:
          description: Server Error Responses - The server failed to fulfill the request.
        default:
          description: Unexpected Error
  /dna/data/api/v1/siteKpiSummaries/query:
    post:
      tags:
      - siteAnalytics
      summary: Get site analytics for the child sites of given parent site and other filters.
      description: "Returns site analytics for all child sites of given parent site. If no parent site is provided, then this API returns analytics for all children of Global site. Data is also filtered based on set of filters. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time.\n|Field Name | Description |\n| --- | --- |\n| `startTime` | start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive & the default is latest |\n| `endTime` | end time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive & the default is latest |\n| `filters`| used to define one or more conditions. Only the data that satisfy these filter conditions will be taken into consideration during the site analytics calculation.|\n| `attributes` | If these are provided, then only those attributes will be part of response along with the default attributes. Please refer to the `SiteAnalyticsResponseAttribute` Model for supported attributes.|\n| `views` | View is predefined set of attributes supported by the API. Only the attributes related to the given view will be part of the API response along with default attributes. If multiple views are provided, then response will contain attributes from all those views. Please refer to the `SiteAnalyticsView` Model for supported attributes. If no views are specified, all attributes will be returned.  |\n| `page`| contains **limit, offset, sortBy, order** fields. *limit* - Number of records to be returned in response, *offset* - starting offset of data,  *sortBy* - sort key name, *order* - order to sort        \n\n**The process for using this API is as follows**:\n\n1). Make request to API to generate intended data.\n\n2). The success response will be a 202 HTTP code, with information regarding the generated taskId for this submitted request and the URL to poll the status of this task.\n\n\n Example: \"/dna/data/api/v1/assuranceTasks/bcbb2a8c-deae-4a3e-9459-0eb1dc12c191\"\n\n\n3). Once the task is completed, the response data will be retrievable using the GET API: `GET /dna/data/api/v1/siteKpiSummaries` by providing the `taskId` query parameter\n\n  Example:\n  GET /dna/data/api/v1/siteKpiSummaries?taskId=bcbb2a8c-deae-4a3e-9459-0eb1dc12c191.  \n\nWhen a taskId is provided, it is the ONLY query parameter that should be provided.        "
      operationId: readSiteKpiSummariesWithFilters
      parameters:
      - name: X-CALLER-ID
        in: header
        description: 'Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It''s an optional header parameter that can be added to an API request.

          '
        required: false
        schema:
          type: string
          default: unknown
        example: ui:client360
      requestBody:
        description: Payload which contains start/end times and filters to retrive site analytics.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteAnalyticsQueryRequest'
            examples:
              Example1:
                $ref: '#/components/examples/SiteAnalyticsQueryRequestExample1'
        required: true
      responses:
        '202':
          description: Response model for asynchronous APIs to use for providing corresponding task information to API caller
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/asyncInfoContainer'
        '400':
          description: The client made a request that the server could not understand (for example, the request syntax is incorrect).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: The server could not fulfill the request due to internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        1XX:
          description: Informational Responses - The server received the request and sent an informational response.
        2XX:
          description: Successful Responses - The server received the client request, understood it, and accepted it.
        3XX:
          description: Redirection Messages - The client must take additional action to complete the request.
        4XX:
          description: Client Error Responses - The client request caused the error.
        5XX:
          description: Server Error Responses - The server failed to fulfill the request.
        default:
          description: Unexpected Error
  /dna/data/api/v1/siteKpiSummaries/query/count:
    post:
      tags:
      - siteAnalytics
      summary: Get the total number of site analytics records available for for given set of filters.
      description: "Returns the total number of site analytics records available for for given set of filters. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time.\n\n **The input payload contains the following fields**\n\n|Field Name | Description |\n| --- | --- |\n| `startTime` | start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive & the default is latest |\n| `endTime` | end time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive & the default is latest |\n| `filters`| used to define one or more conditions. Only the data that satisfy these filter conditions will be taken into consideration during the site analytics calculation.|"
      operationId: readSiteKpiSummariesCountWithFilters
      parameters:
      - name: X-CALLER-ID
        in: header
        description: 'Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It''s an optional header parameter that can be added to an API request.

          '
        required: false
        schema:
          type: string
          default: unknown
        example: ui:client360
      requestBody:
        description: Payload which contains start/end times and filters to retrive site analytics count.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteAnalyticsQueryCountRequest'
            examples:
              Example1:
                $ref: '#/components/examples/SiteAnalyticsQueryCountRequestExample1'
        required: true
      responses:
        '200':
          description: Reponse object containing total count of the records after applying requested filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountIntegerResponse'
        '400':
          description: The client made a request that the server could not understand (for example, the request syntax is incorrect).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: The server could not fulfill the request due to internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        1XX:
          description: Informational Responses - The server received the request and sent an informational response.
        2XX:
          description: Successful Responses - The server received the client request, understood it, and accepted it.
        3XX:
          description: Redirection Messages - The client must take additional action to complete the request.
        4XX:
          description: Client Error Responses - The client request caused the error.
        5XX:
          description: Server Error Responses - The server failed to fulfill the request.
        default:
          description: Unexpected Error
  /dna/data/api/v1/siteKpiSummaries/{id}:
    get:
      tags:
      - siteAnalytics
      summary: Get site analytics for one site.
      description: "Returns site analytics for the given site. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time.\n\n**The process for using this API is as follows**:\n\n1). Make request to API to generate intended data.\n\n2). The success response will be a 202 HTTP code, with information regarding the generated taskId for this submitted request and the URL to poll the status of this task.\n\n\n Example: \"/dna/data/api/v1/assuranceTasks/bcbb2a8c-deae-4a3e-9459-0eb1dc12c191\"\n\n\n3). Once the task is completed, the response data will be retrievable using the same API, by providing the `taskId` query parameter:\n\nExample: GET /dna/data/api/v1/siteKpiSummaries/243faba9-7f9e-4f2d-9914-97c2756754cb?taskId=bcbb2a8c-deae-4a3e-9459-0eb1dc12c191.  \n\nWhen a taskId is provided, it is the ONLY query parameter that should be provided."
      operationId: readSiteKpiSummariesById
      parameters:
      - name: X-CALLER-ID
        in: header
        description: 'Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It''s an optional header parameter that can be added to an API request.

          '
        required: false
        schema:
          type: string
          default: unknown
        example: ui:client360
      - name: id
        in: path
        description: The Site UUID
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: taskId
        in: query
        description: 'used to retrieve asynchronously processed & stored data. When t

# --- truncated at 32 KB (99 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cisco-catalyst-center/refs/heads/main/openapi/cisco-catalyst-center-siteanalytics-api-openapi.yml