Practice Questions

Test your knowledge on this topic in the ENAUTO Exam Trainer — 186 questions across 5 interactive modes.

API Endpoint Glossary – ENAUTO v2.0

Quick Reference

This glossary covers all REST API endpoints across the four Cisco controllers tested on the ENAUTO v2.0 exam, plus device-level RESTCONF paths. For detailed code examples, see the individual deep dives: Catalyst_Center_Deep_Dive, Meraki_Deep_Dive, SDWAN_Deep_Dive, ISE_Deep_Dive, 2.0_Device_Level_Deep_Dive.


Dataview Summary — All Endpoints

MethodPathControllerPurpose
POST/dna/system/api/v1/auth/tokenCatalyst CenterAuthentication (token exchange)
GET/dna/intent/api/v1/network-deviceCatalyst CenterList all managed devices
GET/dna/intent/api/v1/network-device/{id}Catalyst CenterGet device by UUID
GET/dna/intent/api/v1/network-device/countCatalyst CenterDevice count
PUT/dna/intent/api/v1/network-device/roleCatalyst CenterUpdate device role (async)
GET/dna/intent/api/v1/site-healthCatalyst CenterSite health scores
GET/dna/intent/api/v1/client-healthCatalyst CenterClient health
GET/dna/intent/api/v1/network-healthCatalyst CenterNetwork health
GET/dna/intent/api/v1/device-healthCatalyst CenterDevice health
POST/dna/intent/api/v1/network-device-poller/cli/read-requestCatalyst CenterCommand Runner (async)
GET/dna/intent/api/v1/task/{taskId}Catalyst CenterPoll async task status
GET/dna/intent/api/v1/file/{fileId}Catalyst CenterRetrieve Command Runner output
GET/dna/intent/api/v1/template-programmer/templateCatalyst CenterList config templates
POST/dna/intent/api/v1/template-programmer/templateCatalyst CenterCreate config template
PUT/dna/intent/api/v1/template-programmer/template/deployCatalyst CenterDeploy template (async)
GET/dna/intent/api/v1/onboarding/pnp-deviceCatalyst CenterList PnP devices
POST/dna/intent/api/v1/onboarding/pnp-deviceCatalyst CenterAdd PnP device
POST/dna/intent/api/v1/onboarding/pnp-device/site-claimCatalyst CenterClaim device to site
GET/dna/intent/api/v1/image/importationCatalyst CenterList software images (SWIM)
POST/dna/intent/api/v1/image/distributionCatalyst CenterDistribute image (async)
POST/dna/intent/api/v1/image/activationCatalyst CenterActivate image (async)
GET/api/v1/organizationsMerakiList organizations
GET/api/v1/organizations/{orgId}/networksMerakiList networks
POST/api/v1/organizations/{orgId}/networksMerakiCreate network
GET/api/v1/organizations/{orgId}/devicesMerakiList org devices
GET/api/v1/organizations/{orgId}/devices/statusesMerakiDevice statuses
GET/api/v1/networks/{networkId}/devicesMerakiList network devices
POST/api/v1/networks/{networkId}/devices/claimMerakiClaim device (Day-0)
GET/api/v1/networks/{networkId}/wireless/ssidsMerakiList SSIDs
PUT/api/v1/networks/{networkId}/wireless/ssids/{number}MerakiUpdate SSID
GET/api/v1/networks/{networkId}/clientsMerakiList clients
GET/api/v1/networks/{networkId}/appliance/firewall/l3FirewallRulesMerakiGet L3 firewall rules
PUT/api/v1/networks/{networkId}/appliance/firewall/l3FirewallRulesMerakiUpdate firewall rules
POST/api/v1/organizations/{orgId}/actionBatchesMerakiCreate action batch
GET/api/v1/organizations/{orgId}/actionBatches/{batchId}MerakiAction batch status
POST/api/v1/networks/{networkId}/webhooks/httpServersMerakiCreate webhook receiver
GET/api/v1/organizations/{orgId}/configTemplatesMerakiList config templates
POST/api/v1/networks/{networkId}/bindMerakiBind network to template
POST/j_security_checkSD-WANSession authentication
GET/dataservice/client/tokenSD-WANGet XSRF token
GET/dataservice/deviceSD-WANList all devices
GET/dataservice/device/monitorSD-WANDevice monitoring data
GET/dataservice/system/device/vedgesSD-WANList vEdge/cEdge devices
GET/dataservice/template/featureSD-WANList feature templates
POST/dataservice/template/featureSD-WANCreate feature template
GET/dataservice/template/deviceSD-WANList device templates
POST/dataservice/template/deviceSD-WANCreate device template
POST/dataservice/template/device/config/attachdeviceSD-WANAttach template to device
GET/dataservice/template/device/config/attached/{templateId}SD-WANList attached devices
POST/dataservice/template/device/config/detachdeviceSD-WANDetach template
GET/dataservice/device/action/status/{actionId}SD-WANPoll async action status
GET/dataservice/alarmsSD-WANGet alarms
POST/dataservice/device/action/ztpSD-WANZero-touch provisioning
GET/dataservice/device/action/software/imagesSD-WANList software images
GET/ers/config/networkdeviceISEList network devices
POST/ers/config/networkdeviceISECreate network device
GET/ers/config/networkdevice/{id}ISEGet device by ID
PUT/ers/config/networkdevice/{id}ISEUpdate network device
DELETE/ers/config/networkdevice/{id}ISEDelete network device
GET/ers/config/internaluserISEList internal users
POST/ers/config/internaluserISECreate internal user
GET/ers/config/endpointISEList endpoints
POST/ers/config/endpointISECreate endpoint
GET/ers/config/endpointgroupISEList endpoint groups
GET/ers/config/sgtISEList Security Group Tags
POST/ers/config/sgtISECreate SGT
GET/ers/config/sgaclISEList SGACLs
GET/ers/config/egressmatrixcellISEList TrustSec policies
PUT/ers/config/egressmatrixcell/{id}ISEUpdate TrustSec policy
GET/ers/config/authorizationprofileISEList auth profiles
POST/ers/config/authorizationprofileISECreate auth profile
PUT/ers/config/ancendpoint/applyISEANC quarantine endpoint
PUT/ers/config/ancendpoint/clearISEANC clear endpoint
GET/ers/config/guestuserISEList guest users
POST/ers/config/guestuserISECreate guest user
GET/api/v1/deployment/nodeISEList deployment nodes (Open API)
GET/restconf/data/ietf-interfaces:interfacesRESTCONFList all interfaces
GET/restconf/data/ietf-interfaces:interfaces/interface={name}RESTCONFGet specific interface
PATCH/restconf/data/ietf-interfaces:interfaces/interface={name}RESTCONFPartial interface update
PUT/restconf/data/ietf-interfaces:interfaces/interface={name}RESTCONFFull interface replace
DELETE/restconf/data/ietf-interfaces:interfaces/interface={name}RESTCONFDelete interface
GET/restconf/data/Cisco-IOS-XE-native:nativeRESTCONFGet full native config
GET/restconf/data/Cisco-IOS-XE-native:native/hostnameRESTCONFGet hostname
PATCH/restconf/data/Cisco-IOS-XE-native:nativeRESTCONFPartial native config update
GET/restconf/data/openconfig-interfaces:interfacesRESTCONFOpenConfig interfaces
GET/restconf/data/Cisco-IOS-XE-process-cpu-oper:cpu-usageRESTCONFCPU operational data
GET/restconf/data/Cisco-IOS-XE-memory-oper:memory-statisticsRESTCONFMemory operational data

