The vSphere Web Services (VIM) API gives programmatic access to core virtualized resources that support robust, fault-tolerant virtualized applications comprising compute, networking, and storage resources. Resorcure types include virtual machines, ESXi hosts, clusters, datastores, networks, and system abstractions such as events, alarms, authorization, and plug-in extensions.

The VIM API is a mature and comprehensive management API. The API works against both ESXi and vCenter Server systems, providing access to a hierarchy of managed objects that you use to configure, monitor, and manage datacenter resources.

Developers have several ways to access the VIM API:
  • The vSphere Management SDK contains Java bindings and samples that use SOAP access to the server.
  • The pyvmomi SDK is a user-friendly Python package containing bindings and utilities for working with the APIs.
  • The govmomi SDK is a comprehensive set of bindings, utilities, examples, and a CLI for Go developers.
  • The vSphere Management SDK provides language-neutral WSDL code for the SOAP protocol, from which you can generate bindings for your chocie of language.
  • The vSphere Management SDK provides a language-neutral OpenAPI specification to which you can write code that uses a REST-like JSON protocol.
The vSphere Web Services API includes these core features:
  • Data center inventory management, using a hierarchy of folders and resource objects
  • A powerful server-side data retrieval feature, the Property Collector
  • Host system configuration and management
  • Datastore configuration and management
  • Network configuration and management
  • Virtual machine configuration and management, including guest OS operations
  • Virtual machine encryption
  • Cluster and resource pool configuration and management
  • Management of events and alarms

The Web Services API uses a SOAP-XML RPC protocol. It is bundled in the vSphere Management SDK. The Management SDK provides RPC stubs for clients with Java language bindings.

The Web Services server endpoint is
https://{domain}/sdk
The VIM JSON protocol service endpoint is
http://{domain}/sdk/vim25/8.0.1.0
For more information about using the VIM API, see the following documentation: