Parse any Azure Resource Manager ID into its individual components instantly. Decode subscription, resource group, provider namespace, resource type, and resource name with color-coded visualization. Build Resource IDs from scratch with our interactive builder. Supports bulk parsing of multiple Resource IDs.
Paste any Azure Resource ID and get an instant breakdown of every component -- subscription, resource group, provider, resource type, and name -- with color-coded visualization for easy reading.
Parse multiple Resource IDs at once by pasting them one per line. Each ID gets its own result card with full component breakdown, making it easy to compare and analyze resources across services.
Construct valid Azure Resource IDs from individual parts using the interactive builder. Select a provider, enter subscription, resource group, and resource details -- and watch the ID update in real time.
Comprehensive Azure provider recognition database covering compute, storage, networking, databases, security, analytics, containers, machine learning, and more -- with category badges for each provider.
Azure Resource IDs are the universal identifier format used across all Azure Resource Manager (ARM) services to uniquely identify resources. Every resource you create in Azure -- from virtual machines and storage accounts to key vaults and Kubernetes clusters -- is assigned a Resource ID. Understanding the structure and components of Resource IDs is essential for working with ARM templates, Bicep files, Azure CLI commands, PowerShell cmdlets, and Azure REST APIs.
Every Azure Resource ID follows a hierarchical, slash-separated format:
/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/{provider}/{resource-type}/{resource-name}
The subscription ID is the GUID of the Azure subscription that owns the resource. The resource group is the logical container that groups related resources. The provider namespace identifies the Azure service (e.g., Microsoft.Compute, Microsoft.Storage, Microsoft.Network). The resource type specifies the kind of resource within the provider, and the resource name is the unique name you assigned to the resource. Nested resources extend this pattern with additional type/name pairs.
In Parse mode, paste one or more Azure Resource IDs into the text area and click any example button to see how different Azure services structure their Resource IDs. Each parsed ID is displayed with color-coded components and a field grid showing every piece of information. In Build mode, fill in the individual fields and the tool constructs a valid Resource ID in real time that you can copy to your clipboard.
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM uniquely identifies that specific VM across the entire Azure ecosystem.
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{providerNamespace}/{resourceType}/{resourceName}. The ID always begins with a forward slash, followed by "subscriptions" and the subscription GUID (a 32-character hexadecimal identifier in 8-4-4-4-12 format). Next comes "resourceGroups" and the resource group name, then "providers" followed by the provider namespace (like "Microsoft.Compute" or "Microsoft.Storage"), the resource type (such as "virtualMachines" or "storageAccounts"), and finally the resource name. Nested resources extend this pattern by appending additional resource type/name pairs, such as /subscriptions/.../providers/Microsoft.Sql/servers/myServer/databases/myDatabase. Some resources exist at the subscription level without a resource group, using a shorter format like /subscriptions/{id}/providers/{provider}/{type}/{name}.
az resource show --name myVM --resource-group myRG --resource-type Microsoft.Compute/virtualMachines --query id, or list all resources with az resource list --query "[].id". In Azure PowerShell, use Get-AzResource -Name myVM -ResourceGroupName myRG | Select-Object -Property ResourceId. Terraform and Bicep both expose Resource IDs as outputs after resource creation. Azure Activity Log and diagnostic logs also include Resource IDs for all resources involved in operations.
Microsoft.{ServiceName} -- for example, Microsoft.Compute provides virtual machines, disks, and availability sets; Microsoft.Storage provides storage accounts and blob containers; Microsoft.Network provides virtual networks, load balancers, and public IP addresses; and Microsoft.KeyVault provides key vaults and secrets. Before you can use a resource provider, it must be registered in your subscription. Most commonly used providers are registered automatically, but some may require manual registration using az provider register --namespace Microsoft.ContainerService. You can list all registered providers with az provider list --output table. Each provider defines its own set of resource types, API versions, and supported regions.
/subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Sql/servers/myServer/databases/myDatabase. This hierarchical structure can extend multiple levels deep -- a firewall rule on a SQL server would be .../servers/myServer/firewallRules/myRule. Similarly, a subnet is a child of a virtual network: .../Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet. The nesting pattern always follows the format /{parentType}/{parentName}/{childType}/{childName} and can be extended further for deeply nested resources. When working with nested resources in ARM templates, you can use the resourceId() function with multiple type/name parameters to construct the correct ID.
/subscriptions/{id}/resourceGroups/{rg}/providers/{provider}/{type}/{name}. Subscription-level resources exist directly under a subscription without a resource group, using the format /subscriptions/{id}/providers/{provider}/{type}/{name} -- examples include Azure Policy assignments and resource group definitions themselves. Management-group-level resources use /providers/Microsoft.Management/managementGroups/{mgName}/providers/{provider}/{type}/{name}. Tenant-level resources exist at the top of the hierarchy and their IDs begin directly with /providers/{provider}/{type}/{name}. Understanding these scoping levels is crucial for setting up RBAC role assignments and Azure Policy at the appropriate level.
--ids parameter that takes one or more Resource IDs: for example, az vm show --ids /subscriptions/.../virtualMachines/myVM retrieves the VM details without needing separate --name, --resource-group, and --subscription flags. You can also pipe Resource IDs from one command to another: az resource list --query "[?type=='Microsoft.Compute/virtualMachines'].id" -o tsv | xargs -I{} az vm show --ids {}. In Azure PowerShell, use Get-AzResource -ResourceId "/subscriptions/.../myVM" or pipe resources: Get-AzVM | Select-Object -ExpandProperty Id. Resource IDs are also essential for the az resource delete --ids command, allowing you to delete resources by their ID without specifying the resource type.
resourceId() template function: [resourceId('Microsoft.Compute/virtualMachines', 'myVM')] generates the full Resource ID for a VM in the same resource group. For cross-resource-group references, use the extended form: [resourceId('otherRG', 'Microsoft.Storage/storageAccounts', 'myStorage')]. For cross-subscription references, add the subscription ID as the first parameter. In Bicep, you reference existing resources with the existing keyword and access their ID via the .id property: resource vm 'Microsoft.Compute/virtualMachines@2023-07-01' existing = { name: 'myVM' } followed by vm.id. Bicep also supports the resourceId() function for constructing IDs manually. Resource IDs are commonly used in template outputs, resource dependencies, and property values that reference other resources (such as linking a NIC to a subnet or a VM to a disk).
Check out our other free developer tools. Parse AWS ARNs, build Kubernetes manifests, and more -- all from your browser with no sign-up required.
AWS ARN Parser →