Controller Authentication Comparison

AspectCatalyst CenterMerakiSD-WAN (vManage)ISE
Auth MethodToken exchange (POST)API Key (static header)Session cookie + XSRFBasic Auth (every request)
Auth HeaderX-Auth-TokenX-Cisco-Meraki-API-KeyCookie: JSESSIONID + X-XSRF-TOKENAuthorization: Basic
Auth EndpointPOST /dna/system/api/v1/auth/tokenNone (key in header)POST /j_security_checkNone (Basic in header)
Base URL/dna/intent/api/v1https://api.meraki.com/api/v1/dataservice/ers/config (ERS) / /api/v1 (Open API)
Write BehaviorAsync (taskId)SynchronousAsync (actionId)Synchronous
Rate LimitNone documented5 calls/sec/org (429 + Retry-After)None documentedNone documented
Default FormatJSONJSONJSONXML (set Accept: application/json)
Python SDKcatalystcentersdkmerakicatalystwanciscoisesdk

1 – Catalyst Center APIs

Reference: Catalyst_Center_Deep_Dive Auth: POST /dna/system/api/v1/auth/token with Basic Auth → use token as X-Auth-Token header All writes are asynchronous — returns taskId to poll

Authentication

POST /dna/system/api/v1/auth/token

  • Controller: Catalyst Center
  • Purpose: Exchange username/password for an authentication token
  • Key Parameters: None (credentials in Basic Auth header)
  • Auth: HTTP Basic Auth (Authorization: Basic base64(user:pass))
  • Returns: {"Token": "eyJ..."} — valid ~60 minutes
  • Exam Tip: Uses Basic Auth for token exchange, then X-Auth-Token header (NOT Bearer) for all subsequent calls. This is the #1 tested auth pattern.
  • Related Topics: 2 – Authentication with Python requests

