Topology endpoint descriptions
Retrieve a list of active components for a deployment, including identity and trust details for each node.
Usage details
Topology REST API
The topology endpoints are part of the Topology REST API available on the Splunk platform. This API provides programmatic access for administrators and applications to deployment topology and infrastructure introspection data through a unified interface. These endpoints retrieve information using the Splunk Topology sidecar. For more information about sidecars, see About Splunk sidecars.
Authentication and Authorization
Username and password authentication is required for access to endpoints and REST operations.
Splunk users must have the list_topology capability to use REST topology endpoints. By default, this capability is assigned to the admin role.
Users with an administrative role, such as admin, can access authorization information in Splunk Web. To view the roles assigned to a user, select Settings > Access controls and click Users. To determine the capabilities assigned to a role, select Settings > Access controls and click Roles. Requires the . By default, this capability is assigned to the admin role.
topology
Retrieves a complete JSON view of the Splunk platform deployment topology, including managed node roles and optional unmanaged actors.
https://<host>:<mPort>/services/stack-explainer/v1/topology
Retrieves a complete view of the deployment topology for the Splunk platform, including all managed node roles. Use this information to visualize and analyze your deployment structure.
Available only on License Manager nodes.
Requests require the GET method.
Limitations-
The topology endpoint requires a deployment with one License Manager to function correctly. If you use multiple License Managers behind a load balancer, which is a configuration supported in customer-managed Splunk deployments, the topology information might not be correct.
-
The Splunk Topology sidecar does not support FIPS mode.
Requires the list_topology capability. By default, this capability is assigned to the admin role.
GET
Retrieves a complete view of the deployment topology for the Splunk platform.
Request parameters| Name | Type | Description |
|---|---|---|
include_unmanaged_actors |
Boolean (Flag) |
Optional. If present, the response includes unmanaged nodes that communicate with the deployment, typically by ingesting data, but their details cannot be verified. |
None
Returns data in JSON format.
| Field | Type | Description |
|---|---|---|
| header.timestamp | String |
The UTC timestamp of when the response was generated. |
| license_manager | Object | The node object for the License Manager. |
| cluster_manager | Object | The node object for the Cluster Manager |
| indexers | Array | Node objects for indexers |
| search_heads | Array | Node objects for search heads |
| deployers | Array | Node objects for deployers |
| unrecognized | Array | Node objects that could not be assigned a known role. This typically occurs when deployment peers remain undiscovered due to network or configuration constraints. |
| unmanaged_actors | Array | Only present when the request included the include_unmanaged_actors parameter. |
| Field | Type | Description |
|---|---|---|
| guid | String | The unique node identifier |
| label | String | Server name |
| fips_enabled | Boolean |
Whether or not the node is running in FIPS mode.
|
| roles | Array | Server roles |
| host_info | Object |
A nested object that contains network connectivity details for the host node:
|
| version_info | Object |
A nested object that contains the following fields:
|
| os_info: | Object |
A nested object that contains the following fields:
|
| status | String | Node status |
| last_heartbeat | String | The timestamp of the most recent heartbeat signal. Present only if the Topology API can retrieve it. Available only for indexers and search heads known to the Cluster Manager in customer-managed deployments. |
| managed_by | Object |
List of the managing entities that govern the current node, such as
Each field contains the GUID of the managing entity. Use this GUID to trace the management hierarchy. For example, an indexer peer populates
Note: The search_head_cluster GUID identifies the search head cluster as a logical group of search head nodes. It does not represent a single managing node or entity. This GUID cannot be used with the node-identity/{guid} endpoint to retrieve a single node identity.
|
| Field | Type | Description |
|---|---|---|
| guid | String | A unique node identifier if known |
| label | String | The hostname or display label |
| host_info | Object |
A nested object that contains network connectivity details for the host node:
|
| indexer_guids | Array | A list of unique identifiers (GUIDs) for the indexers to which this node is currently connected. Use these GUIDs to map data ingestion paths and verify connectivity within the Splunk platform topology. |
| connection_types | Array | A list of the transport protocols or data connection methods currently in use by the node, for example:
|
| last_conn_time | String | Optional. The timestamp of the last successful connection established by the node.
Available for on-premises deployments. |
| HTTP status code | Description |
|---|---|
| 200 | The request was successful, and the topology data is returned in the response body. |
| 403 |
Failure when trying to access the endpoint from a different node than the License Manager.
Example response
JSON
|
| 500 |
Failure when trying to retrieve trusted-connections.
Example response
JSON
|
Example request and response
curl -k -u <username>:<password> https://127.0.0.1:<port>/services/stack-explainer/v1/topology
curl -k -u <username>:<password> https://127.0.0.1:<port>/services/stack-explainer/v1/topology\?include_unmanaged_actors
{
"header": { "timestamp": "2024-01-15T10:30:00Z" },
"license_manager": {
"guid": "72DBBCDD-65DC-434D-82A3-D29CD899E386",
"label": "lm1",
"fips_enabled": false,
"roles": ["license_manager"],
"host_info": { "scheme": "https", "ip": "10.0.0.1", "fqdn": "lm.example.com", "mgmt_port": 8089, "web-port": 8000 },
"version-info": { "build": "8e742d38e4b5", "version": "10.4.0" },
"os-info": { "name": "Linux", "version": "5.15" },
"managed_by": {}
},
"cluster_manager": { ... },
"indexers": [ ... ],
"search_heads": [ ... ],
"deployers": [ ... ]
}
node-identity
Retrieves identity information for the local Splunk platform node.
https://<host>:<mPort>/services/stack-explainer/v1/node-identity
Retrieves identity information for the local Splunk platform node. Use this information to uniquely identify the node within the deployment.
Available on all node types except universal forwarders.
Requests require the GET method.
AuthorizationRequires the list_topology capability. By default, this capability is assigned to the admin role.
GET
Retrieves identity information for the local Splunk platform node.
Request parameters None Request body NoneReturns data in JSON format.
| Field | Type | Description |
|---|---|---|
| header.timestamp | String |
The UTC timestamp of when the response was generated. |
| fips_enabled | Boolean |
Whether or not the node is running in FIPS mode.
|
| host_info | Object |
A nested object that contains network connectivity details for the remote node:
|
| roles | Array | Server roles assigned to this node |
| version_info | Object |
A nested object that contains the following fields:
|
| os_info: | Object |
A nested object that contains the following fields:
|
| HTTP status code | Description |
|---|---|
| 200 | Successful request was. |
| 500 |
Failure when trying to retrieve the node identity data.
Example response:
JSON
|
Example request and response
curl -k -u admin:<password> \
https://127.0.0.1:<port>/services/stack-explainer/v1/node-identity
{
"header": { "timestamp": "2026-04-07T11:13:02Z" },
"fips_enabled": false,
"host_info": {
"fqdn": "indexer-1.example.com",
"mgmt_scheme": "https",
"mgmt_hostname": "10.0.0.5",
"mgmt_port": 8089,
"web_scheme": "https",
"web_port": 8000
},
"roles": ["indexer", "cluster_peer"],
"version_info": { "build": "37c5143b091f", "version": "10.6.0" },
"os_info": { "build": "build-67890", "name": "Linux", "version": "5.15" }
}
node-identity/{guid}
https://<host>:<mPort>/services/stack-explainer/v1/node-identity/{guid}
Available only on License Manager nodes which are the only nodes capable of connecting to remote nodes.
Requests require the GET method.
Authentication and authorization
Requires the list_topology capability. By default, this capability is assigned to the admin role.
GET
Retrieves identity information for a remote Splunk platform node identified by its {guid}.
Returns data in JSON format.
| Field | Type | Description |
|---|---|---|
| header.timestamp | String |
The UTC timestamp of when the response was generated. |
| fips_enabled | Boolean |
Whether or not the remote node is running in FIPS mode.
|
| host_info | Object |
A nested object that contains network connectivity details for the remote node:
|
| roles | Array | Server roles assigned to the remote node |
| version_info | Object |
A nested object that contains the following fields:
|
| os_info: | Object |
A nested object that contains the following fields:
|
| HTTP status code | Description |
|---|---|
| 200 | Successful request |
| 403 |
Failure when trying to access the endpoint from a different node than the License Manager.
Example response:
JSON
|
| 404 |
Failure when no node matches the specified GUID. |
| 500 |
Failure when trying to retrieve node identity data.
Example response
JSON
|
Example request and response
curl -k -u admin:<password> \
https://127.0.0.1:<port>/services/stack-explainer/v1/node-identity/{guid}
{
"header": { "timestamp": "2026-04-07T11:13:02Z" },
"fips_enabled": false,
"host_info": {
"fqdn": "indexer-2.example.com",
"mgmt_scheme": "https",
"mgmt_hostname": "10.0.0.6",
"mgmt_port": 8089,
"web_scheme": "https",
"web_port": 8000
},
"roles": ["indexer", "cluster_peer"],
"version_info": { "build": "37c5143b091f", "version": "10.6.0" },
"os_info": { "build": "build-67890", "name": "Linux", "version": "5.15" }
}
trusted-connections
Retrieves configuration details for trusted connections on the local node, including HEC inputs, S2S connections, TCP/UDP inputs, and search peer relationships.
https://<host>:<mPort>/services/stack-explainer/v1/trusted-connections
Available on all node types except universal forwarders.
Requests require the GET method.
See also
Authentication and authorization
Requires the list_topology capability. By default, this capability is assigned to the admin role.
GET
Retrieves configuration settings for the trusted connections of the local node, including HEC, S2S, and search peer relationships.
Request parameters None Request body None Returned values Returns data in JSON format.| Name | Type | Description |
|---|---|---|
| header.timestamp | String | The UTC timestamp of when the response was generated. |
| guid | String | The unique identifier of the host node |
| hec | Object |
A nested object that contains configuration and status details for the HTTP Event Collector (HEC):
|
| s2s | Object |
A nested objects that contains configuration details for Splunk-to-Splunk (S2S) connections:
|
| tcp_inputs | Object | A mapping of Transmission Control Protocol (TCP) ports to sender IP addresses for TCP inputs. |
| udp_inputs | Object | A mapping of User Datagram Protocol (UDP) ports to sender IP addresses for UDP inputs. |
| searchPeers | Array |
A list of search peers. This field is present only when the node acts as a search head.
|
| HTTP status code | Description |
|---|---|
| 200 | The request was successful. |
| 500 |
Failure when trying to retrieve trusted-connections.
Example response
JSON
|
Example request and response
curl -k -u admin:<pass> \
https://127.0.0.1:<port>/services/stack-explainer/v1/trusted-connections
{
"header": { "timestamp": "2026-04-08T05:36:08Z" },
"guid": "89773DD4-A41C-406F-9CC2-6FCB54E08C73",
"hec": {
"enabled": true,
"port": 8088,
"hashed_tokens": ["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],
"senders": ["10.0.1.5", "10.0.1.6"]
},
"s2s": {
"receiving_ports": { "9997": ["10.0.1.10", "10.0.1.11"] },
"forwarding_hosts": ["downstream-indexer.example.com:9997"]
},
"tcp_inputs": { "5114": ["10.0.1.20"] },
"udp_inputs": { "5115": ["10.0.1.21"] },
"searchPeers": [
{ "name": "indexer-1.example.com:8089", "guid": "8D98B2F4-3385-4AAF-89B0-634FE60AF26A" }
]
}
trusted-connections/{guid}
Retrieves trusted connection configuration for a remote Splunk platform node, including HEC, S2S, TCP/UDP inputs, and search peer relationships.
https://<host>:<mPort>/services/stack-explainer/v1/trusted-connections/{guid}
Available only on License Manager nodes.
Requests require the GET method.
See also
Authentication and authorization
Requires the list_topology capability. By default, this capability is assigned to the admin role.
GET
Retrieves configuration settings for the trusted connections of the remote node, identified by {guid}, including HEC, S2S, and search peer relationships.
Returns data in JSON format.
| Name | Type | Description |
|---|---|---|
| header.timestamp | String | The UTC timestamp of when the response was generated. |
| guid | String | The unique identifier of the queried remote node |
| hec | Object |
A nested object that contains configuration and status details for the HTTP Event Collector (HEC) on the remote node:
|
| s2s | Object |
A nested objects that contains configuration details for Splunk-to-Splunk (S2S) connections:
|
| tcp_inputs | Object | A mapping of Transmission Control Protocol (TCP) ports to sender IP addresses for TCP inputs. |
| udp_inputs | Object | A mapping of User Datagram Protocol (UDP) ports to sender IP addresses for UDP inputs. |
| searchPeers | Array |
A list of search peers. This field is present only when the node acts as a search head.
|
| HTTP status code | Description |
|---|---|
| 200 | Successful request |
| 403 |
Failure when trying to access the endpoint from a different node than the License Manager.
Example response:
JSON
|
| 404 |
Failure when no node matches the specified {guid}. |
| 500 |
Failure when trying to retrieve trusted connection data.
Example response
JSON
|
Example request and response
curl -k -u admin:<password> \
https://127.0.0.1:<port>/services/stack-explainer/v1/trusted-connections/{guid}
{
"header": { "timestamp": "2026-04-08T05:36:08Z" },
"guid": "89773DD4-A41C-406F-9CC2-6FCB54E08C73",
"hec": {
"enabled": true,
"port": 8088,
"hashed_tokens": ["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],
"senders": ["10.0.1.5", "10.0.1.6"]
},
"s2s": {
"receiving_ports": { "9997": ["10.0.1.10", "10.0.1.11"] },
"forwarding_hosts": ["downstream-indexer.example.com:9997"]
},
"tcp_inputs": { "5114": ["10.0.1.20"] },
"udp_inputs": { "5115": ["10.0.1.21"] },
"searchPeers": [
{ "name": "indexer-1.example.com:8089", "guid": "8D98B2F4-3385-4AAF-89B0-634FE60AF26A" }
]
}