Search Knowledge Base by Keyword
Nutanix Prism
Overview
Nutanix Prism is the management plane for Nutanix hyperconverged infrastructure. A Nutanix deployment is a cluster of physical nodes whose local storage is pooled and presented back to virtual machines, typically running Nutanix’s own AHV hypervisor. Prism Element manages a single cluster, Prism Central manages many, and both expose a REST API on port 9440 covering clusters, the hosts inside them, virtual machines, storage containers, virtual subnets, and the categories and projects used to tag and group workloads.
This connector targets the current v4 API surface. It authenticates with HTTP Basic against the API Domain you supply (the shipped default is https://PRISM_FQDN_REPLACE:9440, which you must replace), and each job issues a GET against a versioned v4 service path such as /api/clustermgmt/v4.0/config/hosts. The v4 responses wrap their payload in a data node, which every template sets as the return data node, and the rows land in prism_* staging tables. One template still uses the older v3 projects call, because projects have no v4 equivalent in the shipped set.
For the estate, this is the Nutanix inventory backbone. Clusters, hosts and VMs let you resolve a workload to the node and cluster carrying it, storage containers give you the capacity picture behind those workloads, and categories and projects carry the tagging and ownership model Nutanix policies are written against. Together they let you scope a hardware change, a cluster upgrade or a migration wave to exactly the virtual machines and owners affected.
The connector is bidirectional. A single generic outbound template ships, a POST that sends a record key as JSON to an endpoint you configure and reads a status, message and record key back. There is no Nutanix-specific outbound action in the default catalogue, so the outbound side is a starting point rather than a working integration.
NOTE: Two Nutanix Prism connectors ship. Use this one when your Prism and AHV versions expose the v4 APIs. Use Nutanix Prism - Legacy when they only offer v3 and v2.0. The two are otherwise near-identical: same connector version, same Basic authentication form, same job fields. They differ in the API versions their templates call and in their staging table names, which lets you run both side by side during an upgrade.
Connector Properties
| Property | Value |
|---|---|
| Identifier | NUTANIX PRISM |
| Name | Nutanix Prism |
| Description | An Enterprise-Grade Control Plane for Unified Hybrid Cloud Management. This connector supports AHV versions that support up to API v4 |
| Job Types | Both Inbound and Outbound |
| Order | 40 |
| Enabled | Yes |
| Locked | Yes |
| Block Update | No |
| Single Authentication | No |
| Windows Only | No |
| Connector Version | 2026-07-27 |
| Hooks | None |
| Additional Job Fields | None |
| Image | ![]() |
Authentication Methods
One authentication method ships. Prism accepts HTTP Basic credentials directly on the REST API, so there is no token exchange to configure.
| Method | Identifier | Base Method | Script | Order | Enabled | Config Fields |
|---|---|---|---|---|---|---|
| Username / Password | NUTANIX PRISM_b3a4 |
JSON Rest API_user |
json_rest_api.php |
10 | Yes | 5 |
NOTE: Certificate verification is disabled on both the authentication and data calls. Prism ships with a self-signed certificate, so this is what makes the connection work without further setup. If you have installed a CA-issued certificate on Prism, the connector still will not validate it.
NOTE: The API Domain default is the literal placeholder https://PRISM_FQDN_REPLACE:9440. Replace the host portion with your Prism Central or Prism Element FQDN. The :9440 port is correct for Prism.
Method 1: Username / Password (NUTANIX PRISM_b3a4)
Connect to a GET method API with a username / password
Sends an Authorization: Basic header built from the username and password on the connection, Base64 encoded at run time. Use a dedicated Prism account with a read-only role that can see every cluster you want inventoried; the v4 endpoints return only what the account is authorised for. Point the connection at Prism Central if you want one connection to cover all clusters.
Connection Configuration Fields (5)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | https://PRISM_FQDN_REPLACE:9440 |
255 | Enter API domain of the Connection |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 40 | Username | text | Yes | 1024 | Enter username of the Connection | |
| 50 | Password | password | Yes | 64000 | Enter password of the Connection | |
| 250 | Additional Job Fields | fields_list | No | [{"key":"prism","value":"REPLACE"}] |
Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
Headers sent on the authentication call:
| Header | Value | Base64 |
|---|---|---|
Content-Type: |
application/json |
Off |
Authorization: Basic |
%user_name%:%user_pass% |
On |
cURL options:
| Option | Authentication Call | Data Calls |
|---|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:47.0) Gecko/20100101 Firefox/47.0 |
Same |
SSL_VERIFYHOST |
false |
Same |
SSL_VERIFYPEER |
false |
Same |
RETURNTRANSFER |
true |
Same |
FOLLOWLOCATION |
true |
Same |
FAILONERROR |
true |
Same |
CONNECTTIMEOUT |
10 |
Same |
Inbound Job Fields Enabled (45)
The inbound job form exposes the standard REST job fields: endpoint, return data node, pagination, three levels of enumeration, and the staging table the response lands in.
| Order | Label | Type | Required | Default | Tooltip |
|---|---|---|---|---|---|
| 10 | Job Description | text | Yes | Enter description of the Job | |
| 20 | Job Schedule | lookup | Yes | Daily | Select frequency Job should run |
| 30 | Enabled | radio | Yes | Yes | Choose if Job is enabled |
| 40 | Use Unparsed Data | radio | No | No | Choose if you wish to parse the incoming data, or leave it in its raw format |
| 50 | Log Raw API Calls | radio | Yes | No | Choose if raw API calls are logged |
| 70 | Destination Table | text | Yes | Enter name of the destination table | |
| 80 | Data Identity | text | No | Enter identity of the Job | |
| 110 | Append Files to Same Destination Table | radio | No | No | Choose if multiple files in the same path will append to the same destination table, or will create a new destination table for each file |
| 120 | Append New Data to Existing Tables | radio | No | No | Choose if new data will append to the existing destination table, or will create a new destination table |
| 130 | Fields to Index | text | No | Enter fields to index | |
| 170 | Method Type | select | Yes | GET |
Select method type of the Job |
| 190 | API End Point | text | No | Enter API end point of the Job | |
| 200 | API Data Parameters | fields_list | No | Enter API data parameters of the Job | |
| 210 | Body Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the body data |
| 220 | Raw JSON Body Data | textarea | No | Enter the raw JSON body to send. Do not use body selections in the API Parameters if this is used. | |
| 230 | API Return Data Node | text | No | Enter API return data node of the Job | |
| 250 | Pagination Type | select | No | None | Select request paging type of the Job |
| 270 | API Pagination Node | text | No | Enter API pagination node of the Job | |
| 280 | Pagination Offset Start | text | No | Enter request paging offset start of the Job | |
| 290 | Pagination Limit | text | No | Enter request pagination limit of the Job | |
| 300 | Pagination Termination Node | text | No | Enter request paging termination node and value of the Job | |
| 310 | Maximum API Calls | text | No | Enter maximum number of API calls for the Job to make | |
| 320 | Enumeration 1 Type | select | No | None | Enter enumeration level 1 type |
| 330 | Enumeration 1 ETL Job | lookup | No | Select ETL job for the enumeration values | |
| 340 | Enumeration 1 Data Type | data_type | No | Select the data type and fields for enumeration 1 values | |
| 350 | Enumeration 1 Keys End Point | text | No | Enter enumeration 1 keys end point of the Job | |
| 360 | Enumeration 1 Node | text | No | Enter enumeration 1 node of the Job | |
| 370 | Enumeration 1 Fields | fields_list | No | Enter enumeration 1 fields of the Job | |
| 380 | Enumeration 2 Type | select | No | None | Enter enumeration level 2 type |
| 390 | Enumeration 2 ETL Job | lookup | No | Select ETL job for the enumeration 2 values | |
| 400 | Enumeration 2 Data Type | data_type | No | Select the data type and fields for enumeration 2 values | |
| 410 | Enumeration 2 Keys End Point | text | No | Enter enumeration 2 keys end point of the Job | |
| 420 | Enumeration 2 Node | text | No | Enter enumeration 2 node of the Job | |
| 430 | Enumeration 2 Fields | fields_list | No | Enter enumeration 2 fields of the Job | |
| 440 | Enumeration 3 Type | select | No | None | Enter enumeration level 3 type |
| 450 | Enumeration 3 ETL Job | lookup | No | Select ETL job for the enumeration 3 values | |
| 460 | Enumeration 3 Data Type | data_type | No | Select the data type and fields for enumeration 3 values | |
| 470 | Enumeration 3 Keys End Point | text | No | Enter enumeration 3 keys end point of the Job | |
| 480 | Enumeration 3 Node | text | No | Enter enumeration 3 node of the Job | |
| 490 | Enumeration 3 Fields | fields_list | No | Enter enumeration 3 fields of the Job | |
| 500 | Pause Enumeration | text | No | Enter values for pausing enumeration every X calls for Y seconds | |
| 510 | Kill Enumeration on Error | radio | No | No | Choose to stop the enumeration loop on an error or continue processing the loop |
| 520 | Additional Fields | fields_list | No | Enter list of additional fields to add to staging data | |
| 550 | Retry Pause | text | No | Enter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds. | |
| 560 | Order | text | Yes | Enter order of the Job |
Outbound Job Fields Enabled (13)
| Order | Label | Type | Required | Default | Tooltip |
|---|---|---|---|---|---|
| 10 | Job Description | text | Yes | Enter description of the Job | |
| 30 | Enabled | radio | Yes | Yes | Choose if Job is enabled |
| 50 | Log Raw API Calls | radio | Yes | No | Choose if raw API calls are logged |
| 170 | Method Type | select | Yes | GET |
Select method type of the Job |
| 180 | Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the outbound data |
| 190 | API End Point | text | No | Enter API end point of the Job | |
| 200 | API Data Parameters | fields_list | No | Enter API data parameters of the Job | |
| 210 | Body Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the body data |
| 260 | Return Data Fields List | fields_list | Yes | Enter return data fields of the Job | |
| 530 | Outbound Fields List | fields_list | Yes | Enter outbound fields of the Job | |
| 540 | Ignore Empty Outbound Fields | radio | No | Yes | Ignore, and do not include, any outbound fields that are empty and have no data |
| 550 | Raw JSON Outbound Template | textarea | No | Enter the raw JSON outbound template to send. This will replace any automated structures defined in the outbound fields. | |
| 560 | Order | text | Yes | Enter order of the Job |
Inbound Job Templates (9)
Nine inbound templates ship, eight of them against v4 service endpoints and one against the older v3 projects call. All run Daily. Eight are active by default; GET Clusters - Enum 1 ships disabled because it exists to feed an enumeration rather than to stage data in its own right.
| # | Job Description | Destination Table | API End Point | Enabled | What It Pulls |
|---|---|---|---|---|---|
| 1 | GET Projects V3 | prism_projects_v3 |
/api/nutanix/v3/projects/list |
Yes | Prism Central projects from the v3 intentful API, with project name and uuid, owner, the subnets and resources allotted to each project and the quotas applied. The one v3 call in an otherwise v4 template set. |
| 2 | GET Containers | prism_containers |
/api/clustermgmt/v4.0/config/storage-containers |
Yes | The storage containers that back each cluster, with replication factor, compression and deduplication settings, and the capacity and usage figures behind the workloads sitting on them. |
| 3 | GET Clusters – Enum 1 | prism_clusters_enum_1 |
/api/clustermgmt/v4.0/config/clusters |
No | The same cluster collection as GET Clusters, shipped disabled and named as the key source for the GET Cluster Hosts enumeration. It exists to produce the list of cluster external ids that the per-cluster host job loops over. |
| 4 | GET Subnets | prism_subnets |
/api/networking/v4.0/config/subnets |
Yes | The virtual subnets defined on AHV, with name and external id, VLAN identifier, IP address management configuration and the cluster each belongs to. |
| 5 | GET Hosts | prism_hosts |
/api/clustermgmt/v4.0/config/hosts |
Yes | Every physical node under management, with host name and external id, hardware serial and block model, CPU and memory configuration, hypervisor type and version, the IPMI and controller VM addresses, and the cluster the node belongs to. |
| 6 | GET Clusters | prism_clusters |
/api/clustermgmt/v4.0/config/clusters |
Yes | Each Nutanix cluster Prism knows about: cluster name and external id, the AOS release it runs, node count, redundancy factor and the external and virtual IP addresses it answers on. |
| 7 | GET Categories | prism_categories |
/api/prism/v4.0/config/categories |
Yes | The category keys and values Nutanix uses to tag entities. This is the tagging model Prism policies and projects are written against, so it is how you translate a Nutanix policy scope into a list of workloads. |
| 8 | GET Cluster Hosts | prism_cluster_hosts |
/api/clustermgmt/v4.0/config/clusters/%enum_id_1%/hosts |
Yes | The hosts belonging to one named cluster, called once per cluster with the cluster’s external id substituted into the path. It is the per-cluster equivalent of GET Hosts, intended for estates where you want the host list scoped and paced cluster by cluster. |
| 9 | GET VMs | prism_vms |
/api/vmm/v4.0/ahv/config/vms |
Yes | Every virtual machine on AHV, with name and external id, power state, vCPU and memory allocation, attached disks and network interfaces, and the host and cluster it is running on. The largest collection in the set on most estates. |
Job Template Configuration
Settings Common to All Nine Templates
| Setting | Value |
|---|---|
| Job Schedule | Daily (15 1 * * *) |
| Allow Empty Table | Yes |
| Append Files to Same Destination Table | No |
| Append New Data to Existing Tables | No |
| Use Unparsed Data | No |
| Convert UUID-Keyed Objects to Rows | No |
| Ignore XML Attributes | No |
| Log Raw API Calls | No |
| Body Data Sending Method | JSON Encoded Data |
Settings That Vary by Template
| Template | ID | Order | Enabled | Destination Table | Data Identity | Method Type | API End Point |
|---|---|---|---|---|---|---|---|
| GET Projects V3 | 137 | 30 | Yes | prism_projects_v3 |
prism_projects_v3 |
POST |
/api/nutanix/v3/projects/list |
| GET Containers | 128 | 30000 | Yes | prism_containers |
prism_containers |
GET |
/api/clustermgmt/v4.0/config/storage-containers |
| GET Clusters – Enum 1 | 129 | 30000 | No | prism_clusters_enum_1 |
prism_clusters_enum_1 |
GET |
/api/clustermgmt/v4.0/config/clusters |
| GET Subnets | 130 | 30001 | Yes | prism_subnets |
prism_subnets |
GET |
/api/networking/v4.0/config/subnets |
| GET Hosts | 131 | 30002 | Yes | prism_hosts |
prism_hosts |
GET |
/api/clustermgmt/v4.0/config/hosts |
| GET Clusters | 132 | 30003 | Yes | prism_clusters |
prism_clusters |
GET |
/api/clustermgmt/v4.0/config/clusters |
| GET Categories | 136 | 30003 | Yes | prism_categories |
prism_categories |
GET |
/api/prism/v4.0/config/categories |
| GET Cluster Hosts | 133 | 30004 | Yes | prism_cluster_hosts |
prism_cluster_hosts |
GET |
/api/clustermgmt/v4.0/config/clusters/%enum_id_1%/hosts |
| GET VMs | 134 | 30005 | Yes | prism_vms |
prism_vms |
GET |
/api/vmm/v4.0/ahv/config/vms |
Settings That Vary by Template (continued)
| Template | ID | API Return Data Node | Pagination Type | Pagination Limit | Retry Pause | Pagination Offset Start | Pagination Termination Node |
|---|---|---|---|---|---|---|---|
| GET Projects V3 | 137 | entities |
Not set | Not set | Not set | Not set | Not set |
| GET Containers | 128 | data |
Pages | 50 |
Not set | 0 |
metadata.totalAvailableResults<=%total_root_records% |
| GET Clusters – Enum 1 | 129 | data |
Pages | 50 |
1,1,5 |
0 |
metadata.totalAvailableResults<=%total_root_records% |
| GET Subnets | 130 | data |
Not set | Not set | Not set | Not set | Not set |
| GET Hosts | 131 | data |
Pages | 50 |
Not set | 0 |
metadata.totalAvailableResults<=%total_root_records% |
| GET Clusters | 132 | data |
Pages | 50 |
1,1,5 |
0 |
metadata.totalAvailableResults<=%total_root_records% |
| GET Categories | 136 | data |
Pages | 50 |
1,1,5 |
0 |
metadata.totalAvailableResults<=%total_root_records% |
| GET Cluster Hosts | 133 | data |
Not set | Not set | 1,1,5 |
Not set | Not set |
| GET VMs | 134 | data |
Pages | 50 |
Not set | 0 |
metadata.totalAvailableResults<=%total_root_records% |
Settings That Vary by Template (continued)
| Template | ID | lu__active_connection_job |
|---|---|---|
| GET Projects V3 | 137 | Not set |
| GET Containers | 128 | Not set |
| GET Clusters – Enum 1 | 129 | Not set |
| GET Subnets | 130 | Not set |
| GET Hosts | 131 | Not set |
| GET Clusters | 132 | Not set |
| GET Categories | 136 | Not set |
| GET Cluster Hosts | 133 | 56 |
| GET VMs | 134 | Not set |
Job Parameters and Enumeration
GET Projects V3
API data parameters:
| Key | Value | In Body |
|---|---|---|
kind |
project |
on |
GET Containers
API data parameters:
| Key | Value | Type |
|---|---|---|
page |
%pagination_offset% |
Numeric |
limit |
50 |
Numeric |
GET Clusters – Enum 1
API data parameters:
| Key | Value | Type |
|---|---|---|
page |
%pagination_offset% |
Numeric |
limit |
50 |
Numeric |
GET Hosts
API data parameters:
| Key | Value | Type |
|---|---|---|
page |
%pagination_offset% |
Numeric |
limit |
50 |
Numeric |
GET Clusters
API data parameters:
| Key | Value | Type |
|---|---|---|
page |
%pagination_offset% |
Numeric |
limit |
50 |
Numeric |
GET Categories
API data parameters:
| Key | Value | Type |
|---|---|---|
page |
%pagination_offset% |
Numeric |
limit |
50 |
Numeric |
GET Cluster Hosts
Enumeration 1 fields:
| Name | Value |
|---|---|
enum_id_1 |
extId |
GET VMs
API data parameters:
| Key | Value | Type |
|---|---|---|
$page |
%pagination_offset% |
Numeric |
$limit |
50 |
Numeric |
NOTE: GET Hosts and GET Cluster Hosts return the same kind of record by different routes. Enable one of them. Running both stages the host inventory twice, into prism_hosts and prism_cluster_hosts.
Outbound Job Templates (1)
One generic outbound template ships. It is a starting point for pushing a ReadyWorks record to an API, not a Nutanix action.
| # | Job Description | Method | API End Point | Enabled | What It Does |
|---|---|---|---|---|---|
| 1 | Rest POST API | POST |
Not set |
Yes | Posts a single field, Record Key, as a JSON body to whatever endpoint you configure, and reads a status, a message and an echoed record key back out of the response. The endpoint is empty as shipped, so it has no target until you set one. |
Job Template Configuration
Settings
| Setting | Value |
|---|---|
| Order | 10 |
| Enabled | Yes |
| Log Raw API Calls | No |
| Method Type | POST |
| Body Data Sending Method | JSON Encoded Data |
| Data Sending Method | JSON Encoded Data |
| Ignore Empty Outbound Fields | Yes |
Job Parameters and Enumeration
Rest POST API
Outbound fields list:
| Label | Name | Type | Required | Pattern |
|---|---|---|---|---|
Record Key |
record_key |
String | on |
Return data fields:
| Label | Name |
|---|---|
Return Status |
status |
Return Message |
message |
Record Key |
data.record_key |
NOTE: This template ships with Enabled set to Yes and an empty API End Point. Set an endpoint or disable it before binding it to a process.