Device Management

GET /dna/intent/api/v1/network-device

  • Controller: Catalyst Center
  • Purpose: List all managed network devices
  • Key Parameters: ?managementIpAddress=x, ?hostname=x, ?family=x, ?role=x
  • Auth: X-Auth-Token
  • Returns: {"response": [{"id": "...", "hostname": "...", "managementIpAddress": "...", ...}]}
  • Exam Tip: Returns a list in response array. Device id (UUID) is needed for subsequent per-device calls.
  • Related Topics: 4 – Get Network Devices (requests)

GET /dna/intent/api/v1/network-device/{id}

  • Controller: Catalyst Center
  • Purpose: Get a specific device by its UUID
  • Key Parameters: {id} — device UUID from listing
  • Auth: X-Auth-Token
  • Returns: Single device object in response
  • Exam Tip: The id is a UUID, not the device hostname or IP address.
  • Related Topics: 4 – Get Network Devices (requests)

GET /dna/intent/api/v1/network-device/count

  • Controller: Catalyst Center
  • Purpose: Get total number of managed devices
  • Key Parameters: None
  • Auth: X-Auth-Token
  • Returns: {"response": 42}
  • Related Topics: 4 – Get Network Devices (requests)

PUT /dna/intent/api/v1/network-device/role

  • Controller: Catalyst Center
  • Purpose: Update a device’s role (ACCESS, DISTRIBUTION, CORE, BORDER ROUTER)
  • Key Parameters: Body: {"id": "uuid", "role": "ACCESS"}
  • Auth: X-Auth-Token
  • Returns: taskId (async)
  • Exam Tip: Write operation → returns taskId. Must poll task status.
  • Related Topics: 6 – Update Device Role (requests)

Health Monitoring

GET /dna/intent/api/v1/site-health

  • Controller: Catalyst Center
  • Purpose: Get health scores for all sites
  • Key Parameters: ?timestamp=epoch_ms
  • Auth: X-Auth-Token
  • Returns: Site health data with overall scores (0–100)
  • Exam Tip: Health scores are 0–100. Know which endpoint provides site-level vs device-level health.
  • Related Topics: 10 – Network Health Monitoring

GET /dna/intent/api/v1/client-health

  • Controller: Catalyst Center
  • Purpose: Get overall client health (wired + wireless)
  • Key Parameters: ?timestamp=epoch_ms
  • Auth: X-Auth-Token
  • Returns: Client health scores and category breakdowns
  • Related Topics: 10 – Network Health Monitoring

GET /dna/intent/api/v1/network-health

  • Controller: Catalyst Center
  • Purpose: Get overall network health score
  • Key Parameters: ?timestamp=epoch_ms
  • Auth: X-Auth-Token
  • Returns: Network-wide health aggregation
  • Related Topics: 10 – Network Health Monitoring

GET /dna/intent/api/v1/device-health

  • Controller: Catalyst Center
  • Purpose: Get per-device health scores
  • Key Parameters: ?deviceRole=ACCESS, ?limit=, ?offset=
  • Auth: X-Auth-Token
  • Returns: Individual device health scores
  • Related Topics: 10 – Network Health Monitoring

Command Runner

POST /dna/intent/api/v1/network-device-poller/cli/read-request

  • Controller: Catalyst Center
  • Purpose: Execute CLI commands on devices remotely
  • Key Parameters: Body: {"commands": ["show version"], "deviceUuids": ["uuid1"]}
  • Auth: X-Auth-Token
  • Returns: taskId → poll task → get fileId → download output
  • Exam Tip: Three-step process: (1) POST command → taskId, (2) GET task → fileId, (3) GET file → output. Frequently tested.
  • Related Topics: 12 – Common Patterns and Gotchas, 3.5_Security_Automation_CrossController

GET /dna/intent/api/v1/task/{taskId}

  • Controller: Catalyst Center
  • Purpose: Check status of any async operation
  • Key Parameters: {taskId}
  • Auth: X-Auth-Token
  • Returns: {"response": {"isError": false, "progress": "...", ...}}
  • Exam Tip: Poll until isError or endTime is present. progress may contain fileId.
  • Related Topics: 12 – Common Patterns and Gotchas

GET /dna/intent/api/v1/file/{fileId}

  • Controller: Catalyst Center
  • Purpose: Download file output (e.g., Command Runner results)
  • Key Parameters: {fileId} from task progress
  • Auth: X-Auth-Token
  • Returns: File content (JSON with command output)
  • Related Topics: 12 – Common Patterns and Gotchas

