By adding query options to an API request, you control the amount of output returned by the server and make the response easier to interpret. The API service uses the options specified to transform the data by filtering or paginating before returning the results.

You can use the following query options in your API requests. The options do not apply to all endpoints.
$top Number of records to get. For more information, see Using Pagination and Count.
$skip Number of records to skip. For more information, see Using Pagination and Count.
$count If set to true, shows the total number of records. If used with a filter, shows the number of records matching the filter. For more information, see Using Pagination and Count.
$select Names the subset of properties to list in the response.
$filter Filters results by a predicate expression with operators such as, eq, ne, and, and or. For specialized filtering examples, see:

Endpoints that support all query options

To query for any of the following endpoints, you can use all options. Examples show how to construct a request using the $filter option with a logical or operation.

Note: VMware Aria Automation APIs do not support filtering for nested properties with a "." in the property name.
For example, you can filter for a property with the name createdByEmail as in the following example:
$filter=customProperties.createdByEmail%20eq%20'[email protected]'
However, API filtering does not support a property with the name my.createdByEmail as in the following example:
$filter=customProperties.my.createdByEmail%20eq%20'[email protected]'
Endpoint Example
Machine
$url/iaas/api/machines?$filter=name%20ne%20'example-name'%20or%20customProperties.osType%20eq%20'example-os'
Cloud Account
$url/iaas/api/cloud-accounts?$filter=name%20ne%20'example-cloud-account'%20or%20customProperties.isExternal%20eq%20'false'
Fabric Azure Storage Account
$url/iaas/api/fabric-azure-storage-accounts/?$filter=name%20ne%20'example-name'%20or%20type%20eq%20'example-type
Fabric Compute
$url/iaas/api/fabric-computes?$filter=name%20ne%20'example-name'%20or%20customProperties.isExternal%20eq%20'false'
Fabric Image
$url/iaas/api/fabric-images?$filter=name%20ne%20'example-name'%20or%20osFamily%20eq%20'example-os'
Fabric Network
$url/iaas/api/fabric-networks?$filter=name%20ne%20'example-name'%20or%20externalId%20eq%20'example-id'
Fabric Network (vSphere)
$url/iaas/api/fabric-networks-vsphere?$filter=name%20ne%20'example-name'%20or%20externalId%20eq%20'example-id'
Fabric vSphere Datastores
$url/iaas/api/fabric-vsphere-datastores?$filter=name%20ne%20'example-name'%20or%20externalId%20eq%20'example-id'
Fabric vSphere Storage Policies
$url/iaas/api/fabric-vsphere-storage-policies?$filter=name%20ne%20'example-name'%20or%20externalId%20eq%20'example-id'

Querying for endpoints with a specified ID

To query for an endpoint with specified ID, you can only use the $select option. Examples show how to construct a request.

Endpoint Example
Cloud Account by ID
$url/iaas/api/cloud-account/{id}?$select=name
Machine by ID
$url/iaas/api/machines/{id}?$select=name
Fabric Azure Storage Account by ID
$url/iaas/api/fabric-azure-storage-accounts/{id}?$select=name
Fabric Image by ID
$url/iaas/api/fabric-images/{id}?$select=name
Fabric Network by ID
$url/iaas/api/fabric-networks/{id}?$select=name
Fabric Network (vSphere) by ID
$url/iaas/api/fabric-networks-vsphere/{id}?$select=name
Fabric vSphere Datastores by ID
$url/iaas/api/fabric-vsphere-datastores/{id}?$select=name
Fabric vSphere Storage Policies by ID
$url/iaas/api/fabric-vsphere-storage-policies/{id}?$select=name

Querying for a partial match

To query for the partial match of a name that starts with, ends with, or is contained within another name, the $filter options are the same for most IaaS endpoints but are different for iaas/api/projects and iaas/api/deployments endpoints. Examples show how to construct the partial match filters for the different endpoint types.
Filter Operation Query with iaas/api/projects or iaas/api/deployments Query with most IaaS endpoints
Name starts with foo
?$filterstartswith(name, 'foo')
$filter=name%20eq%20'foo*'
Name ends with foo
?$filter=endswith(name, 'foo')
$filter=name%20eq%20'*foo'
foo contained within the name
?$filter=substringof('foo', name)
$filter=name%20eq%20'*foo*'

Querying for deployments

To query for deployments, you can use all options except $select. The following example shows how to use the $filter option to list deployments that are not named example-name or have projectId='example-id'.
GET $url/iaas/api/deployments?$filter=name%20ne%20'example-name'%20or%20projectId%20eq%20'example-id'