Currently there are a few APIs and this post is a short summary of them.
– vSphere Web Services SDK a.k.a. VMware VI API, last version is 4.0, released May 21st, 2009.
This is a SOAP over HTTP/S protocol that exposes everything you can do on a virtual data center: configure resources, manipulate with virtual machines, retrieve events and performance metrics etc. Complex. I work with it every day.
– vCloud API, still in preview version.
RESTful web service that is kind of meta of super API for allocating an collapsing resources of VMware-software based cloud computing implementations.
– VIX API, version 1.8.1
One of the first VMware APIs I got to know. Allows simple manipulation with virtual machines. As I understand was designed for partners making agents for VMware servers console.
– vSphere Guest SDK, now in version 4. Strange, but I have always been thinking it is a brand new API.
If you code an application that for sure will be running on a virtual machine, use this API to make your product aware of it by consuming the hypervisor resource management information.
– CIM SDK (SMASH, SMI-S) latest version is here.
If you don’t know what CIM is, this SDK won’t help you, if you do, then you don’t need anybody to tell you what you use it for.
– Also there are Chargeback, vNetwork, SNMP MIB, VDDK and little more that is of a special interest of a very special kind of people who I doubt ever read this blog.
Good summary document at VMware web site.