Template Programmer

GET /dna/intent/api/v1/template-programmer/template

  • Controller: Catalyst Center
  • Purpose: List all configuration templates
  • Key Parameters: ?projectId=, ?softwareType=IOS-XE
  • Auth: X-Auth-Token
  • Returns: Array of template objects
  • Related Topics: 9 – Jinja2 Configuration Templates

POST /dna/intent/api/v1/template-programmer/template

  • Controller: Catalyst Center
  • Purpose: Create a new configuration template (Jinja2 or Velocity)
  • Key Parameters: Body: {"name": "...", "language": "JINJA", "templateContent": "..."}
  • Auth: X-Auth-Token
  • Returns: taskId (async)
  • Exam Tip: language must be "JINJA" or "VELOCITY". Templates must be committed before deployment.
  • Related Topics: 9 – Jinja2 Configuration Templates, 3.3_Jinja2_Deep_Dive

PUT /dna/intent/api/v1/template-programmer/template/deploy

  • Controller: Catalyst Center
  • Purpose: Deploy a template to target devices
  • Key Parameters: Body with templateId, target device UUIDs, variable bindings
  • Auth: X-Auth-Token
  • Returns: taskId (async)
  • Exam Tip: Must commit template version before deploying.
  • Related Topics: 9 – Jinja2 Configuration Templates

PnP (Day-0 Provisioning)

GET /dna/intent/api/v1/onboarding/pnp-device

  • Controller: Catalyst Center
  • Purpose: List PnP device claims
  • Key Parameters: ?state=Unclaimed, ?serialNumber=
  • Auth: X-Auth-Token
  • Returns: Array of PnP device objects
  • Related Topics: 8 – Day-0 PnP Provisioning

POST /dna/intent/api/v1/onboarding/pnp-device

  • Controller: Catalyst Center
  • Purpose: Add a device to the PnP database
  • Key Parameters: Body: {"deviceInfo": {"serialNumber": "...", "hostname": "..."}}
  • Auth: X-Auth-Token
  • Returns: Created PnP device object
  • Related Topics: 8 – Day-0 PnP Provisioning

POST /dna/intent/api/v1/onboarding/pnp-device/site-claim

  • Controller: Catalyst Center
  • Purpose: Claim a PnP device to a site with config and image
  • Key Parameters: Body: {"siteId": "...", "deviceId": "...", "configInfo": {...}}
  • Auth: X-Auth-Token
  • Returns: taskId (async)
  • Exam Tip: Key Day-0 endpoint — maps device to site + config + image.
  • Related Topics: 8 – Day-0 PnP Provisioning

SWIM (Software Image Management)

GET /dna/intent/api/v1/image/importation

  • Controller: Catalyst Center
  • Purpose: List imported software images
  • Key Parameters: ?isTaggedGolden=true
  • Auth: X-Auth-Token
  • Returns: Array of image objects
  • Related Topics: 11 – Software Image Management (SWIM)

POST /dna/intent/api/v1/image/distribution

  • Controller: Catalyst Center
  • Purpose: Distribute an image to target devices
  • Key Parameters: Body: [{"deviceUuid": "...", "imageUuid": "..."}]
  • Auth: X-Auth-Token
  • Returns: taskId (async)
  • Related Topics: 11 – Software Image Management (SWIM)

POST /dna/intent/api/v1/image/activation

  • Controller: Catalyst Center
  • Purpose: Activate an image on target devices (triggers reboot)
  • Auth: X-Auth-Token
  • Returns: taskId (async)
  • Exam Tip: SWIM workflow: Import → Mark Golden → Distribute → Activate. Each step is async.
  • Related Topics: 11 – Software Image Management (SWIM)

2 – Meraki APIs

Reference: Meraki_Deep_Dive Auth: X-Cisco-Meraki-API-Key header on every request (no token exchange) Base URL: https://api.meraki.com/api/v1 All operations are synchronous — response = result Rate limit: 5 calls/sec/org — 429 returns Retry-After header

Organizations and Networks

GET /api/v1/organizations

  • Controller: Meraki
  • Purpose: List all organizations the API key has access to
  • Key Parameters: None
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: [{"id": "123456", "name": "My Org", ...}]
  • Exam Tip: organizationId is needed for all org-level endpoints.
  • Related Topics: 5 – Get Organizations, Networks, and Devices

GET /api/v1/organizations/{orgId}/networks

  • Controller: Meraki
  • Purpose: List all networks in an organization
  • Key Parameters: {orgId}, ?productTypes[]=wireless
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Array of network objects
  • Related Topics: 5 – Get Organizations, Networks, and Devices

