openapi: 3.2.0
info:
title: Intelligent Capture (ICAP) Provisioning Direct Deploy API
description: "APIs to manage Catalyst Center Assurance Intelligent Capture (ICAP) configurations. Catalyst Center ICAP is a suite of features for troubleshooting client onboarding issues by capturing client Wi-Fi packets and statistics for offline analysis.\n\n**Configurations supported include**\n\n|Configuration Type | Description |\n| --- | --- |\n| `ANOMALY` | This proactively monitors client onboarding issues. When an issue occurs, the AP device sends a client anomaly event, including a set of client Wi-Fi packets from the time of the event. |\n| `FULL` | This is to capture all Wi-Fi packets to and from a specific client MAC address. |\n| `ONBOARDING` | This captures client onboarding packets and client RF statistics with a 5-second granularity. |\n| `OTA` | This captures all Wi-Fi packets on a specific Wi-Fi band and channel. This feature can be used on up to two neighboring AP devices of an AP experiencing client-serving band or channel issues. |\n| `RFSTATS` | This captures both client and AP radio RF statistics with a 30-second granularity. |\n| `SPECTRUM` | This captures Wi-Fi Layer 2 signal strength and sources of interference across all supported Wi-Fi bands and channels. |\n\n**ICAP Configuration limitations**\n* The minimum duration for FULL packet capture is 30 minutes, and the maximum is 8 hours.\n* The duration for OTA packet capture is 15 minutes\n* ONBOARDING packet capture supports 16 unique client MAC addresses with up to 3 WLCs for each client MAC address. The duration of capture can be set between 30 minutes and 8 hours.\n* SPECTRUM settings can be enabled on a maximum of 10 APs. The duration of SPECTRUM data is 10 minutes.\n* RFSTATS settings \n * At AP level, the feature can be enabled on a maximum of 1000 APs\n * At WLC level, the feature can be enabled only if Catalyst Center does not have more than 1,000 managed APs.\n * Mixture of AP and WLC level configuration is not supported.\n* OTA settings\n * Can have up to 2 APs with both support radio role sniffer, but 1 AP which supports AP mode sniffer. Consult AP hardware/software documetation about packet sniffing limitations. Minimum required AP software is IOSxe 17.11. AP running AireOS is not supported. AP must be in client-serving mode prior to enabling OTA on the AP. Changing an AP from client-serving to AP mode sniffer is not supported when the AP supports radio role sniffer. Most AP platforms support radio role sniffer at radio slot 0. The radio must be admin/oper UP and in client-serving mode prior to using ICAP OTA on the AP radio. Changing 2 or more radios of 1 AP from client-serving mode to radio role sniffer is not supported. Enabling OTA is to change AP from client-serving to sniffer, which will force all clients at the radio to roam to neighboring APs. Client network service experiences will be impacted.\n \n **WARNING:** Enalbing OTA will reset AP radio (or the AP device if OTA mode is \"AP\"). This will force all clients who are associating with the AP radio to roam to other AP devices. Clients WIFI network experiences will be impacted.\n* ANOMALY Settings\n * Must be applied at the WLC level, although AP-level ANOMALY is also supported. Applying ANOMALY at the AP level is intended for troubleshooting a specific client at a specific AP. Catalyst Center does not allow applying ANOMALY at both the WLC and AP levels simultaneously. The feature can be disabled on demand.\n * Mixture of AP and WLC level configuration is not supported.\n* Applying ICAP configurations at the WLC level is to apply the configurations to all AP profiles known to the Catalyst Center. Wireless controller devices must be managed and in good health prior to use ICAP features for troubleshooting client WIFI issues.\n"
termsOfService: https://www.cisco.com/c/en/us/about/legal/cloud-and-software/end_user_license_agreement.html
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: direct-deploy
description: APIs to deploy ICAP configurations without previewing the intents.
paths:
/dna/intent/api/v1/icapSettings/deploy:
post:
tags:
- direct-deploy
summary: Deploys the given ICAP configuration intent without preview and approve.
description: "Deploys the given ICAP intent without preview and approval. The response body contains a task object with a taskId and a URL for more information about the task. The deployment status of this ICAP intent can be found in the output of the URL. \n\nFULL, ONBOARDING, OTA, and SPECTRUM configurations have a durationInMins field. A disable task is scheduled to remove the configuration from the device. Although the enablement of this ICAP configuration deployment has skipped the preview-deploy workflow, the disable task can still be previewed and deployed using the disableActivityId in the preview-deploy APIs to view the CLIs. See **Step 3** and **Step 4** in the **POST /dna/intent/api/v1/icapSettings/configurationModels** description for more information. Use the **GET /dna/intent/api/v1/icapSettings?captureStatus=INPROGRESS** API to obtain the disableActivityId value. It may take a few minutes for the disableActivityId (a UUID string) to become available. When it is not available, the **POST /dna/intent/api/v1/icapSettings/deploy/{id}/deleteDeploy** API is not ready to remove the ICAP configuration from the device.\n\n**POST Body**\n\nDepending on the ICAP feature (captureType) that the list of required fields in POST body is different. All objects in the POST body must contain the same captureType value. POST body object must have the following fields:\n\n* **ANOMALY**:<br/>\n * At AP level: captureType=ANOMALY, wlcId, apId\n * At WLC level: captureType=ANOMALY, wlcId\n \n* **FULL**: captureType=FULL, wlcId, clientMac, durationInMins (30-480)\n\n* **OBOARDING**: captureType=ONBOARDING, wlcId, clientMac, durationInMins (30-480)\n\n* **OTA**: captureType=OTA, wlcId, apId, otaBand, otaChannel, otaChannelWidth, slots (1 element), otaMode (Optional. RADIO or AP. Default to RADIO), durationInMins=15 (optional)\n\n* **RFSTATS**:\n * At AP level: captureType=RFSTATS, wlcId, apId\n * At WLC level: captureType=RFSTATS, wlcId\n\n* **SPECTRUM**: captureType=SPECTRUM, wlcId, apId, slots, durationInMins=10 (Optional)\n"
operationId: postIcapDeploy
parameters:
- name: previewDescription
in: query
description: The ICAP intent's preview-deploy description string
required: false
style: form
explode: true
schema:
type: string
example: FULL for client AA:AA:AA:AA:AA:01 on WLC
requestBody:
description: Request payload to deploy ICAP configuration.
content:
application/json:
schema:
$ref: '#/components/schemas/PacketCaptureDeployInfoList'
examples:
FULL:
$ref: '#/components/examples/FULL'
ONBOARDING:
$ref: '#/components/examples/ONBOARDING'
RFSTATS on WLC:
$ref: '#/components/examples/RFSTATS_WLC'
RFSTATS on AP:
$ref: '#/components/examples/RFSTATS_AP'
ANOMALY on WLC:
$ref: '#/components/examples/ANOMALY_WLC'
ANOMALY on AP:
$ref: '#/components/examples/ANOMALY_AP'
SPECTRUM:
$ref: '#/components/examples/SPECTRUM'
OTA:
$ref: '#/components/examples/OTA'
OTA AP Mode Sniffer:
$ref: '#/components/examples/OTA_AP_Mode'
OTA Radio Mode Sniffer:
$ref: '#/components/examples/OTA_Radio_Role'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_202_2'
'204':
description: The request was successful, however no content was returned.
'206':
description: The GET request included a Range Header, and the server responded with the partial content matching the range.
'400':
description: The client made a request that the server could not understand (for example, the request syntax is incorrect).
'401':
description: The client's authentication credentials included with the request are missing or invalid.
'403':
description: The server recognizes the authentication credentials, but the client is not authorized to perform this request.
'404':
description: The client made a request for a resource that does not exist.
'409':
description: The target resource is in a conflicted state (for example, an edit conflict where a resource is being edited by multiple users). Retrying the request later might succeed.
'415':
description: The client sent a request body in a format that the server does not support (for example, XML to a server that only accepts JSON).
'500':
description: The server could not fulfill the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'501':
description: The server has not implemented the functionality required to fulfill the request.
'503':
description: The server is (temporarily) unavailable.
'504':
description: The server did not respond inside time restrictions and timed-out.
/dna/intent/api/v1/icapSettings/deploy/{id}/deleteDeploy:
post:
tags:
- direct-deploy
summary: Remove the ICAP configuration on the device without preview
description: 'Remove the ICAP configuration from the device by *id* without preview-deploy. The path parameter *id* can be retrieved from the **GET /dna/intent/api/v1/icapSettings** API. The response body contains a task object with a taskId and a URL. Use the URL to check the task status. ICAP FULL, ONBOARDING, OTA, and SPECTRUM configurations have a durationInMins field. A disable task is scheduled to remove the configuration from the device. Removing the ICAP intent should be done after the pre-scheduled disable task has been deployed.
'
operationId: deleteIcapDeploy
parameters:
- name: id
in: path
description: A unique ID of the deployed ICAP object, which can be obtained from **GET /dna/intent/api/v1/icapSettings**
required: true
style: simple
explode: false
schema:
type: string
format: uuid
example: 7f422eeb-effe-4938-9371-ccf6dc2fe15e
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/TaskResponse'
'204':
description: The request was successful, however no content was returned.
'206':
description: The GET request included a Range Header, and the server responded with the partial content matching the range.
'400':
description: The client made a request that the server could not understand (for example, the request syntax is incorrect).
'401':
description: The client's authentication credentials included with the request are missing or invalid.
'403':
description: The server recognizes the authentication credentials, but the client is not authorized to perform this request.
'404':
description: The client made a request for a resource that does not exist.
'409':
description: The target resource is in a conflicted state (for example, an edit conflict where a resource is being edited by multiple users). Retrying the request later might succeed.
'415':
description: The client sent a request body in a format that the server does not support (for example, XML to a server that only accepts JSON).
'500':
description: The server could not fulfill the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'501':
description: The server has not implemented the functionality required to fulfill the request.
'503':
description: The server is (temporarily) unavailable.
'504':
description: The server did not respond inside time restrictions and timed-out.
components:
schemas:
EpochMilliseconds:
minimum: 0
type: integer
description: A date and time represented as ***milliseconds*** since the Unix epoch.
format: int64
example: 1524880285900
externalDocs:
description: Unix time - Wikipedia
url: https://en.wikipedia.org/wiki/Unix_time
TaskResponse:
title: Task Response
type: object
properties:
response:
$ref: '#/components/schemas/TaskResponse_response'
version:
type: string
description: The version of the response
example: '1.0'
description: Contains information about a task to track the status of an asynchronous operation.
externalDocs:
description: Asynchronous operations - Cisco DevNet
url: https://developer.cisco.com/docs/dna-center/#!asynchronous-apis/asynchronous-operations
PacketCaptureDeployInfoList:
type: array
description: A list of ICAP configuration intents
example:
FULL for client AA:AA:AA:AA:AA:01 on 2 WLC devices:
- captureType: FULL
durationInMins: 60
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
clientMac: AA:AA:AA:AA:AA:01
ONBOARDING for client AA:AA:AA:AA:AA:01 on 2 WLC devices:
- captureType: FULL
durationInMins: 60
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
clientMac: AA:AA:AA:AA:AA:01
items:
$ref: '#/components/schemas/PacketCaptureDeployInfoItem'
PacketCaptureDeployInfoItem:
required:
- captureType
- wlcId
type: object
properties:
id:
type: string
description: A unique ID that identifies this ICAP configuration that is currently applied on the device. Use this ID value to remove ICAP configuration on device. This value is not available after the ICAP configuration has been removed from the device.
format: uuid
example: 42444d12-c46f-4257-a8fd-89785ec81376
captureType:
type: string
description: Catalyst Center ICAP supported capture type
example: FULL
enum:
- FULL
- ONBOARDING
- OTA
- ANOMALY
- RFSTATS
- SPECTRUM
wlcId:
type: string
description: Wireless controller device at which the ICAP features are to be deployed. This parameter is required for all captureType
format: uuid
example: 42444d12-c46f-4257-a8fd-89785ec81376
apId:
type: string
description: AP device at which the ICAP features are to be deployed. This parameter is required for RFSTATS at AP level, ANOMALY at AP level, SPECTRUM, and OTA
format: uuid
example: 42444d12-c46f-4257-a8fd-89785ec81376
clientMac:
type: string
description: Client MAC address. This is required for ONBOARDING and FULL. All other captureType do not use this parameter
example: AA:AA:AA:AA:AA:01
slots:
type: array
description: The radio slot for the ICAP feature. This is required for OTA and SPECTRUM. All other captureType do not use this parameter. OTA accepts 1 slot. SPECTRUM could have multiple slots.
items:
type: integer
otaBand:
type: string
description: The OTA band (2.4, 5, or 6). This is used for OTA. All other captureType do not use this parameter
example: '2.4'
otaChannel:
type: integer
description: The channel number that AP will capture packets at the otaBand. This parameter is used in OTA only.
otaChannelWidth:
type: integer
description: The channel width (20, 40, 80, 160) at the band/channel that AP will capture packets. This parameter is used in OTA only.
durationInMins:
type: integer
description: The duration in minutes of the ICAP features. This is used in ONBOARDING and FULL in the range of [30, 480]. Other captureType do not use this parameter. OTA is set to 15 minutes. SPECTRUM is set to 10 minutes.
deployedId:
type: string
description: A unique ID that identifies this ICAP configuration that is currently applied on the device. Use this ID value to remove ICAP configuration on device. This value is not available after the ICAP configuration has been removed from the device.
format: uuid
example: 42444d12-c46f-4257-a8fd-89785ec81376
deployActivityId:
type: string
description: A unique ID that identifies the deployment activity of this intent.
format: uuid
example: 42444d12-c46f-4257-a8fd-89785ec81376
disableActivityId:
type: string
description: A unique ID that identifies the pre-scheduled disable activity which will be triggered when the ICAP feature durationInMins expires. This value is applicable for ONBOARDING, FULL, OTA, and SPECTRUM. This value could be used to view the CLI commands that will be deployed to device for disable the ICAP configuration on the device.
format: uuid
example: 42444d12-c46f-4257-a8fd-89785ec81376
name:
type: string
description: The ICAP intent's preview-deploy description string
example: The deployment activity name
createTime:
allOf:
- $ref: '#/components/schemas/EpochMilliseconds'
- description: create time of the device deployment status record; as measured in Unix epoch time in milliseconds
- example: 1699826101192
endTime:
allOf:
- $ref: '#/components/schemas/EpochMilliseconds'
- description: device provisioning end time; as measured in Unix epoch time in milliseconds
- example: 1699826442677
status:
allOf:
- $ref: '#/components/schemas/DeviceStatus'
- description: provisioning status on the device
- example: SUCCESS
otaMode:
type: string
description: AP is to change the AP mode from client-serving to sniffer. RADIO is to change the selected radio slot from client-serving to radio role sniffer. Catalyst Center allows RADIO only when the AP platform supports radio role sniffer. Default is RADIO if not provided
example: RADIO
enum:
- AP
- RADIO
description: 'A common definition of an ICAP configuration. It depends on the value in type that certain field values in an ICAP configuration could be null (not applicable).
'
example: '{"captureType": "FULL","wlcId": "9079ce39-25fe-4ab0-88cb-e89f5e700ddb", "clientMac": "AA:AA:AA:AA:AA:02", "durationInMins": 10}
'
DeviceStatus:
type: string
description: "Device status:\n * 'NOT_STARTED' - provisioning has not started on this device\n * 'SUCCESS' - provisioning has completed with a success\n * 'FAILED' - provisioning has completed with a failure\n * 'CONFIGURING' - provisioning is in progress\n * 'ROLLBACK_SUCCESS' - provisioning has successfully rolled back to the previous version \n * 'ROLLBACK_FAILURE' - there was a failure in rolling back to the previous version\n * 'CANCELLED' - provisioning was cancelled by the user\n * 'NOT_SUPPORTED' - provisioning cannot be done on the device as the device does not support it\n * 'PENDING' - provisioning will start soon on the device\n"
enum:
- NOT_STARTED
- SUCCESS
- FAILED
- CONFIGURING
- ROLLBACK_SUCCESS
- ROLLBACK_FAILURE
- CANCELLED
- NOT_SUPPORTED
- PENDING
TaskResponse_response:
type: object
properties:
taskId:
type: string
description: The UUID of the task
format: uuid
example: 85c95140-50fc-4a57-994d-db58d3afe6b3
url:
type: string
description: The path to the API endpoint to GET for information on the task
example: /intent/api/v1/task/85c95140-50fc-4a57-994d-db58d3afe6b3
ErrorResponse:
title: Error Response
type: object
properties:
response:
$ref: '#/components/schemas/ErrorResponse_response'
version:
type: string
description: The version of the response
example: '1.0'
description: Contains information explaining the error that occured processing this request.
externalDocs:
description: Error Codes - Cisco DevNet
url: https://developer.cisco.com/docs/dna-center/#!api-quick-start/error-codes
inline_response_202_2:
allOf:
- $ref: '#/components/schemas/TaskResponse'
- description: The task when complete will have the activity url in the resultLocation field. The progress of this deploy operation can be tracked using the activity. The GET /intent/api/v1/icap with has the icapDeployedId for each ICAP intent in the deploy body.
ErrorResponse_response:
type: object
properties:
errorCode:
type: string
description: The error code
message:
type: string
description: A message providing more context regarding the error
detail:
type: string
description: Detailed information regarding the error
examples:
FULL:
summary: FULL for client AA:AA:AA:AA:AA:01 on 2 WLC devices
value:
- captureType: FULL
durationInMins: 60
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
clientMac: AA:AA:AA:AA:AA:01
- captureType: FULL
durationInMins: 60
wlcId: 4dab2492-cead-4036-83d1-2e44b22AAAAA
clientMac: AA:AA:AA:AA:AA:01
OTA_AP_Mode:
summary: OTA (AP mode sniffer)
value:
- captureType: OTA
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
apId: 4dab2492-cead-4036-83d1-2e44b22AAAAA
slots:
- 0
otaBand: '5'
otaChannel: 32
otaChannelWidth: 40
otaMode: AP
ANOMALY_AP:
summary: ANOMALY on 1 AP
value:
- captureType: ANOMALY
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
apId: 4dab2492-cead-4036-83d1-2e44b22AAAAA
OTA_Radio_Role:
summary: OTA (radio role sniffer)
value:
- captureType: OTA
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
apId: 4dab2492-cead-4036-83d1-2e44b22AAAAA
slots:
- 1
otaBand: '6'
otaChannel: 36
otaChannelWidth: 80
otaMode: RADIO
RFSTATS_AP:
summary: RFSTATS on 1 AP
value:
- captureType: RFSTATS
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
apId: 4dab2492-cead-4036-83d1-2e44b22AAAAA
RFSTATS_WLC:
summary: RFSTATS on 1 WLC
value:
- captureType: RFSTATS
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
ONBOARDING:
summary: ONBOARDING for client AA:AA:AA:AA:AA:01 on 1 WLC
value:
- captureType: ONBOARDING
durationInMins: 60
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
clientMac: AA:AA:AA:AA:AA:01
SPECTRUM:
summary: SPECTRUM on slot 0, 1, and 2
value:
- captureType: SPECTRUM
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
apId: 4dab2492-cead-4036-83d1-2e44b22AAAAA
slots:
- 0
- 1
- 2
OTA:
summary: OTA (default radio role sniffer)
value:
- captureType: OTA
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
apId: 4dab2492-cead-4036-83d1-2e44b22AAAAA
slots:
- 0
otaBand: '2.4'
otaChannel: 7
otaChannelWidth: 20
ANOMALY_WLC:
summary: ANOMALY on 1 WLC
value:
- captureType: ANOMALY
wlcId: 4dab2492-cead-4036-83d1-2e44b2211111
externalDocs:
description: Catalyst Center Developer API resources
url: https://developer.cisco.com/dnacenter/