openapi: 3.2.0
info:
title: Deployment Node Deployment API
description: APIs for the configuration, administration and monitoring of the nodes in a Cisco ISE cluster deployment.
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
contact:
email: cs-ise-api@cisco.com
version: v3-oas3
x-provenance:
method: harvested
authored_by: Cisco
harvested_by: API Evangelist
harvested_on: '2026-08-19'
first_party: true
provider_published: true
source_host: pubhub.devnetcloud.com
note: 103 ISE API descriptions (1,490 operations; 32 OpenAPI 3.0.x + 71 Swagger 2.0) enumerated from Cisco's own DevNet project manifest and fetched anonymously. Byte-identity reconfirmed 2026-08-19 by SHA-256 against the live source.
x-evidence:
- type: source
url: https://pubhub.devnetcloud.com/media/identity-services-engine-api-v1/docs/
- type: source
url: https://developer.cisco.com/docs/identity-services-engine/
tags:
- name: Node Deployment
paths:
/deployment/primary:
post:
summary: Promote a standalone node to a primary PAN.
operationId: makePrimary
description: 'This API promotes the standalone node on which the API is invoked to the primary Policy Administration node (PAN).
'
tags:
- Node Deployment
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'400':
description: Node is not standalone.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/deployment/standalone:
post:
summary: Change a primary PAN to a standalone node.
operationId: makeStandalone
description: 'This API changes the primary PAN in a single node cluster on which the API is invoked, to a standalone node.
'
tags:
- Node Deployment
responses:
'200':
description: 'The node changes from primary PAN to standalone.
'
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'400':
description: Node is not a primary node in the single node cluster.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/deployment/node/:
get:
summary: Retrieve the list of all the nodes that are deployed in the cluster.
operationId: getDeploymentNodes
description: 'The API lists all the nodes that are deployed in the cluster.
Returns basic information about each of the deployed nodes in the cluster like hostname, status, roles, and services.
Supports filtering on FQDN, hostname, IP address, roles, services and node status.
'
tags:
- Node Deployment
parameters:
- $ref: '#/components/parameters/filtering'
- $ref: '#/components/parameters/filtertype'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DeploymentNodesResponse'
'400':
description: 'Invalid inputs have been supplied.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
post:
summary: Register a standalone node to the cluster
operationId: registerNode
description: 'This API registers a Cisco ISE node to form a multi-node deployment.
'
tags:
- Node Deployment
requestBody:
description: Details of the registering node.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeRegistrationRequest'
responses:
'200':
description: Registration initiated.
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'400':
description: 'Invalid inputs are supplied.
1. Node being registered is not a standalone node.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/deployment/node/{hostname}:
get:
summary: Retrieve details of a deployed node.
operationId: getNodeDetails
description: 'This API retrieves detailed information of the deployed node.
'
tags:
- Node Deployment
parameters:
- name: hostname
in: path
description: Hostname of the deployed node.
required: true
schema:
pattern: '[a-zA-Z][\w\-]*'
maxLength: 64
minLength: 1
type: string
example: isenode
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DeploymentNodeResponse'
'400':
description: Invalid inputs or parameters supplied.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: No deployment node found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
put:
summary: Replace the existing configuration of the Cisco ISE node with the configuration provided.
operationId: updateDeploymentNode
description: "This API updates the configuration of the Cisco ISE node with the configuration provided. \n"
tags:
- Node Deployment
parameters:
- name: hostname
in: path
description: Hostname of the deployed node.
required: true
schema:
pattern: '[a-zA-Z][\w\-]*'
maxLength: 64
minLength: 1
type: string
example: isenode
requestBody:
description: Configuration of the existing node which needs to be replaced with new configuration
content:
application/json:
schema:
$ref: '#/components/schemas/NodeUpdateRequest'
example:
roles:
- PrimaryAdmin
services:
- DeviceAdmin
responses:
'200':
description: Configuration updated.
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'400':
description: Invalid inputs supplied.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: No node is found in the deployment with the provided hostname.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
summary: Remove a deployed node from a cluster.
operationId: deleteDeploymentNode
description: 'The deregistered node becomes a standalone Cisco ISE node.
It retains the last configuration that it received from the primary PAN and assumes the default roles and services of a standalone node.
'
tags:
- Node Deployment
parameters:
- name: hostname
in: path
description: The hostname of the node in the deployment to be deregistered.
required: true
schema:
pattern: '[a-zA-Z][\w\-]*'
maxLength: 64
minLength: 1
type: string
example: isenode
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'400':
description: 'Invalid inputs are supplied.
1. Node being deregistered is a standalone node.
2. Node being deregistered is a primary node.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: No node is found in the deployment with the provided hostname.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Unexpected error occurred
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/deployment/sync-node/{hostname}:
post:
summary: Trigger manual synchronization of the node.
operationId: syncNode
description: Performing a manual synchronization involves a reload of the target node, but not the primary PAN.
tags:
- Node Deployment
parameters:
- name: hostname
in: path
description: Hostname of the node.
required: true
schema:
pattern: '[a-zA-Z][\w\-]*'
maxLength: 64
minLength: 1
type: string
example: isenode
responses:
'202':
description: 'Manual synchronization task initiated. Use the Task Service Status API to retrieve the status of the task.
'
content:
application/json:
schema:
$ref: '#/components/schemas/DeploymentTaskResponse'
'400':
description: Manual synchronization cannot be initiated on a primary PAN or standalone node.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Node is not part of the cluster.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/deployment/promote:
post:
summary: Promote the secondary PAN in a multi-node cluster to the role of primary PAN.
operationId: promoteNode
description: 'Execute this API in the secondary PAN in the cluster to promote the node to primary PAN. Ensure that the API Gateway setting is enabled in the secondary PAN.
'
tags:
- Node Deployment
responses:
'200':
description: 'Node promotion initiated from secondary PAN to primary PAN.
'
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'400':
description: Invalid inputs have been supplied.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
FQDN:
maxLength: 64
minLength: 1
pattern: ^(?=.{2,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-|_){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-|_){0,61}[0-9A-Za-z])?)*(?:\.[A-Za-z](?:(?:[A-Za-z]|-){0,61}[A-Za-z])?)+\.?$
type: string
DeploymentNodeResponse:
type: object
properties:
response:
$ref: '#/components/schemas/DeploymentNode'
version:
type: string
example: 1.0.0
DeploymentTask:
type: object
properties:
id:
type: string
description: ID which can be used to track the status of the deployment task using the Task Service API.
example: a1714b90-be06-11eb-bf27-c208c4aa1432
message:
type: string
example: Deployment task initiated. You can use the Task Service Status API to get the status of the task.
Services:
type: array
items:
type: string
enum:
- Session
- Profiler
- TC-NAC
- SXP
- DeviceAdmin
- PassiveIdentity
- pxGrid
- pxGridCloud
NodeUpdateRequest:
type: object
properties:
roles:
$ref: '#/components/schemas/Roles'
services:
$ref: '#/components/schemas/Services'
required:
- roles
- services
example: TBD
Message:
type: object
properties:
message:
type: string
example: Success
ErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/Message'
version:
type: string
example: 1.0.0
DeploymentNode:
type: object
properties:
hostname:
pattern: '[a-zA-Z][\w\-]*'
maxLength: 64
minLength: 1
type: string
example: isenode
fqdn:
$ref: '#/components/schemas/FQDN'
ipAddress:
$ref: '#/components/schemas/IPAddress'
roles:
$ref: '#/components/schemas/Roles'
services:
$ref: '#/components/schemas/Services'
nodeStatus:
$ref: '#/components/schemas/NodeStatus'
required:
- hostname
- fqdn
- ipAddress
- services
example: TBD
NodeStatus:
type: string
enum:
- Connected
- Disconnected
- InProgress
- ReplicationStopped
- RegistrationFailed
- NotInSync
- NotUpgraded
- NotApplicable
DeploymentTaskResponse:
type: object
properties:
response:
$ref: '#/components/schemas/DeploymentTask'
version:
type: string
example: 1.0.0
SuccessResponse:
type: object
properties:
success:
$ref: '#/components/schemas/Message'
version:
type: string
example: 1.0.0
IPAddress:
type: string
format: ipv4 | ipv6
DeploymentNodesResponse:
type: object
properties:
response:
type: array
items:
$ref: '#/components/schemas/DeploymentNode'
example: TBD
version:
type: string
example: 1.0.0
Roles:
type: array
items:
type: string
enum:
- PrimaryAdmin
- SecondaryAdmin
- PrimaryMonitoring
- SecondaryMonitoring
- PrimaryDedicatedMonitoring
- SecondaryDedicatedMonitoring
- Standalone
NodeRegistrationRequest:
type: object
properties:
fqdn:
$ref: '#/components/schemas/FQDN'
userName:
type: string
example: admin
password:
type: string
format: password
example: changeMe
allowCertImport:
type: boolean
example: false
description: 'Consent to import the self-signed certificate of the registering node.
'
roles:
$ref: '#/components/schemas/Roles'
services:
$ref: '#/components/schemas/Services'
required:
- fqdn
- userName
- password
- allowCertImport
- roles
- services
example: TBD
parameters:
filtering:
name: filter
in: query
required: false
description: '
| OPERATOR | DESCRIPTION |
|---|---|
| EQ | Equals |
| NEQ | Not Equals |
| STARTSW | Starts With |
| NSTARTSW | Not Starts With |
| ENDSW | Ends With |
| NENDSW | Not Ends With |
| CONTAINS | Contains |
| NCONTAINS | Not Contains |