Microsoft provides a list of all REST APIs available for Azure in the REST API browser . For example, the API dedicated to Compute lets you select Virtual Machines and gives you access to all the actions you can perform on that object — for example, to list all VMs in an Azure subscription.

The major advantage of this site is that it allows live testing of the selected API (by clicking Try It) from a web browser, without needing to install a third-party tool such as Postman.

All Azure APIs return results in JSON format, making them easily exploitable. Each Azure API requires passing a mandatory api-version parameter, to specify the version of the API to use and benefit from backward compatibility in case of version changes.

Install the module

powershell
Install-Module -Name Az.Resources

List available API versions for a provider

powershell
Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace -ExpandProperty ResourceTypes | Select-Object ProviderNamespace, RegistrationState, ResourceTypeName, ApiVersions | Format-Table

If I take the Compute provider, I can display its resource types with:

powershell
(Get-AzResourceProvider -ProviderNamespace Microsoft.Compute).ResourceTypes

And list the available API versions for virtualMachines with:

powershell
((Get-AzResourceProvider -ProviderNamespace Microsoft.Compute).ResourceTypes | Where-Object ResourceTypeName -eq virtualMachines).ApiVersions

Lifecycle

All the versions listed are supported. The retention period is quite long, allowing application developers enough time to make necessary modifications without being caught off guard before an API is deprecated. Each API has its own lifecycle, and there is no official fixed timeline regarding the retention period of older versions.