Search Knowledge Base by Keyword
VMware vCenter
Overview
VMware vCenter Server is the management plane for a vSphere environment. It sits above the ESXi hypervisors and holds the inventory: datacenters, clusters, hosts, virtual machines, datastores, networks, resource pools and the tags applied to all of them. Anything an administrator sees in the vSphere Client is served from vCenter, and vCenter exposes that same inventory over an HTTP API.
This connector talks to that API over JSON using the json_rest_api.php driver. It opens a session by posting to the vCenter session endpoint with an HTTP Basic credential built from the connection’s username and password, reads the returned session identifier out of the response, and replays it on every subsequent call as the vmware-api-session-id header. Data jobs are plain GET requests against inventory paths such as /rest/vcenter/host and /rest/vcenter/datastore. Each job reads the value node of the response and writes the rows into its own staging table, all prefixed vmware_.
In a ReadyWorks context this is how the virtual estate gets into the data fabric. Datacenter, cluster, host and VM tables give you the placement of every workload, datastore and network tables give you what it depends on, and the tagging tables give you the ownership and application labels your VMware team already maintains. Reconciled against the CMDB and the endpoint inventory, that is what lets you scope a datacenter exit, size a hardware refresh or build migration waves that follow real host and cluster boundaries.
The connector is registered as bidirectional. The inbound side ships seventeen job templates and is where all the usable content is. The outbound side ships a single generic REST POST scaffold with no endpoint configured, disabled by default, so treat this connector as an inbound collector unless you build the outbound job yourself.
NOTE: Two connection fields ship with the literal placeholder host VCENTER_FQDN_REPLACE: the API Domain and the Authentication Token End Point. Both must be pointed at your own vCenter FQDN. Changing only the first leaves authentication aimed at a host that does not exist.
Connector Properties
| Property | Value |
|---|---|
| Identifier | VCENTER |
| Name | VMware vCenter |
| Description | VMware vCenter is an advanced server management software that provides a centralized platform for controlling vSphere environments for visibility across hybrid clouds. |
| Job Types | Both Inbound and Outbound |
| Order | 20 |
| Enabled | Yes |
| Locked | Yes |
| Block Update | No |
| Single Authentication | No |
| Windows Only | No |
| Connector Version | 2026-06-10 |
| Hooks | None |
| Additional Job Fields | None |
| Image | ![]() |
Authentication Methods
The connector offers one authentication method. It covers the standard vCenter pattern of exchanging a username and password for a session identifier that is then presented on every data call.
| Method | Identifier | Base Method | Script | Order | Enabled | Config Fields |
|---|---|---|---|---|---|---|
| VMWARE JSON: username / password – return authorization token | VCENTER_adb6858644 |
VCENTER_adb6858644 |
json_rest_api.php |
20 | Yes | 7 |
NOTE: Both the authentication call and the data calls run with SSL_VERIFYHOST and SSL_VERIFYPEER set to false, so the vCenter certificate is not validated. This accommodates the self-signed certificate a default vCenter install presents. If you have replaced that certificate with one from a trusted CA, be aware that the connection will still not check it.
NOTE: The connection timeout is 10 seconds and redirects are followed automatically.
Method 1: VMWARE JSON: username / password – return authorization token (VCENTER_adb6858644)
Connect to a JSON method API with a username / password retrieving value for authorization token
Sends an Authorization: Basic header built from the Username and Password fields, Base64 encoded at run time, to the Authentication Token End Point. vCenter replies with a session identifier, which the driver extracts and sends on every data call in the vmware-api-session-id header. Use this method with a vCenter local account or an SSO account that has read access to the inventory. A read-only role scoped at the vCenter root is enough for every shipped inbound template.
Connection Configuration Fields (7)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | https://VCENTER_FQDN_REPLACE |
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 | No | 1024 | Tooltip for Username | |
| 50 | Password | password | No | 64000 | Tooltip for Password | |
| 190 | Authentication Token End Point | text | No | https://VCENTER_FQDN_REPLACE/api/session |
500 | Tooltip for Authentication End Point |
| 240 | Single Authentication | radio | Yes | 0 |
Choose if authentication is only to be done once and not on each enumeration or pagination loop | |
| 250 | Additional Job Fields | fields_list | No | 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 |
Headers sent on the data calls:
| Header | Value | Base64 |
|---|---|---|
vmware-api-session-id: |
%auth_data% |
Off |
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 |
POST |
true |
Not set |
CONNECTTIMEOUT |
10 |
Same |
NOTE: Single Authentication defaults to No, which means the connector logs in again on every pagination and enumeration iteration. See the issues section before running enumerating jobs at scale.
Inbound Job Fields Enabled (44)
Inbound jobs expose the full REST job form: endpoint and method, response node, pagination, three levels of enumeration, retry behaviour and the staging table the rows land 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 | |
| 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 | Request Limit | text | No | Enter request 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 1 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 |
NOTE: Pagination Type defaults to None on every shipped template. vCenter list endpoints return the whole collection in a single response, so on a large inventory you should narrow the request with API Data Parameters (for example a datacenter or cluster filter) rather than relying on paging.
Outbound Job Fields Enabled (13)
Outbound jobs expose the endpoint, method and body encoding along with the outbound field list that builds the payload and the return field list that captures the response.
| 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 (17)
Seventeen inbound templates ship with the connector. Five of them are enabled on a new connection and the rest are supplied switched off, so review the list and turn on the objects you actually need before the first scheduled run. The set covers core inventory (datacenters, clusters, hosts, VMs, datastores, networks, resource pools) and the CIS tagging service (categories, tags and tag associations). Several templates are duplicates of others that exist purely to feed identifiers to a second job.
| # | Job Description | Destination Table | API End Point | Enabled | What It Pulls |
|---|---|---|---|---|---|
| 1 | GET Datacenters | vmware_datacenter |
/rest/vcenter/datacenter |
Yes | The datacenter objects defined in the vCenter inventory, returning each datacenter’s managed object identifier and display name. This is the top of the inventory tree and the natural join key for the datacenter-scoped jobs. |
| 2 | GET Datacenters – Soap Enum 1 | vmware_datacenter_enum_1 |
/rest/vcenter/datacenter |
No | A duplicate of GET Datacenters writing to its own staging table, vmware_datacenter_enum_1. It exists so that another job can use this table as an enumeration source rather than competing for the main datacenter table. |
| 3 | GET Datacenters – Soap Enum 2 | vmware_datacenter_enum_2 |
/rest/vcenter/datacenter |
No | A second duplicate of GET Datacenters, writing to vmware_datacenter_enum_2, provided for the same enumeration-source purpose. |
| 4 | GET Datacenters – Soap Enum 3 | vmware_datacenter_enum_3 |
/rest/vcenter/datacenter |
No | A third duplicate of GET Datacenters, writing to vmware_datacenter_enum_3. |
| 5 | GET VM List | vmware_vm_list |
/rest/vcenter/vm/ |
No | Every virtual machine registered in vCenter, with its managed object identifier, name, power state, configured CPU count and memory size. This is the inventory list, not the per-VM configuration detail. |
| 6 | GET Clusters | vmware_clusters |
/rest/vcenter/cluster |
No | The DRS and HA clusters defined under each datacenter, returning the cluster managed object identifier, name and DRS and HA enablement state. |
| 7 | GET Hosts | vmware_hosts |
/rest/vcenter/host |
No | The ESXi hosts registered with this vCenter, returning the host managed object identifier, name, connection state and power state. |
| 8 | GET Networks | vmware_network |
/rest/vcenter/network |
Yes | The networks visible in the inventory, covering standard port groups, distributed port groups and opaque networks, each with its identifier, name and network type. |
| 9 | GET Datastores | vmware_datastores |
/rest/vcenter/datastore |
No | The datastores backing the estate, returning the datastore identifier, name, type (VMFS, NFS, vSAN and so on), total capacity and free space. |
| 10 | GET Resource Pools | vmware_resource_pools |
/rest/vcenter/resource-pool |
No | The resource pools defined under clusters and standalone hosts, returning the pool identifier and name. |
| 11 | GET Datacenters – Soap Enum 4 | vmware_datacenter_enum_4 |
/rest/vcenter/datacenter |
No | A fourth duplicate of GET Datacenters, writing to vmware_datacenter_enum_4. |
| 12 | GET Categories | vmware_categories |
/rest/com/vmware/cis/tagging/category |
No | The identifiers of every tag category defined in the CIS tagging service. Categories are the containers that group tags, for example Application, Owner or Environment. This job returns identifiers only, and the names come from GET Category Info. |
| 13 | GET Category Info | vmware_category_info |
/rest/com/vmware/cis/tagging/category/id:%enum_id_1% |
Yes | The full definition of one tag category looked up by identifier: its name, description, cardinality (whether one or many tags from the category may be applied to an object) and the inventory object types it may be attached to. |
| 14 | GET Tags | vmware_tags |
/rest/com/vmware/cis/tagging/tag |
No | The identifiers of every tag defined in the tagging service. As with categories, this returns identifiers only and the descriptive detail comes from GET Tag Info. |
| 15 | GET Tag Info | vmware_tag_info |
/rest/com/vmware/cis/tagging/tag/id:%enum_id_1% |
Yes | The full definition of one tag looked up by identifier: its name, description and the category it belongs to. Joined to GET Tags this turns opaque tag identifiers into readable labels. |
| 16 | GET Tags Enum 2 | vmware_tags_enum_2 |
/rest/com/vmware/cis/tagging/tag |
No | A duplicate of GET Tags writing to vmware_tags_enum_2, provided as a separate enumeration source so the tag identifier list can be consumed without contending with the main tag table. |
| 17 | POST Tag Associations | vmware_tag_associations |
/rest/com/vmware/cis/tagging/tag-association/id:%enum_id_1%?~action=list-attached-objects |
Yes | For one tag identifier, the list-attached-objects action returns every inventory object that tag is currently applied to, with the object type and managed object identifier. This is the table that turns VMware tags into usable ownership and application attribution across the estate. It ships with a retry setting of one attempt, one second apart, with a one second timeout. |
Job Template Configuration
Settings Common to All Seventeen 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 |
| API Return Data Node | value |
Settings That Vary by Template
| Template | ID | Order | Enabled | Destination Table | Data Identity | Method Type | API End Point |
|---|---|---|---|---|---|---|---|
| GET Datacenters | 210 | 10000 | Yes | vmware_datacenter |
vmware_datacenter_info |
GET |
/rest/vcenter/datacenter |
| GET Datacenters – Soap Enum 1 | 211 | 10000 | No | vmware_datacenter_enum_1 |
vmware_datacenter_info_enum_1 |
GET |
/rest/vcenter/datacenter |
| GET Datacenters – Soap Enum 2 | 212 | 10000 | No | vmware_datacenter_enum_2 |
vmware_datacenter_info_enum_2 |
GET |
/rest/vcenter/datacenter |
| GET Datacenters – Soap Enum 3 | 213 | 10000 | No | vmware_datacenter_enum_3 |
vmware_datacenter_info_enum_3 |
GET |
/rest/vcenter/datacenter |
| GET VM List | 214 | 10000 | No | vmware_vm_list |
vmware_vm_list |
GET |
/rest/vcenter/vm/ |
| GET Clusters | 215 | 10000 | No | vmware_clusters |
vmware_clusters |
GET |
/rest/vcenter/cluster |
| GET Hosts | 216 | 10000 | No | vmware_hosts |
vmware_hosts |
GET |
/rest/vcenter/host |
| GET Networks | 217 | 10001 | Yes | vmware_network |
vmware_network |
GET |
/rest/vcenter/network |
| GET Datastores | 218 | 10002 | No | vmware_datastores |
vmware_datastores |
GET |
/rest/vcenter/datastore |
| GET Resource Pools | 219 | 10002 | No | vmware_resource_pools |
vmware_resource_pools |
GET |
/rest/vcenter/resource-pool |
| GET Datacenters – Soap Enum 4 | 220 | 10003 | No | vmware_datacenter_enum_4 |
vmware_datacenter_info_enum_4 |
GET |
/rest/vcenter/datacenter |
| GET Categories | 221 | 10004 | No | vmware_categories |
vmware_categories |
GET |
/rest/com/vmware/cis/tagging/category |
| GET Category Info | 222 | 10005 | Yes | vmware_category_info |
vmware_category_info |
GET |
/rest/com/vmware/cis/tagging/category/id:%enum_id_1% |
| GET Tags | 223 | 10006 | No | vmware_tags |
vmware_tags |
GET |
/rest/com/vmware/cis/tagging/tag |
| GET Tag Info | 224 | 10007 | Yes | vmware_tag_info |
vmware_tag_info |
GET |
/rest/com/vmware/cis/tagging/tag/id:%enum_id_1% |
| GET Tags Enum 2 | 225 | 10008 | No | vmware_tags_enum_2 |
vmware_tags |
GET |
/rest/com/vmware/cis/tagging/tag |
| POST Tag Associations | 226 | 10009 | Yes | vmware_tag_associations |
vmware_tag_associations |
POST |
/rest/com/vmware/cis/tagging/tag-association/id:%enum_id_1%?~action=list-attached-objects |
Settings That Vary by Template (continued)
| Template | ID | Retry Pause |
|---|---|---|
| GET Datacenters | 210 | Not set |
| GET Datacenters – Soap Enum 1 | 211 | Not set |
| GET Datacenters – Soap Enum 2 | 212 | Not set |
| GET Datacenters – Soap Enum 3 | 213 | Not set |
| GET VM List | 214 | Not set |
| GET Clusters | 215 | Not set |
| GET Hosts | 216 | Not set |
| GET Networks | 217 | Not set |
| GET Datastores | 218 | Not set |
| GET Resource Pools | 219 | Not set |
| GET Datacenters – Soap Enum 4 | 220 | Not set |
| GET Categories | 221 | Not set |
| GET Category Info | 222 | Not set |
| GET Tags | 223 | Not set |
| GET Tag Info | 224 | Not set |
| GET Tags Enum 2 | 225 | Not set |
| POST Tag Associations | 226 | 1,1,1 |
Job Parameters and Enumeration
GET Category Info
Enumeration 1 fields:
| Name | Value |
|---|---|
enum_id_1 |
data |
GET Tag Info
Enumeration 1 fields:
| Name | Value |
|---|---|
enum_id_1 |
data |
POST Tag Associations
Enumeration 1 fields:
| Name | Value |
|---|---|
enum_id_1 |
data |
NOTE: The tagging templates are designed as a chain: GET Categories and GET Tags produce identifier lists, and GET Category Info, GET Tag Info and POST Tag Associations expand one identifier at a time. The expanding jobs need an enumeration source configured before they can run. See the issues section.
NOTE: The five templates whose descriptions end in “Soap Enum” or “Enum 2” are duplicates of GET Datacenters and GET Tags. They collect no data of their own and are useful only when you are wiring an enumeration source for another job.
Outbound Job Templates (1)
One outbound template ships, disabled. It is a generic scaffold rather than a ready-made vCenter action.
| # | Job Description | Method | API End Point | Enabled | What It Does |
|---|---|---|---|---|---|
| 1 | Rest POST API | POST |
Not set |
No | An empty REST POST job with no endpoint set. It carries a single outbound field, record_key, and three return fields for status, message and the echoed record key. Use it as the starting point if you need to push data to a vCenter or vSphere automation endpoint, supplying the endpoint and the payload fields yourself. |
Job Template Configuration
Settings
| Setting | Value |
|---|---|
| Order | 10 |
| Enabled | No |
| 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: Because the template has no API End Point, it cannot do anything useful until you configure one. It ships disabled for that reason.

