- About VES Public REST API
- Overview
- Login
- Collectors
- getGet Collector Hierarchy Tree
- getGet List of Registered Collectors
- getGet All Collector Groups
- getGet All Monitoring Jobs
- postMove Collector to Different Group
- postMove Monitoring Jobs to Collector
- postUnregister Collector
- postTrigger Topology Rebuild
- postRebalance Monitoring Load Across All Groups
- postRebalance Monitoring Load in Group
- postCreate Collector Group
- postRename Collector Group
- delDelete Collector Group
- HypervServers
- License
- Settings
- VmwareServers
- getGet VMware Server Hierarchy Tree
- getGet VMware Server Data
- postRegister VMware vCenter or ESXi Host
- postRegister VMware vCenter or ESXi Host Without Immediate Connection
- postRetrieve SSL Certificate
- postUpdate VMware Server Configuration
- postPerform VMware Servers Connectivity Check
- postDiscover Available Monitoring Jobs
- postRemove VMware Servers
- postAdd VMware Topology to Monitoring
- postRemove VMware Topology from Monitoring
- getGet Latest Connectivity Test Results
- postStart Connectivity Test
- postStop Connectivity Test
The /VmwareServers resource collection represents all VMware servers added to your management server infrastructure.
Get VMware Server Hierarchy Tree
The HTTP GET request to the /vmwareServers/serversTree endpoint retrieves a hierarchical tree of registered VMware servers with their clusters and hosts.
OK
Unauthorized
Internal Server Error
- curl
- Python
- JavaScript
- C#
- Go
- 200
- 500
[- {
- "id": "00000000-0000-0000-0000-000000000000",
- "name": "Connected vSphere Servers",
- "type": "Root",
- "connectionStatus": "Available",
- "isNodeMonitored": true,
- "sockets": 14,
- "monitored": 2,
- "total": 4,
- "autoAddGroup": null,
- "children": [
- {
- "id": "vcenter.lab.local",
- "name": "vcenter.lab.local",
- "type": "VCenter",
- "connectionStatus": "Available",
- "isNodeMonitored": true,
- "sockets": 12,
- "monitored": 2,
- "total": 3,
- "autoAddGroup": "Default",
- "children": [
- {
- "id": "vcenter.lab.local\\u0001domain-c1",
- "name": "Production Cluster",
- "type": "Cluster",
- "connectionStatus": null,
- "isNodeMonitored": true,
- "sockets": 8,
- "monitored": 2,
- "total": 2,
- "autoAddGroup": null,
- "children": [
- {
- "id": "vcenter.lab.local\\u0001host-10",
- "name": "esxi-node01.lab.local",
- "type": "Host",
- "connectionStatus": null,
- "isNodeMonitored": true,
- "sockets": 4,
- "monitored": null,
- "total": null,
- "autoAddGroup": null,
- "children": null,
- "monitoringStatus": "Success",
- "connectionStatusIndicator": null
}, - {
- "id": "vcenter.lab.local\\u0001host-11",
- "name": "esxi-node02.lab.local",
- "type": "Host",
- "connectionStatus": null,
- "isNodeMonitored": true,
- "sockets": 4,
- "monitored": null,
- "total": null,
- "autoAddGroup": null,
- "children": null,
- "monitoringStatus": "Success",
- "connectionStatusIndicator": null
}
], - "monitoringStatus": "Success",
- "connectionStatusIndicator": null
}, - {
- "id": "vcenter.lab.local\\u0001host-20",
- "name": "esxi-standalone.lab.local",
- "type": "Host",
- "connectionStatus": null,
- "isNodeMonitored": false,
- "sockets": 4,
- "monitored": null,
- "total": null,
- "autoAddGroup": null,
- "children": null,
- "monitoringStatus": "Info",
- "connectionStatusIndicator": null
}
], - "monitoringStatus": "Info",
- "connectionStatusIndicator": "Success"
}, - {
- "id": "esxi-direct.lab.local",
- "name": "esxi-direct.lab.local",
- "type": "Host",
- "connectionStatus": "Available",
- "isNodeMonitored": false,
- "sockets": 2,
- "monitored": 0,
- "total": 1,
- "autoAddGroup": null,
- "children": [
- {
- "id": "esxi-direct.lab.local\\u0001ha-host",
- "name": "esxi-direct.lab.local",
- "type": "Host",
- "connectionStatus": null,
- "isNodeMonitored": false,
- "sockets": 2,
- "monitored": null,
- "total": null,
- "autoAddGroup": null,
- "children": null,
- "monitoringStatus": "Info",
- "connectionStatusIndicator": null
}
], - "monitoringStatus": "Info",
- "connectionStatusIndicator": "Success"
}
], - "monitoringStatus": "Info",
- "connectionStatusIndicator": "Success"
}
]Get VMware Server Data
The HTTP GET request to the /vmwareServers/server/{id} endpoint retrieves the configuration of a registered VMware server with the specified ID.
path Parameters
| id required | string |
OK
Unauthorized
Not Found
Internal Server Error
- curl
- Python
- JavaScript
- C#
- Go
- 200
- 500
{- "proxy": null,
- "dnsNameOrIp": "vcenter.lab.local",
- "port": 443,
- "useProxy": false,
- "username": "administrator@vsphere.local",
- "notes": "Production vCenter",
- "group": "Default",
- "jobsIds": [
- "vcenter.lab.local\\u0001domain-c1",
- "vcenter.lab.local\\u0001domain-c2"
], - "enableMonitoringNewJobs": true,
- "acceptedCertThumbprint": null
}Register VMware vCenter or ESXi Host
The HTTP POST request to the /vmwareServers/server/add endpoint registers a new VMware server or ESXi host for monitoring.
The jobsIds field can contain topology node IDs obtained from the server/getJobs endpoint response. Each ID is a compound value from the id field of the returned job object. If the field is omitted or empty, the server is registered without monitoring jobs.
##Certificate validation
By default, the full SSL certificate chain is validated when the connection to the server is established. If the certificate is not trusted (for example, a self-signed certificate or a certificate issued by an untrusted CA), the request fails with an error.
To add a server with an untrusted certificate, specify the certificate thumbprint in the acceptedCertThumbprint field of the request body.
Request Body schema: application/json
| dnsNameOrIp required | string or null FQDN or IP address of the VMware server. |
| group required | string or null Name of the Collector group to which the monitoring jobs of this server are assigned. |
| password required | string or null Password for VMware server authentication. |
| useProxy required | boolean Defines whether the connection will be established through a proxy server. |
| username required | string or null User name for VMware server authentication. |
| port | integer <int32> [ 1 .. 65535 ] Port used to connect to the VMware server. If omitted, the default value 443 will be used. |
object (ProxySettings) Proxy server connection settings. | |
| notes | string or null Optional notes for the VMware server. |
| jobsIds | Array of strings or null IDs assigned to the monitoring jobs. |
| enableMonitoringNewJobs | boolean or null Defines whether to monitor newly discovered jobs automatically. |
| acceptedCertThumbprint | string or null SHA-1 thumbprint of the VMware SSL certificate. The thumbprint is required when the server uses a self-signed or otherwise untrusted certificate. |
No Content
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "dnsNameOrIp": "vcenter.lab.local",
- "port": 443,
- "useProxy": true,
- "proxy": {
- "password": "1234567",
- "server": "proxy.lab.local",
- "port": 3128,
- "username": "proxyuser"
}, - "username": "administrator@vsphere.local",
- "password": "1234567",
- "notes": "Production vCenter",
- "group": "Default",
- "jobsIds": [
- "vcenter.lab.local\\u0001domain-c1",
- "vcenter.lab.local\\u0001host-20"
], - "enableMonitoringNewJobs": true,
- "acceptedCertThumbprint": "A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0"
}- 500
{- "message": "string"
}Register VMware vCenter or ESXi Host Without Immediate Connection
The HTTP POST request to the /vmwareServers/server/addDelayed endpoint registers a new VMware vCenter or ESXi host without attempting to connect to it during the request.
Unlike the /vmwareServers/server/add endpoint, this endpoint does not validate connectivity, credentials,or the SSL certificate during registration. The server is saved to the configuration, and the connection is established later by the background monitoring process. Use this endpoint to register servers in bulk or to register a server that is temporarily unreachable.
Request Body schema: application/json
| dnsNameOrIp required | string or null FQDN or IP address of the VMware server. |
| group required | string or null Name of the Collector group to which the monitoring jobs of this server are assigned. |
| password required | string or null Password for VMware server authentication. |
| username required | string or null User name for VMware server authentication. |
| port | integer <int32> [ 1 .. 65535 ] Port used to connect to the VMware server. |
| enableMonitoringNewJobs | boolean Defines whether to monitor newly discovered jobs automatically. |
| acceptedCertThumbprint | string or null SHA-1 thumbprint of the VMware SSL certificate. The thumbprint is required when the server uses a self-signed or otherwise untrusted certificate. |
No Content
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "dnsNameOrIp": "vcenter.lab.local",
- "port": 443,
- "username": "administrator@vsphere.local",
- "password": "1234567",
- "group": "Default",
- "enableMonitoringNewJobs": true,
- "acceptedCertThumbprint": "A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0"
}- 500
{- "message": "string"
}Retrieve SSL Certificate
The HTTP POST request to the /vmwareServers/server/validateSslCertificate endpoint connects to a VMware server and validates its SSL certificate chain.
If the certificate is trusted, the untrustedCert field of the response is null. If the certificate is not trusted (for example, a self-signed certificate or a certificate issued by an untrusted CA), the field contains details, including the SHA-1 thumbprint.
Request Body schema: application/json
| dnsNameOrIp required | string or null FQDN or IP address of the VMware server. |
| port | integer <int32> [ 1 .. 65535 ] Port used to connect to the VMware server. |
OK
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "dnsNameOrIp": "vcenter.lab.local",
- "port": 443
}- 200
- 500
{- "untrustedCert": {
- "version": "3",
- "subject": "CN=vcenter.lab.local",
- "issuer": "CN=vcenter.lab.local",
- "serialNumber": "00A1B2C3D4E5F60718",
- "validFrom": "2025-01-01T00:00:00Z",
- "validTo": "2027-01-01T00:00:00Z",
- "signatureAlgorithm": "sha256RSA",
- "thumbprint": "A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0"
}
}Update VMware Server Configuration
The HTTP POST request to the /vmwareServers/server/{id}/save endpoint updates credentials, port, proxy and other settings of a VMware server with the specified ID. To refresh the topology after the update, use the server/getJobs endpoint.
##Certificate validation
By default, the full SSL certificate chain is validated when the connection to the server is established. If the certificate is not trusted (for example, a self-signed certificate or a certificate issued by an untrusted CA), the request fails with an error.
To update a server with an untrusted certificate, specify the certificate thumbprint in the acceptedCertThumbprint field of the request body.
path Parameters
| id required | string |
Request Body schema: application/json
| password required | string or null Password for VMware server authentication. |
| useProxy required | boolean Defines whether the connection will be established through a proxy server. |
| username required | string or null User name for VMware server authentication. |
| port | integer <int32> [ 1 .. 65535 ] Port used to connect to the VMware server. If omitted, the default value 443 will be used. |
object (ProxySettings) Proxy server connection settings. | |
| acceptedCertThumbprint | string or null SHA-1 thumbprint of the VMware SSL certificate. The thumbprint is required when the server uses a self-signed or otherwise untrusted certificate. |
No Content
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "port": 443,
- "useProxy": true,
- "proxy": {
- "password": "1234567",
- "server": "proxy.lab.local",
- "port": 3128,
- "username": "proxyuser"
}, - "username": "administrator@vsphere.local",
- "password": "1234567",
- "acceptedCertThumbprint": null
}- 500
{- "message": "string"
}Perform VMware Servers Connectivity Check
The HTTP POST request to the /vmwareServers/testAvailability endpoint performs a connectivity check of VMware vCenter or ESXi hosts using the provided credentials. Specify the same port, user name and password for all hosts in the request. Note that this endpoint does not register or modify any server — it only tests connectivity.
The reponse contains one result per host indicating whether the connection succeeded. If the connection failed, the result also contains an error message that describes the reason — for example, invalid credentials, an unreachable network or an unsupported version.
Request Body schema: application/json
| hosts required | Array of strings or null Information on every returned item. |
| password required | string or null Password for VMware server authentication. |
| username required | string or null User name for VMware server authentication. |
| port | integer <int32> [ 1 .. 65535 ] Port used to connect to the VMware server. If omitted, the default value 443 will be used. |
OK
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "hosts": [
- "vcenter.lab.local",
- "esxi-host01.lab.local"
], - "port": 443,
- "username": "administrator@vsphere.local",
- "password": "1234567"
}- 200
- 500
[- {
- "serverName": "vcenter.lab.local",
- "success": true,
- "errorMessage": null
}, - {
- "serverName": "esxi-host01.lab.local",
- "success": false,
- "errorMessage": "Unable to connect to the remote server"
}
]Discover Available Monitoring Jobs
The HTTP POST request to the /vmwareServers/server/getJobs endpoint connects to a VMware server that has not been registered yet and discovers the available monitoring jobs (clusters, hosts and datastores). If the server is already registered, the request fails with an error. The request body must contain valid certificate credentials.
Use the returned job IDs later in the request to the /vmwareServers/server/add endpoint.
Certificate validation
By default, the full SSL certificate chain is validated when the connection to the server is established. If the certificate is not trusted (for example, a self-signed certificate or a certificate issued by an untrusted CA), the request fails with an error.
To discover jobs on a server with an untrusted certificate, specify the certificate thumbprint in the acceptedCertThumbprint field of the request body.
Request Body schema: application/json
| dnsNameOrIp required | string or null FQDN or IP address of the VMware server. |
| password required | string or null Password for VMware server authentication. |
| useProxy required | boolean Defines whether to connect using a proxy server. |
| username required | string or null User name for VMware server authentication. |
| port | integer <int32> [ 1 .. 65535 ] Port used to connect to the VMware server. |
object (ProxySettings) Proxy server connection settings. | |
| acceptedCertThumbprint | string or null SHA-1 thumbprint of the VMware SSL certificate. The thumbprint is required when the server uses a self-signed or otherwise untrusted certificate. |
OK
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "dnsNameOrIp": "vcenter.lab.local",
- "port": 443,
- "useProxy": true,
- "proxy": {
- "password": "1234567",
- "server": "proxy.lab.local",
- "port": 3128,
- "username": "proxyuser"
}, - "username": "administrator@vsphere.local",
- "password": "1234567",
- "acceptedCertThumbprint": null
}- 200
- 500
[- {
- "id": "vcenter.lab.local\\u0001domain-c1",
- "type": "Cluster",
- "name": "Production Cluster",
- "objectCount": 48,
- "workflowCount": 5321,
- "sockets": 8
}, - {
- "id": "vcenter.lab.local\\u0001host-20",
- "type": "Host",
- "name": "esxi-standalone.lab.local",
- "objectCount": 12,
- "workflowCount": 1284,
- "sockets": 4
}
]Remove VMware Servers
The HTTP POST request to the /vmwareServers/servers/delete endpoint removes VMware servers from the configuration. Use the vCenter Server host names (FQDN or IP address) as IDs. You can find these values in the dnsNameOrIp field of the server configuration.
Request Body schema: application/json
| ids required | Array of strings or null List of Hyper-V server FQDNs. |
No Content
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "ids": [
- "vcenter.lab.local",
- "esxi-host01.lab.local"
]
}- 500
{- "message": "string"
}Add VMware Topology to Monitoring
The HTTP POST request to the /vmwareServers/servers/addToMonitoring endpoint adds VMware topology nodes to monitoring.
Use the returned host or cluster IDs later in the request to the /vmwareServers/serversTree endpoint.
Request Body schema: application/json
| ids required | Array of strings or null List of Hyper-V server FQDNs. |
No Content
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "ids": [
- "vcenter.lab.local\\u0001domain-c1",
- "vcenter.lab.local\\u0001host-42"
]
}- 500
{- "message": "string"
}Remove VMware Topology from Monitoring
The HTTP POST request to the /vmwareServers/servers/removeFromMonitoring endpoint removes VMware topology nodes from monitoring.
Use the returned host or cluster IDs later in the request to the /vmwareServers/serversTree endpoint.
Request Body schema: application/json
| ids required | Array of strings or null List of Hyper-V server FQDNs. |
No Content
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
{- "ids": [
- "vcenter.lab.local\\u0001domain-c1",
- "vcenter.lab.local\\u0001host-42"
]
}- 500
{- "message": "string"
}Get Latest Connectivity Test Results
The HTTP GET request to the /vmwareServers/testAvailability endpoint retrieves the results of the most recent connectivity test for all registered VMware servers.
OK
Unauthorized
Internal Server Error
- curl
- Python
- JavaScript
- C#
- Go
- 200
- 500
[- {
- "id": "vcenter.lab.local",
- "server": "vcenter.lab.local",
- "status": "Available"
}, - {
- "id": "esxi-standalone.lab.local",
- "server": "esxi-standalone.lab.local",
- "status": "Checking"
}, - {
- "id": "vcenter-backup.lab.local",
- "server": "vcenter-backup.lab.local",
- "status": "Unavailable"
}
]Start Connectivity Test
The HTTP POST request to the /vmwareServers/connections/startTest endpoint starts a connectivity test for registered VMware servers. If the request body is omitted or empty, the test runs for all registered servers. Otherwise, only the servers specified in the request body are tested. Use the wmwareServers/connections request to retrieve the results.
Request Body schema:
FQDNs or IP addresses of the VMware servers to test. If omitted or empty, all registered servers are tested.
No Content
Unauthorized
Internal Server Error
- Payload
- curl
- Python
- JavaScript
- C#
- Go
[- "string"
]- 500
{- "message": "string"
}Stop Connectivity Test
The HTTP POST request to the /vmwareServers/connections/stopTest endpoint stops the connectivity test that is currently running.
No Content
Unauthorized
Internal Server Error
- curl
- Python
- JavaScript
- C#
- Go
- 500
{- "message": "string"
}