specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: Azure Kubernetes Service providerId: azure-kubernetes-service created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - Containers - Kubernetes - Rate Limiting description: AKS uses a token-bucket throttle on its resource provider APIs (control plane). Buckets have a fixed burst size and a sustained refill rate; throttled requests return HTTP 429 with Retry-After. Cluster-creation quotas are enforced per subscription per region, with subscription-type-specific defaults (EA 100, PAYG 10, Free Trial 3) and self-service raise paths in the Quotas blade. sources: - https://learn.microsoft.com/en-us/azure/aks/quotas-skus-regions headers: retryAfter: Retry-After responseCodes: throttled: 429 limits: - name: LIST ManagedClusters (subscription) scope: subscription metric: requests_burst limit: 500 notes: Burst 500; refill 1 request/second. - name: LIST ManagedClusters (resource group) scope: resourceGroup metric: requests_burst limit: 60 notes: Burst 60; refill 1 request/second. - name: PUT AgentPool scope: agentPool metric: requests_burst limit: 20 notes: Burst 20; refill 1 request/minute. - name: PUT ManagedCluster scope: managedCluster metric: requests_burst limit: 20 notes: Burst 20; refill 1 request/minute. - name: GET ManagedCluster scope: managedCluster metric: requests_burst limit: 60 notes: Burst 60; refill 1 request/second. - name: GET Operation Status scope: subscription metric: requests_burst limit: 200 notes: Burst 200; refill 2 requests/second. - name: All Other AKS APIs scope: subscription metric: requests_burst limit: 60 notes: Burst 60; refill 1 request/second. - name: AKS clusters per subscription per region (EA) scope: subscription/region metric: clusters limit: 100 notes: Default for new EA subscriptions; max self-service 1,000. - name: AKS clusters per subscription per region (PAYG / CSP / MSDN) scope: subscription/region metric: clusters limit: 10 notes: Default; max self-service 100. - name: AKS clusters per subscription per region (Free Trial) scope: subscription/region metric: clusters limit: 3 notes: Hard cap; cannot be raised. - name: Maximum clusters per subscription globally scope: subscription metric: clusters limit: 5000 - name: Maximum nodes per cluster (VMSS + Standard LB) scope: cluster metric: nodes limit: 5000 - name: Maximum nodes per node pool scope: nodePool metric: nodes limit: 1000 - name: Maximum node pools per cluster scope: cluster metric: nodePools limit: 100 - name: Maximum pods per node (Azure CNI) scope: node metric: pods limit: 250 - name: Maximum load-balanced services per cluster scope: cluster metric: services limit: 300 policies: - name: Token-bucket throttling description: AKS RP APIs use token-bucket; burst then refill. 429 with Retry-After indicates the bucket is empty. - name: Backoff description: Honor Retry-After (delay-seconds). Use exponential backoff with jitter; avoid bursty list-loops in retry logic. - name: Quota raise description: Use the Azure portal Quotas page or REST API to request cluster quota increases. Free Trial subscriptions cannot raise quotas. - name: ManagedClusters and AgentPools tracked separately description: Even within the same AKS cluster, ManagedClusters and AgentPools have independent buckets. maintainers: - FN: Kin Lane email: kin@apievangelist.com