POST /api/v1/organizations/{orgId}/networks

  • Controller: Meraki
  • Purpose: Create a new network
  • Key Parameters: Body: {"name": "...", "productTypes": ["wireless", "switch"]}
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Created network object (synchronous)
  • Related Topics: 5 – Get Organizations, Networks, and Devices

Devices

GET /api/v1/organizations/{orgId}/devices

GET /api/v1/organizations/{orgId}/devices/statuses

  • Controller: Meraki
  • Purpose: Get online/offline status for all org devices
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Array with status field (online/offline/alerting)
  • Related Topics: 9 – Network Health Monitoring

GET /api/v1/networks/{networkId}/devices

POST /api/v1/networks/{networkId}/devices/claim

  • Controller: Meraki
  • Purpose: Claim devices to a network — Day-0 provisioning
  • Key Parameters: Body: {"serials": ["XXXX-XXXX-XXXX"]}
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Claimed device objects (synchronous)
  • Exam Tip: Meraki Day-0 = claim by serial number. Compare with Catalyst Center PnP site-claim.
  • Related Topics: 7 – Day-0 Provisioning – Device Claiming

Wireless (SSIDs)

GET /api/v1/networks/{networkId}/wireless/ssids

  • Controller: Meraki
  • Purpose: List all 15 SSIDs for a wireless network
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Array of 15 SSID objects (0–14)
  • Exam Tip: Meraki always returns all 15 SSIDs. Unused ones have enabled: false.
  • Related Topics: 6 – SSID Management

PUT /api/v1/networks/{networkId}/wireless/ssids/{number}

  • Controller: Meraki
  • Purpose: Update an SSID’s configuration
  • Key Parameters: {number} (0–14), Body: {"name": "...", "enabled": true, "authMode": "psk"}
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Updated SSID object (synchronous)
  • Exam Tip: SSID {number} is index 0–14, NOT the SSID name.
  • Related Topics: 6 – SSID Management

Clients

GET /api/v1/networks/{networkId}/clients

  • Controller: Meraki
  • Purpose: List clients connected to a network
  • Key Parameters: ?timespan=86400, ?perPage=100
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Array of client objects (MAC, IP, usage)
  • Related Topics: 9 – Network Health Monitoring

Firewall Rules

GET /api/v1/networks/{networkId}/appliance/firewall/l3FirewallRules

PUT /api/v1/networks/{networkId}/appliance/firewall/l3FirewallRules

  • Controller: Meraki
  • Purpose: Update L3 firewall rules (replaces entire rule set)
  • Key Parameters: Body: {"rules": [...]}
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Updated rules (synchronous)
  • Exam Tip: PUT replaces ALL rules. Always GET first, modify, then PUT back.
  • Related Topics: 3.5_Security_Automation_CrossController

Action Batches

POST /api/v1/organizations/{orgId}/actionBatches

  • Controller: Meraki
  • Purpose: Execute multiple API calls as a single batch (up to 20 actions)
  • Key Parameters: Body: {"confirmed": true, "synchronous": false, "actions": [...]}
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Batch object with id and status
  • Exam Tip: Only way to make Meraki operations atomic. Max 20 actions per batch.
  • Related Topics: 8 – Configuration Templates and Action Batches

GET /api/v1/organizations/{orgId}/actionBatches/{batchId}


Webhooks and Templates

POST /api/v1/networks/{networkId}/webhooks/httpServers

  • Controller: Meraki
  • Purpose: Create a webhook receiver for alerts
  • Key Parameters: Body: {"name": "...", "url": "https://...", "sharedSecret": "..."}
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Created webhook object
  • Related Topics: 10 – Webhook-Based Monitoring

GET /api/v1/networks/{networkId}/webhooks/httpServers

  • Controller: Meraki
  • Purpose: List configured webhook receivers
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Array of webhook objects
  • Related Topics: 10 – Webhook-Based Monitoring

GET /api/v1/organizations/{orgId}/configTemplates

POST /api/v1/networks/{networkId}/bind

  • Controller: Meraki
  • Purpose: Bind a network to a configuration template
  • Key Parameters: Body: {"configTemplateId": "..."}
  • Auth: X-Cisco-Meraki-API-Key
  • Returns: Bind confirmation
  • Related Topics: 8 – Configuration Templates and Action Batches

3 – SD-WAN (vManage) APIs

Reference: SDWAN_Deep_Dive Auth: POST /j_security_check with form-urlencoded data → JSESSIONID cookie + X-XSRF-TOKEN for writes Base URL: https://{vmanage-ip} Writes are asynchronous — poll action status

Authentication

