Hi,
You can use the Java SDK:
QueryService queryService = client.getQueryService();
queryService.queryVmReferences(); // there're several other queryVm* methods in the Query Service class
Calling the query service with an org level user returns only the VMs in his organization that this user has access to.
Regards,
Todor Todorov