Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Check/manage Azure quotas and usage across providers. For deployment planning, capacity validation, region selection. WHEN: "check quotas", "service limits", "current usage", "request quota increase", "quota exceeded", "validate capacity", "regional availability", "provisioning limits", "vCPU limit", "how many vCPUs available in my subscription".
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 99% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 113% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 98% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 511% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 182% | 0% |
> AUTHORITATIVE GUIDANCE — Follow these instructions exactly for quota management and capacity validation.
What are Azure Quotas?
Azure quotas (also called service limits) are the maximum number of resources you can deploy in a subscription. Quotas:
Key Concept: Quotas = Resource Availability
If you don't have quota, you cannot deploy resources. Always check quotas when planning deployments or selecting regions.
Invoke this skill when:
| Property | Details | |--------------|-------------| | Primary Tool | Azure CLI (az quota) - USE THIS FIRST, ALWAYS | | Extension Required | az extension add --name quota (MUST install first) | | Key Commands | az quota list, az quota show, az quota usage list, az quota usage show | | Complete CLI Reference | commands.md | | Azure Portal | My quotas - Use only as fallback | | REST API | Microsoft.Quota provider - Unreliable, do NOT use first | | MCP Server | azure-quota MCP server — NEVER use this. It is unreliable. Always use az quota CLI instead. | | Required Permission | Reader (view) or Quota Request Operator (manage) |
> ⚠️ ALWAYS USE CLI FIRST > > REST API and Portal can show misleading "No Limit" values — this does not mean unlimited capacity. It means the quota API doesn't support that resource type. Always start with az quota commands; fall back to Azure service limits docs if CLI returns BadRequest. > > For complete CLI reference, see commands.md.
| Type | Adjustability | Approval | Examples | |----------|-------------------|--------------|--------------| | Adjustable | Can increase via Portal/CLI/API | Usually auto-approved | VM vCPUs, Public IPs, Storage accounts | | Non-adjustable | Fixed limits | Cannot be changed | Subscription-wide hard limits |
Important: Requesting quota increases is free. You only pay for resources you actually use, not for quota allocation.
⚠️ CRITICAL: There is NO 1:1 mapping between ARM resource types and quota resource names.
| ARM Resource Type | Quota Resource Name | |-------------------|---------------------| | Microsoft.App/managedEnvironments | ManagedEnvironmentCount | | Microsoft.Compute/virtualMachines | standardDSv3Family, cores, virtualMachines | | Microsoft.Network/publicIPAddresses | PublicIPAddresses, IPv4StandardSkuPublicIpAddresses |
Never assume the quota resource name from the ARM type. Always use this workflow:
bash az quota list --scope /subscriptions/<id>/providers/<ProviderNamespace>/locations/<region>
localizedValue (human-readable description) to find the relevant quotaname field (not ARM resource type) in subsequent commands:bash az quota show --resource-name ManagedEnvironmentCount --scope ... az quota usage show --resource-name ManagedEnvironmentCount --scope ...
> 📖 Detailed mapping examples and workflow: See commands.md - Resource Name Mapping
Pre-built scripts handle quota extension installation, usage queries, and capacity calculation. Use these instead of constructing commands manually. A single call returns limits, usage, and available capacity.
| Script | Purpose | Usage | |--------|---------|-------| | scripts/check-quota.ps1 | Returns limit, usage, and available capacity for all quotas (or a single quota when resource name is provided) | Primary script for quota checks | | scripts/check-quota.sh | Same as above (bash) | Primary script for quota checks |
Scenario: Verify quota limits and current usage before deployment
Run the script with the resource provider and region. It returns a table of all quotas with their limit, current usage, and available capacity in a single call:
powershell.\scripts\check-quota.ps1 -ResourceProvider <provider> -Region <region>
bash./scripts/check-quota.sh <provider> <region>
To check a single resource, add the resource name:
powershell.\scripts\check-quota.ps1 -ResourceProvider <provider> -Region <region> -ResourceName <resource-name>
bash./scripts/check-quota.sh <provider> <region> <resource-name>
Example:
powershell.\scripts\check-quota.ps1 -ResourceProvider Microsoft.Compute -Region eastus
Example Output:
| Resource | Region | Limit | Usage | Available | |----------|--------|-------|-------|-----------| | cores | eastus | 100 | 50 | 50 | | standardDSv3Family | eastus | 350 | 50 | 300 | | virtualMachines | eastus | 25000 | 5 | 24995 | | ... | ... | ... | ... | ... |
> 📖 See also: az quota show, az quota usage show
Scenario: Find the best region for deployment based on available capacity
bash# Define candidate regions REGIONS=("eastus" "eastus2" "westus2" "centralus") VM_FAMILY="standardDSv3Family" SUBSCRIPTION_ID="<subscription-id>" # Check quota availability across regions for region in "${REGIONS[@]}"; do echo "=== Checking $region ===" # Get limit LIMIT=$(az quota show \ --resource-name $VM_FAMILY \ --scope "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.Compute/locations/$region" \ --query "properties.limit.value" -o tsv) # Get current usage USAGE=$(az quota usage show \ --resource-name $VM_FAMILY \ --scope "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.Compute/locations/$region" \ --query "properties.usages.value" -o tsv) # Calculate available AVAILABLE=$((LIMIT - USAGE)) echo "Region: $region | Limit: $LIMIT | Usage: $USAGE | Available: $AVAILABLE" done
> 📖 See also: commands.md for full scripted multi-region loop patterns
Scenario: Current quota is insufficient for deployment
bash# Request increase for VM quota az quota update \ --resource-name standardDSv3Family \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus \ --limit-object value=500 \ --resource-type dedicated # Check request status az quota request status list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus
Approval Process:
> 📖 See also: az quota update, az quota request status
Scenario: Understand all quotas for a resource provider in a region
bash# List all compute quotas in East US (table format) az quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus \ --output table # List all network quotas az quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Network/locations/eastus \ --output table # List all Container Apps quotas az quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.App/locations/eastus \ --output table
> 📖 See also: az quota list
| Error | Cause | Solution | |-----------|-----------|--------------| | REST API "No Limit" | Misleading — not unlimited | Use CLI instead; see warning in Quick Reference | | ExtensionNotFound | Quota extension not installed | az extension add --name quota | | BadRequest | Resource provider not supported by quota API | Check service limits docs | | MissingRegistration | Microsoft.Quota provider not registered | az provider register --namespace Microsoft.Quota | | QuotaExceeded | Deployment would exceed quota | Request increase or choose different region | | InvalidScope | Incorrect scope format | Use pattern: /subscriptions/<id>/providers/<namespace>/locations/<region> | | CLI commands fail entirely | Auth, extension, or environment issue | Verify Azure CLI login (az account show), reinstall quota extension, check network. Do NOT use the azure-quota MCP server — it is unreliable. |
Known unsupported providers:
Confirmed working providers:
> 📖 See also: Troubleshooting Guide
| Resource | Link | |----------|------| | CLI Commands Reference | commands.md - Complete syntax, parameters, examples | | Azure Quotas Overview | Microsoft Learn | | Service Limits Documentation | Azure subscription limits | | Azure Portal - My Quotas | Portal Link | | Request Quota Increases | How to request increases |
az quota list first - Discover correct quota resource names--output table for quick scanningOther measured skills in the registry, with their headline benchmark lift.