I think there is a pretty good understanding on this topic, but questions still come up once in a while in VI Java API community and my inbox. Some people got errors while trying to manage free ESXi servers via API. The API support of free ESXi is limited to ready only according to a VMware KB article:
vCLI, PowerCLI, and vSphere SDk for Perl are limited to read-only access for the free vSphere Hypervisor edition. To enable full functionality of vCLI on a VMware ESXi host, the host must be licensed with vSphere Essentials, vSphere Essential Plus, vSphere Standard, vSphere Advanced, vSphere Enterprise, or vSphere Enterprise Plus.
Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.
- The vSphere Hypervisor mentioned is the ESXi.
- It’s not limited to vCLI, PowerCLI, and vSphere SDK for Perl, but any other like VI Java API. They all built on top of vSphere SDK for Web Services, therefore have the same limitation.
- You can find comparisons of ESX and ESXi 4.0, 3.5.
To use full vSphere API/CLI with ESXi, you got to have a license. So if you have issue with API calls or CLI scripts, don’t forget to check your ESXi server license.
As a side story, the API was once unlocked unintentionally due to a bug fix on free ESXi 3.5 U3 as covered by Mike in his blog. Check it out here.