Azure Quota CLI Commands Reference
Comprehensive reference for Azure CLI quota commands.
Prerequisites
Install quota extension (required):
az extension add --name quota⚠️ CRITICAL: ALWAYS USE CLI FIRST
>
Azure CLI is the ONLY reliable method for quota checks. Use
az quotacommands FIRST, always.
>
DO NOT use REST API or Azure Portal as your first approach. They are unreliable.
>
Required workflow:
- FIRST: Try
az quota list/az quota show/az quota usage show- If CLI returns
BadRequest: Resource provider doesn't support quota API → use Azure service limits docs- Never start with REST API or Portal - only use as fallback
>
Why REST API/Portal are unreliable:
- REST API returns "No Limit" or "Unlimited" values that are MISLEADING
- "No Limit" DOES NOT mean unlimited capacity - usually means resource doesn't support quota API
- Service-specific limits still apply even when REST API shows "No Limit"
- Portal may show incomplete or cached quota data
- REST API lacks proper error handling for unsupported providers
>
If you see "No Limit" in REST API/Portal:
- ❌ This is NOT unlimited capacity
- ✅ It means quota API doesn't support that resource type
- ✅ Check Azure service limits docs for actual limits
- ✅ Regional capacity constraints may still exist
Resource Name Mapping
⚠️ CRITICAL: No 1:1 mapping exists between ARM resource types and quota names. Always discover via az quota list.
Discovery workflow:
- List all quotas:
az quota list --scope /subscriptions/{id}/providers/{Provider}/locations/{region} - Match
properties.name.localizedValueto your resource type - Use exact
namevalue in subsequent commands
Example mappings:
| ARM Type | Quota Name |
|---|---|
Microsoft.App/managedEnvironments | ManagedEnvironmentCount |
Microsoft.Compute/virtualMachines | standardDSv3Family, cores, virtualMachines |
Microsoft.Network/publicIPAddresses | PublicIPAddresses, IPv4StandardSkuPublicIpAddresses |
Command Summary
| Command | Description |
|---|---|
| az quota list | List all quota limits for a scope |
| az quota show | Show quota limit for specific resource |
| az quota usage list | List current usage for all resources |
| az quota usage show | Show current usage for specific resource |
| az quota update | Request quota increase |
| az quota create | Create quota limit (advanced) |
See advanced-commands.md for request status and operation commands.
az quota list
List all quota limits for a scope. Use this first to discover quota resource names.
Syntax:
az quota list --scope SCOPE [--max-items N] [--next-token TOKEN]Required:
--scope- Azure resource URI:/subscriptions/{id}/providers/{Provider}/locations/{region}
Examples:
# List compute quotas
az quota list --scope /subscriptions/{id}/providers/Microsoft.Compute/locations/eastus
# List network quotas
az quota list --scope /subscriptions/{id}/providers/Microsoft.Network/locations/eastus
# Table format
az quota list --scope /subscriptions/{id}/providers/Microsoft.Compute/locations/eastus --output tableKey output fields:
name- Quota resource name (use in other commands)properties.name.localizedValue- Human-readable descriptionproperties.limit.value- Quota limit
az quota show
Show quota limit for a specific resource.
Syntax:
az quota show --resource-name NAME --scope SCOPERequired:
--resource-name- Quota resource name (fromaz quota list)--scope- Azure resource URI
Example:
# Get DSv3 family vCPU limit
az quota show \
--resource-name standardDSv3Family \
--scope /subscriptions/{id}/providers/Microsoft.Compute/locations/eastusKey output fields:
properties.limit.value- Quota limitproperties.name.localizedValue- Human-readable descriptionproperties.quotaPeriod- Reset period (e.g., P1M = 1 month)
az quota update
Request quota increase for a resource.
Syntax:
az quota update --resource-name NAME --scope SCOPE --limit-object value=N [--resource-type TYPE] [--no-wait]Required:
--resource-name- Quota resource name--scope- Azure resource URI--limit-object- New limit value (format:value=N)
Optional:
--resource-type- Resource type (e.g., dedicated, lowPriority)--no-wait- Don't wait for completion (true/false)
Examples:
# Increase FSv2 family vCPUs to 100
az quota update \
--resource-name standardFSv2Family \
--scope /subscriptions/{id}/providers/Microsoft.Compute/locations/eastus \
--limit-object value=100 \
--resource-type dedicated
# Non-blocking request
az quota update \
--resource-name standardFSv2Family \
--scope /subscriptions/{id}/providers/Microsoft.Compute/locations/eastus \
--limit-object value=100 \
--no-wait trueaz quota usage list
List current usage for all resources in a scope.
Syntax:
az quota usage list --scope SCOPE [--max-items N] [--next-token TOKEN]Required:
--scope- Azure resource URI
Examples:
# List compute usage
az quota usage list --scope /subscriptions/{id}/providers/Microsoft.Compute/locations/eastus
# Table format
az quota usage list --scope /subscriptions/{id}/providers/Microsoft.Compute/locations/eastus --output tableKey output:
properties.usages.value- Current usage count- Use with
az quota showto calculate available capacity
az quota usage show
Show current usage for a specific resource.
Syntax:
az quota usage show --resource-name NAME --scope SCOPERequired:
--resource-name- Quota resource name--scope- Azure resource URI
Example:
az quota usage show \
--resource-name standardDSv3Family \
--scope /subscriptions/{id}/providers/Microsoft.Compute/locations/eastusCalculate available capacity:
- Get limit:
az quota show --resource-name {name} --scope {scope}→ limit value - Get usage:
az quota usage show --resource-name {name} --scope {scope}→ current usage - Available = Limit - Usage
Example calculation:
- Limit (from
az quota show): 350 vCPUs - Usage (from
az quota usage show): 12 vCPUs - Available: 338 vCPUs
az quota create
Create quota limit for a resource. Rarely used - typically use az quota update instead.
Syntax:
az quota create --resource-name NAME --scope SCOPE --limit-object value=N [--resource-type TYPE]Required:
--resource-name- Quota resource name--scope- Azure resource URI--limit-object- Quota limit value
Examples:
# Create network quota
az quota create \
--resource-name MinPublicIpInterNetworkPrefixLength \
--scope /subscriptions/{id}/providers/Microsoft.Network/locations/eastus \
--limit-object value=10 \
--resource-type MinPublicIpInterNetworkPrefixLength
# Create ML quota
az quota create \
--resource-name TotalLowPriorityCores \
--scope /subscriptions/{id}/providers/Microsoft.MachineLearningServices/locations/eastus \
--limit-object value=10 \
--resource-type lowPriorityTroubleshooting
Unsupported Resource Types
Not all Azure resource providers support the quota API. If you receive a BadRequest error when running az quota list, the provider likely doesn't support quota commands.
Example - Microsoft.DocumentDB (Cosmos DB):
az quota list --scope /subscriptions/{id}/providers/Microsoft.DocumentDB/locations/eastus
# Error: (BadRequest) Bad requestWorkarounds:
- Check Azure subscription limits documentation
- Use Azure Portal for quota management
- Check service-specific documentation
Testing provider support:
# Try listing quotas
az quota list --scope /subscriptions/{id}/providers/{Provider}/locations/{region}
# BadRequest error → not supported
# List of quotas → supportedREST API "No Limit" Warning
⚠️ CRITICAL WARNING: REST API "No Limit" is MISLEADING
>
If you see "No Limit", "Unlimited", or similar values in REST API or Azure Portal responses:
>
This DOES NOT mean unlimited capacity!
>
It most likely means:
- The resource provider doesn't support the quota API
- Quota information isn't available through this API
- The quota is managed at a different scope
>
DO NOT assume unlimited capacity. Always:
- Use
az quotaCLI commands first (preferred method)- If CLI returns
BadRequest, check Azure service limits documentation- Consult service-specific documentation for actual limits
- Consider regional capacity constraints even without quota enforcement
Common Error Codes
| Error | Cause | Solution |
|---|---|---|
BadRequest | Provider not supported by quota API | Use CLI (preferred) or check Azure service limits docs |
ExtensionNotFound | Quota extension not installed | Run az extension add --name quota |
MissingRegistration | Microsoft.Quota provider not registered | Run az provider register --namespace Microsoft.Quota |
InvalidScope | Incorrect scope format | Verify: /subscriptions/{id}/providers/{namespace}/locations/{region} |
QuotaNotAvailableForResource | Resource not available in region | Try different region |
RequestThrottled | Too many API calls | Implement exponential backoff |
Known Support Status
Unsupported:
- ❌ Microsoft.DocumentDB (Cosmos DB)
Supported:
- ✅ Microsoft.Compute (VMs, disks, cores)
- ✅ Microsoft.Network (VNets, IPs, load balancers)
- ✅ Microsoft.App (Container Apps)
- ✅ Microsoft.Storage (storage accounts)
- ✅ Microsoft.MachineLearningServices
- ✅ Microsoft.ContainerService (AKS)