ISE API Reference
Overview
Cisco ISE exposes five distinct APIs for automation, monitoring, and integration. This reference provides complete coverage with both netapi CLI and curl examples for every operation.
API Comparison Matrix
| API | Port | Auth | Protocol | Endpoints | Primary Use |
|---|---|---|---|---|---|
9060 |
Basic |
REST/JSON |
199 |
Configuration CRUD (endpoints, groups, policies) |
|
443 |
Basic |
REST/JSON |
100 |
Policy management, conditions, dictionaries |
|
443 |
Basic |
REST/XML |
~20 |
Session monitoring, CoA, auth logs |
|
2484 |
JDBC |
Oracle SQL |
376+ views |
Analytics, reporting, historical data |
|
8910 |
mTLS |
WebSocket |
Pub/Sub |
Real-time events, context sharing |
Quick Start
# Load credentials
dsource d000 dev/network
# Test ERS connectivity
netapi ise get-endpoints --limit 1
# Test OpenAPI connectivity
netapi ise get-policy-sets
# Test MnT connectivity
netapi ise mnt sessions
# Test DataConnect connectivity
netapi ise dc test
Authentication Methods
Basic Authentication (ERS, OpenAPI, MnT)
|
Authentication Required ISE ERS and OpenAPI use HTTP Basic Authentication. Credentials must have ERS Admin role enabled in ISE Administration > System > Admin Access > Administrators.
|
mTLS Certificate (pxGrid)
|
Certificate Authentication Required pxGrid 2.0 uses mutual TLS (mTLS) for authentication. You need:
See pxGrid PKI Setup for certificate issuance. |
JDBC (DataConnect)
# DataConnect uses Oracle JDBC authentication
# Credentials configured in ISE: Administration > System > Settings > DataConnect
# Test connection
netapi ise dc test
# Or with JDBC directly
java -jar ojdbc11.jar \
jdbc:oracle:thin:@//${ISE_HOST}:2484/cpm10 \
"${ISE_DC_USER}" "${ISE_DC_PASS}"
Response Structures
Each API uses a different response format:
ERS Response Structure
All ERS API responses follow a consistent structure:
List Operations (GET collection)
{
"SearchResult": {
"total": 142,
"resources": [
{
"id": "uuid-string",
"name": "resource-name",
"description": "optional description",
"link": {
"rel": "self",
"href": "https://ise:9060/ers/config/resource/uuid",
"type": "application/json"
}
}
]
}
}
Single Resource (GET by ID/name)
{
"ERSResourceName": {
"id": "uuid-string",
"name": "resource-name",
"description": "optional description",
// Resource-specific fields
"link": {
"rel": "self",
"href": "https://ise:9060/ers/config/resource/uuid"
}
}
}
Create/Update Success (POST/PUT)
{
"UpdatedFieldsList": {
"updatedField": [
{
"field": "fieldName",
"oldValue": "old",
"newValue": "new"
}
]
}
}
OpenAPI Response Structure
ISE OpenAPI v1 responses use a different structure than ERS:
List Operations (GET collection)
{
"response": [
{
"id": "uuid-string",
"name": "resource-name",
"rank": 1,
"state": "enabled",
// Resource-specific fields
"link": {
"rel": "self",
"href": "/api/v1/policy/network-access/policy-set/uuid"
}
}
],
"version": "1.0.0"
}
Single Resource (GET by ID)
{
"response": {
"id": "uuid-string",
"name": "resource-name",
// All resource fields
},
"version": "1.0.0"
}
HTTP Status Codes
HTTP Status Codes
| Code | Meaning | Action |
|---|---|---|
2xx Success |
||
200 |
OK - Request successful |
Parse response body |
201 |
Created - Resource created |
Check Location header for new resource URL |
204 |
No Content - Delete successful |
No body returned |
4xx Client Errors |
||
400 |
Bad Request - Invalid syntax |
Check JSON format, required fields |
401 |
Unauthorized - Auth failed |
Verify credentials, check ERS Admin role |
403 |
Forbidden - No permission |
User lacks required RBAC permissions |
404 |
Not Found - Resource missing |
Verify ID/name, check resource exists |
405 |
Method Not Allowed |
Check HTTP method (GET/POST/PUT/DELETE) |
409 |
Conflict - Already exists |
Use PUT to update, or DELETE first |
415 |
Unsupported Media Type |
Add Content-Type: application/json header |
422 |
Unprocessable Entity |
Valid JSON but semantic error (e.g., invalid MAC format) |
429 |
Too Many Requests |
Rate limited - wait and retry |
5xx Server Errors |
||
500 |
Internal Server Error |
Check ISE logs, retry later |
502 |
Bad Gateway |
ISE service issue, check node health |
503 |
Service Unavailable |
ISE overloaded or in maintenance |
504 |
Gateway Timeout |
Request too slow, increase timeout or paginate |
netapi vs curl
Every operation in this reference shows both approaches:
| Approach | When to Use |
|---|---|
netapi CLI |
Day-to-day operations, scripting, CI/CD pipelines. Handles auth, pagination, error formatting. |
curl |
Learning APIs, debugging, custom integrations, when netapi doesn’t support an operation. |
API Coverage by Category
Identity Management
| Resource | ERS | OpenAPI | netapi |
|---|---|---|---|
Endpoints |
|||
Endpoint Groups |
|||
Identity Groups |
|||
Internal Users |
Planned |
Network Access Policy
| Resource | ERS | OpenAPI | netapi |
|---|---|---|---|
Policy Sets |
|||
Authentication Rules |
|||
Authorization Rules |
|||
Authorization Profiles |
|||
dACLs |
Detailed References
-
ERS API Reference - 199 endpoints for configuration management
-
OpenAPI v1 Reference - 100 endpoints for policy management
-
MnT API Reference - Session monitoring and CoA
-
DataConnect Reference - 376+ SQL views for analytics
-
pxGrid 2.0 Reference - Real-time event streaming