See
http://pve.proxmox.com/wiki/Proxmox_VE_API and especially the linked
http://pve.proxmox.com/pve2-api-doc/ (the latter is a bit out of date unfortunately).
If you mean how it is implemented in the backend, check out our git repositories at git.proxmox.com - the core of the API is in pve-common and pve-manager, the various API endpoints are in the API2 and CLI folders of the individual repositories (usually in src/PVE/.. or PVE/..).