POST /j_security_check

  • Controller: SD-WAN (vManage)
  • Purpose: Authenticate and establish a session
  • Key Parameters: Form data: j_username=admin&j_password=C1sco12345
  • Auth: None (this IS the auth endpoint)
  • Returns: JSESSIONID cookie in response headers
  • Exam Tip: Uses application/x-www-form-urlencoded (NOT JSON!). #1 tested SD-WAN auth gotcha.
  • Related Topics: 2 – Authentication with Python requests

GET /dataservice/client/token

  • Controller: SD-WAN (vManage)
  • Purpose: Get XSRF token for write operations
  • Auth: JSESSIONID cookie
  • Returns: Plain text token string
  • Exam Tip: Called AFTER /j_security_check. Token goes in X-XSRF-TOKEN header for writes.
  • Related Topics: 2 – Authentication with Python requests

Device Management

GET /dataservice/device

  • Controller: SD-WAN (vManage)
  • Purpose: List all devices in the SD-WAN fabric
  • Auth: JSESSIONID cookie
  • Returns: {"data": [{"deviceId": "...", "host-name": "...", "reachability": "reachable"}]}
  • Exam Tip: Response is in data array (not response like Catalyst Center).
  • Related Topics: 4 – Get Devices and System Status

GET /dataservice/device/monitor

  • Controller: SD-WAN (vManage)
  • Purpose: Get device monitoring data
  • Auth: JSESSIONID cookie
  • Returns: Monitoring data for all devices
  • Related Topics: 10 – Network Health Monitoring

GET /dataservice/system/device/vedges

  • Controller: SD-WAN (vManage)
  • Purpose: List vEdge/cEdge devices
  • Key Parameters: ?model=vedge-cloud
  • Auth: JSESSIONID cookie
  • Returns: Device details with personality, model, serial
  • Related Topics: 4 – Get Devices and System Status

Templates

GET /dataservice/template/feature

  • Controller: SD-WAN (vManage)
  • Purpose: List feature templates
  • Auth: JSESSIONID cookie
  • Returns: {"data": [{"templateId": "...", "templateName": "...", "templateType": "..."}]}
  • Related Topics: 6 – Feature Templates and Device Templates

POST /dataservice/template/feature

  • Controller: SD-WAN (vManage)
  • Purpose: Create a feature template
  • Auth: JSESSIONID + X-XSRF-TOKEN
  • Returns: {"templateId": "..."}
  • Exam Tip: Requires XSRF token (write operation).
  • Related Topics: 6 – Feature Templates and Device Templates

GET /dataservice/template/device

POST /dataservice/template/device

POST /dataservice/template/device/config/attachdevice

  • Controller: SD-WAN (vManage)
  • Purpose: Attach a device template to a device (push config)
  • Auth: JSESSIONID + X-XSRF-TOKEN
  • Returns: actionId (async)
  • Exam Tip: SD-WAN equivalent of deploying a template. Requires device-specific variable values.
  • Related Topics: 7 – Attach and Detach Device Templates

GET /dataservice/template/device/config/attached/{templateId}

  • Controller: SD-WAN (vManage)
  • Purpose: List devices attached to a device template
  • Auth: JSESSIONID cookie
  • Returns: Array of attached device info
  • Related Topics: 7 – Attach and Detach Device Templates

POST /dataservice/template/device/config/detachdevice


Operations

GET /dataservice/device/action/status/{actionId}

  • Controller: SD-WAN (vManage)
  • Purpose: Check status of an async operation
  • Auth: JSESSIONID cookie
  • Returns: Action status with per-device results
  • Exam Tip: SD-WAN equivalent of Catalyst Center’s /task/{taskId}.
  • Related Topics: 12 – Common Patterns and Gotchas

GET /dataservice/alarms

  • Controller: SD-WAN (vManage)
  • Purpose: Get current alarms
  • Key Parameters: ?query={"field":"active","type":"boolean","value":["true"]}
  • Auth: JSESSIONID cookie
  • Returns: Array of alarm objects
  • Related Topics: 10 – Network Health Monitoring

GET /dataservice/statistics/interface

  • Controller: SD-WAN (vManage)
  • Purpose: Get interface statistics
  • Auth: JSESSIONID cookie
  • Returns: Interface statistics data
  • Related Topics: 10 – Network Health Monitoring

GET /dataservice/device/bfd/sessions

  • Controller: SD-WAN (vManage)
  • Purpose: Get BFD session status across the fabric
  • Key Parameters: ?deviceId=
  • Auth: JSESSIONID cookie
  • Returns: BFD session data (state, latency, loss, jitter)
  • Related Topics: 10 – Network Health Monitoring

POST /dataservice/device/action/ztp

  • Controller: SD-WAN (vManage)
  • Purpose: Trigger ZTP provisioning
  • Auth: JSESSIONID + X-XSRF-TOKEN
  • Returns: Action status
  • Related Topics: 8 – Day-0 Provisioning

GET /dataservice/device/action/software/images

  • Controller: SD-WAN (vManage)
  • Purpose: List available software images
  • Auth: JSESSIONID cookie
  • Returns: Array of images
  • Related Topics: 11 – Software Image Management

4 – ISE APIs

Reference: ISE_Deep_Dive Auth: Basic Auth on every request (no token exchange, no session) ERS Base: https://{ise-ip}:443/ers/config — defaults to XML (must set Accept: application/json) Open API Base: https://{ise-ip}/api/v1

ISE Header Gotcha

ERS API defaults to XML. You MUST include Accept: application/json AND Content-Type: application/json for JSON responses.

Network Device Management

GET /ers/config/networkdevice

  • Controller: ISE (ERS)
  • Purpose: List all network access devices (NADs)
  • Key Parameters: ?size=100&page=1, ?filter=name.EQ.switch1
  • Auth: Basic Auth + Accept: application/json
  • Returns: {"SearchResult": {"resources": [{"id": "...", "name": "...", "link": {...}}]}}
  • Exam Tip: ERS uses pagination (size/page). Results in SearchResult.resources. Only returns id/name/link — use the ID for full details.
  • Related Topics: 5 – Network Device Management

POST /ers/config/networkdevice

  • Controller: ISE (ERS)
  • Purpose: Register a new NAD — Day-0 onboarding
  • Key Parameters: Body: {"NetworkDevice": {"name": "...", "NetworkDeviceIPList": [...], "authenticationSettings": {"radiusSharedSecret": "..."}}}
  • Auth: Basic Auth
  • Returns: 201 Created
  • Exam Tip: ISE Day-0 = register NAD so ISE accepts RADIUS from it.
  • Related Topics: 8 – Day-0 Network Device Onboarding

GET /ers/config/networkdevice/{id}

  • Controller: ISE (ERS)
  • Purpose: Get full device details
  • Auth: Basic Auth
  • Returns: Full NetworkDevice object
  • Related Topics: 5 – Network Device Management

PUT /ers/config/networkdevice/{id}

  • Controller: ISE (ERS)
  • Purpose: Update a network device
  • Auth: Basic Auth
  • Returns: 200 OK
  • Exam Tip: ERS PUT requires the complete object (not partial like RESTCONF PATCH).
  • Related Topics: 5 – Network Device Management

DELETE /ers/config/networkdevice/{id}


User and Endpoint Management

GET /ers/config/internaluser

POST /ers/config/internaluser

  • Controller: ISE (ERS)
  • Purpose: Create internal user
  • Key Parameters: Body: {"InternalUser": {"name": "...", "password": "...", "identityGroups": "..."}}
  • Auth: Basic Auth
  • Returns: 201 Created
  • Related Topics: 6 – Internal User Management

GET /ers/config/endpoint

POST /ers/config/endpoint

GET /ers/config/endpointgroup


TrustSec (Security Group Tags)

GET /ers/config/sgt

  • Controller: ISE (ERS)
  • Purpose: List all SGTs
  • Key Parameters: ?filter=name.CONTAINS.server
  • Auth: Basic Auth
  • Returns: SGT resources with value (tag number) and name
  • Exam Tip: SGTs are TrustSec micro-segmentation foundation. Each has numeric value + name.
  • Related Topics: 9 – TrustSec and Security Group Tags (SGTs)

POST /ers/config/sgt

GET /ers/config/sgacl

GET /ers/config/egressmatrixcell

PUT /ers/config/egressmatrixcell/{id}


Authorization and ANC

GET /ers/config/authorizationprofile

POST /ers/config/authorizationprofile

PUT /ers/config/ancendpoint/apply

  • Controller: ISE (ERS)
  • Purpose: Apply ANC policy to an endpoint (quarantine)
  • Key Parameters: Body: {"OperationAdditionalData": {"additionalData": [{"name": "macAddress", "value": "..."}, {"name": "policyName", "value": "QUARANTINE"}]}}
  • Auth: Basic Auth
  • Returns: 204 No Content
  • Exam Tip: ANC quarantine = automated incident response. Apply → CoA → device enforces.
  • Related Topics: ISE_Deep_Dive, 3.5_Security_Automation_CrossController

PUT /ers/config/ancendpoint/clear


Guest Users and Open API

GET /ers/config/guestuser

POST /ers/config/guestuser

GET /api/v1/deployment/node

  • Controller: ISE (Open API)
  • Purpose: List ISE nodes and personas (PAN, PSN, MnT, pxGrid)
  • Auth: Basic Auth
  • Exam Tip: Open API uses /api/v1 base. Know which endpoints are ERS vs Open API.
  • Related Topics: 1 – Architecture Overview

5 – RESTCONF Endpoints (Device-Level)

Reference: 2.0_Device_Level_Deep_Dive, 1.0_Foundation_Deep_Dive Auth: Basic Auth on IOS XE Headers: Accept: application/yang-data+json, Content-Type: application/yang-data+json Base: https://{device-ip}/restconf

Interfaces (ietf-interfaces)

GET /restconf/data/ietf-interfaces:interfaces

  • Purpose: Get all interfaces (config + operational state)
  • Key Parameters: ?content=config (config only), ?content=nonconfig (oper only)
  • Auth: Basic Auth
  • Related Topics: 3 – RESTCONF with Python requests

GET /restconf/data/ietf-interfaces:interfaces/interface={name}

PATCH /restconf/data/ietf-interfaces:interfaces/interface={name}

  • Purpose: Partially update an interface
  • Auth: Basic Auth
  • Returns: 204 No Content
  • Exam Tip: PATCH = merge (safest). PUT = full replace.
  • Related Topics: 3 – RESTCONF with Python requests

PUT /restconf/data/ietf-interfaces:interfaces/interface={name}

DELETE /restconf/data/ietf-interfaces:interfaces/interface={name}


Native Config (Cisco-IOS-XE-native)

GET /restconf/data/Cisco-IOS-XE-native:native

  • Purpose: Get full native IOS XE configuration
  • Auth: Basic Auth
  • Exam Tip: Most complete model — covers ALL CLI features.
  • Related Topics: 1.0_Foundation_Deep_Dive

GET /restconf/data/Cisco-IOS-XE-native:native/hostname

  • Purpose: Get hostname only
  • Auth: Basic Auth
  • Returns: {"Cisco-IOS-XE-native:hostname": "CSR1kv"}
  • Related Topics: 1.0_Foundation_Deep_Dive

PATCH /restconf/data/Cisco-IOS-XE-native:native


OpenConfig and Operational Data

GET /restconf/data/openconfig-interfaces:interfaces

GET /restconf/data/Cisco-IOS-XE-process-cpu-oper:cpu-usage

  • Purpose: Get CPU utilization (read-only operational data)
  • Auth: Basic Auth
  • Exam Tip: ro data — cannot be modified. Used for monitoring/telemetry.
  • Related Topics: 4.0_Operations_Deep_Dive

GET /restconf/data/Cisco-IOS-XE-memory-oper:memory-statistics


6 – Quick Endpoint Lookup by Use Case

Use CaseControllerEndpoint
AuthenticateCatalyst CenterPOST /dna/system/api/v1/auth/token
SD-WANPOST /j_security_check
MerakiHeader: X-Cisco-Meraki-API-Key
ISEHeader: Authorization: Basic
List devicesCatalyst CenterGET /dna/intent/api/v1/network-device
SD-WANGET /dataservice/device
MerakiGET /api/v1/organizations/{orgId}/devices
ISEGET /ers/config/networkdevice
RESTCONFGET /restconf/data/ietf-interfaces:interfaces
Day-0 provisionCatalyst CenterPOST .../onboarding/pnp-device/site-claim
SD-WANPOST /dataservice/device/action/ztp
MerakiPOST /api/v1/networks/{id}/devices/claim
ISEPOST /ers/config/networkdevice
Push configCatalyst CenterPUT .../template-programmer/template/deploy
SD-WANPOST .../template/device/config/attachdevice
MerakiPUT /api/v1/networks/{id}/wireless/ssids/{n}
RESTCONFPATCH /restconf/data/Cisco-IOS-XE-native:native
Check healthCatalyst CenterGET /dna/intent/api/v1/site-health
SD-WANGET /dataservice/device/monitor
MerakiGET /api/v1/organizations/{orgId}/devices/statuses
RESTCONFGET .../Cisco-IOS-XE-process-cpu-oper:cpu-usage
Security/QuarantineISEPUT /ers/config/ancendpoint/apply
MerakiPUT .../appliance/firewall/l3FirewallRules
Check async statusCatalyst CenterGET /dna/intent/api/v1/task/{taskId}
SD-WANGET /dataservice/device/action/status/{actionId}
SWIM/ImagesCatalyst CenterPOST /dna/intent/api/v1/image/distribution
SD-WANGET /dataservice/device/action/software/images

ENAUTO API reference certification Cisco 300-435