# Azure Container Apps (Consumption, Dedicated, Dynamic Sessions)

Official pricing: https://azure.microsoft.com/en-us/pricing/details/container-apps/  
Category: hyperscaler · Isolation: vm

## Pricing regimes (raw)

- **Consumption plan, active rate (East US / North Europe / Japan East class)** (resource): $0.0864/vCPU-h, $0.0108/GiB-h
- **Serverless GPU workload profile (Consumption, one GPU per replica)** (resource): $0.0864/vCPU-h, $0.0108/GiB-h
- **Consumption + 1y savings plan** (resource): $0.07344/vCPU-h, $0.00918/GiB-h [commit]
- **Consumption + 3y savings plan** (resource): $0.071712/vCPU-h, $0.008964/GiB-h [commit]
- **Dedicated plan (workload profiles) + $0.10/h environment fee** (resource): $0.057077/vCPU-h, $0.004978/GiB-h [alt]
- **Dynamic Sessions, built-in code interpreter ($0.03/session-hour)** (sizes): code-interpreter-session ? vCPU/? GiB $0.03/h
- **Dynamic Sessions, custom container pool (dedicated E16 nodes)** (sizes): E16 node (pool capacity) 16 vCPU/128 GiB $1.550416/h [alt]

## Features

Yes: persistent disk, volumes, idle auto-stop, ≥24 h sessions, custom image (Docker or snapshot), your own Docker/OCI image, root, code interpreter, HTTPS preview URLs, custom domains, egress allowlist, open internet, static egress IP, private networking, SOC 2, HIPAA, SSO, GPU, Python, Node.js, wake on request, audit logs, EU data residency, MCP server, inbound access rules, extra volumes, shared volumes

No: snapshots, memory snapshots, fork/clone, pause/resume, start from your own snapshot, full VM (own kernel), Docker inside, nested virtualization, systemd, browser, desktop GUI, computer-use API, browser + desktop control, anti-bot stealth, CAPTCHA solving, residential IPs, preinstalled agents, SSH, public IPv4, raw TCP inbound, self-hosting, BYOC, open source, arm64, Windows, macOS, GPU desktop, HTTP method/path egress rules, live resize, live fork (no pause), memory fork, webhooks, spend limits, automatic snapshots, snapshots on demand, agent harness API, hosted agent API (their own agent), gVisor or VM (no shared kernel), firewall inside (nftables), secret proxy, secret proxy for any API

Unknown: everything else. Evidence (source + quote) per feature: https://battleships.dev/data/providers/azure-container-apps.json → feature_evidence

## Caveats

- All rates from the Azure Retail Prices API (prices.azure.com, serviceName "Azure Container Apps", fetched 2026-09-28).
- Region tiers: base rate ($0.000024/$0.000003) in eastus, eastus2, centralus, westus, westus3, northeurope, swedencentral, germanywestcentral, francecentral, polandcentral, norwayeast, switzerlandnorth, japaneast, centralindia, eastasia, koreacentral, etc. Premium regions westeurope, uksouth, westus2, southeastasia, australia*, canada* are $0.000034/$0.000004 (+42% CPU). The engine uses base-rate regions for us/eu/asia.
- free.monthly_credit 5.40 (derived) = monthly per-subscription grant 180,000 vCPU-s x $0.000024 ($4.32) + 360,000 GiB-s x $0.000003 ($1.08); the 2M free requests ($0.80) are extra. The previous provider record listed serverless GPU T4 $0.324/h and A100 $2.3436/h; the Retail API shows $0.2628/h and $1.9044/h in eastus.
- Knob idle_share is an approximation; idle criteria are strict (any request or >0.01 vCPU makes the replica active).
- Consumption replica max 4 vCPU/8 GiB with a fixed 1:2 ratio (docs knowledge, not re-verified this session).
- Serverless GPU: NC T4 v3 $0.000073/s ($0.2628/h) and NC A100 v4 $0.000529/s ($1.9044/h) on top of vCPU/RAM (Retail API); dedicated GPU profile $4.4076/h. Not modelled per mode.
- Egress (Retail API, Bandwidth, Microsoft Global Network routing): first 100 GB/month free, then $0.087/GB NA/EU (10-50 TB $0.083, 50-150 TB $0.07, >150 TB $0.05); Asia (centralindia, japaneast) $0.12/GB first tier.
- Dedicated/custom-session modes carry a $73/month per-environment management fee that the resource rate does not include.
- Environment Management / Planned Maintenance / Private Endpoint meters ($0.10/h eastus, effective 2026-09-01 in the Retail API; westeurope $0.143) apply "regardless of Consumption or Dedicated plan" when private endpoints or planned maintenance are used.
- Hybrid (Arc-enabled) vCPU $0.18/h exists in the Retail API; not modelled.
- Consumption ephemeral storage (learn.microsoft.com/azure/container-apps/storage-mounts, 2026-09-28): total container+replica-scoped ephemeral disk per replica is 1 GiB at <=0.25 vCPU, 2 GiB at <=0.5, 4 GiB at <=1, 8 GiB above 1 vCPU; no separate meter (billing doc lists only vCPU-s, GiB-s, GPU-s, requests). included_disk_gib = 4 (the 1 vCPU tier); replicas above 1 vCPU get 8 GiB. More disk requires an Azure Files share (separate Azure Storage bill, not modelled), so disk beyond the ephemeral allowance stays price-unknown.
- Dynamic Sessions code interpreter bills each allocated session in 1-hour increments (docs, 2026-09-28); short sessions pay a full hour unless the pool reuses sessions.
- Region tiers (Retail API 2026-09-29) are finer than base/premium: base $0.000024/$0.000003; westcentralus $0.000029/$0.000004; austriaeast, belgiumcentral $0.000031/$0.000004; indonesiacentral, malaysiawest $0.000028/$0.000004; mexicocentral $0.000026/$0.000003; premium (westeurope, uksouth, ukwest, westus2, southeastasia, australia*, canada*, italynorth, spaincentral, koreasouth, germanynorth, switzerlandwest, chilecentral) $0.000034/$0.000004 (memory +33%, idle vCPU $0.000004); newzealandnorth $0.000036/$0.000005; swedensouth $0.000044; norwaywest, uaecentral $0.000045; southafricawest $0.000046; brazilsoutheast $0.000055/$0.000007. Dedicated vCPU follows the same tiers (premium $0.080859/h, $0.006638/GiB-h).
- Consumption-only (legacy) environments cap apps at 2 vCPU / 4 GiB; the 4 vCPU / 8 GiB max needs a workload-profiles environment (the default). Max 1,000 replicas per revision. Express apps (new, 2026) and Sandboxes use the same Consumption meters and free grant with no environment fee; Sandboxes+Express limited to 2,000 cores (support request to raise).
- KEDA default cool-down period is 300 s: a scale-to-zero app keeps its last replica billed at the active rate ~5 min after the last event (configurable). Not modelled.
- Flexible workload profile (preview): billed like Consumption plus the $0.10/h environment management fee, single-tenant pool, no scale to zero, limited regions. Not modelled as a mode.
- Environment fee: the new 'Environment Management Hour' / 'Environment Private Endpoint' / 'Environment Planned Maintenance Hour' meters (effective 2026-09-01) are region-priced: $0.10 eastus/eastus2/westus2/westus3/centralus, $0.13 westus/swedencentral/germanywestcentral, $0.143 northeurope/westeurope, $0.145 japaneast, $0.155 eastasia, up to $0.23 brazilsoutheast; the legacy 'Dedicated Plan Management' meter stays $0.10 in almost every region. So the $73/month dedicated fee is ~$104/month in North Europe if the new meter is the one charged (unclear which meter applies).

## How this provider charges


All rates below are from the **Azure Retail Prices API** (`prices.azure.com/api/retail/prices`, serviceName
"Azure Container Apps", eastus unless noted, fetched 2026-09-28), cross-checked with
https://learn.microsoft.com/en-us/azure/container-apps/billing. ACA Sandboxes are covered in
azure-container-apps-sandboxes.md.

Reference 4 vCPU / 8 GiB Consumption active: 4 x 0.0864 + 8 x 0.0108 = **$0.432/h**.

## Regime table

| Regime | When it applies | How billed | Numbers | Source |
|---|---|---|---|---|
| Consumption, active | Replica starting, serving requests, or above idle thresholds; all jobs | Allocated vCPU-s + GiB-s, per second | $0.000024/vCPU-s ($0.0864/h), $0.000003/GiB-s ($0.0108/h) | Retail API "Standard vCPU/Memory Active Usage" |
| Consumption, idle | Revision at min-replica count, replica <0.01 vCPU, <1,000 B/s, no requests (not GPU, not jobs) | Reduced rate | $0.000003/vCPU-s, $0.000003/GiB-s | Retail API "Idle Usage" |
| Scale to zero | No replicas | Nothing | $0 | billing docs |
| HTTP requests | External requests (health probes free; TCP: 1 connection = 1 request) | Per million | $0.40/M after 2M free (1y SP $0.34, 3y $0.332) | Retail API "Standard Requests" |
| Base vs premium regions | Region choice | Different unit rates | Base ($0.000024/$0.000003): eastus, eastus2, centralus, westus, westus3, northeurope, swedencentral, germanywestcentral, francecentral, polandcentral, norwayeast, switzerlandnorth, japaneast, centralindia, eastasia, koreacentral. Premium ($0.000034/$0.000004, +42% CPU): westeurope, uksouth, westus2, southeastasia, australia*, canada*, italynorth, spaincentral | Retail API (all regions) |
| Savings plan 1y / 3y | Azure savings plan for compute | Discounted meters | 1y $0.0000204 / $0.00000255 (-15%); 3y $0.00001992 / $0.00000249 (-17%); idle 1y/3y $0.00000255 / $0.00000249 | Retail API savingsPlan |
| Dedicated plan (workload profiles) | Dedicated D/E-series profiles; billed per profile instance, not per app | vCPU-h + GiB-h + management fee | $0.057077/vCPU-h, $0.004978/GiB-h; SP 1y $0.04851545 / $0.0042313; 3y $0.04737391 / $0.00413174 | Retail API "Dedicated *" |
| Environment management hour | Any Dedicated profile, private endpoints, or planned maintenance (additive, **even on Consumption**) | Per environment-hour | $0.10/h eastus ($73/month; SP $0.085 / $0.083); westeurope $0.143; new "Environment" meters effective 2026-09-01 | Retail API; billing docs |
| Dynamic sessions: code interpreter | Built-in Python/Node/Shell session pools | Per allocated session, allocation to deallocation, **1-hour increments** | $0.03/session-hour (1y $0.0255, 3y $0.0249); Mexico Central $0.033; Belgium/Spain Central $0.039 | Retail API "Dynamic Sessions"; billing docs |
| Dynamic sessions: custom container | Your image in a session pool | Dedicated plan: pool runs on **E16** instances sized by active + ready sessions | E16 = 16 x 0.057077 + 128 x 0.004978 = $1.5504/h per node + $0.10/h environment | billing docs + Retail API |
| Serverless GPU | GPU apps (always active rate) | Per GPU-second on top of vCPU/RAM | NC T4 v3 $0.000073/s ($0.263/h); NC A100 v4 $0.000529/s ($1.904/h); dedicated GPU profile $4.4076/h | Retail API |
| Hybrid (Arc) | Arc-enabled Kubernetes | Per vCPU-h | $0.18/h | Retail API |
| Free grant | Per subscription per calendar month (Consumption) | Deducted | 180,000 vCPU-s + 360,000 GiB-s + 2M requests (~$5.40 + $0.80) | billing docs |
| Egress | Internet data out (Microsoft Global Network) | Tiered | First 100 GB/month free; $0.087/GB NA/EU (then $0.083 / $0.07 / $0.05); Asia $0.12 first tier | Retail API "Bandwidth" |
| New-account credit | New Azure accounts | Credits | $200 for 30 days (generic Azure, earlier research) | azure.microsoft.com/free |

## Gotchas

1. **West Europe and UK South are +42%** on CPU; North Europe, Sweden Central, Germany West Central and France Central carry US prices.
2. **Idle rate is strict**: any request, >0.01 vCPU or >1 KB/s of traffic flips the replica to the active rate.
3. **Consumption replicas max 4 vCPU / 8 GiB with a fixed 1:2 ratio** (docs knowledge, not re-verified).
4. **Code-interpreter sessions bill in whole hours** per session identifier: 1,000 one-minute sessions = $30, not $0.50.
5. **Custom-container session pools run on E16 dedicated nodes** you pay for whether sessions are busy or not, plus the $73/month environment fee.
6. **Private endpoints or planned maintenance add $0.10/h per environment** even on pure Consumption.
7. Previous research had GPU prices from a different region/page (T4 $0.324, A100 $2.3436); the eastus Retail API shows $0.263 and $1.904.

## Worked example

4 vCPU / 8 GiB, 50 replicas x 8 h/day x 22 days = **8,800 replica-hours** (scale to zero overnight), 30% CPU
(no effect: allocated billing), 50 GiB state (no snapshots; Azure Files not priced), 100 GiB egress (free 100 GB).

| Regime | Calculation | Total / month |
|---|---|---|
| Consumption active, eastus / northeurope | 8,800 x 0.432 = $3,801.60 - free grant $5.40 | **$3,796.20** |
| Consumption, westeurope (premium) | 8,800 x (4 x 0.1224 + 8 x 0.0144) = 8,800 x 0.6048 = $5,322.24 - free grant valued at premium rates ($6.12 + $1.44) | **$5,314.68** |
| Consumption + 3y savings plan, committed 24/7 | 50 x 730 x 0.35856 = $13,087.44 | **$13,087.44** (commit idle 16 h/day) |
| Dedicated D4 profile (4 vCPU/16 GiB) x 50, 176 h | 8,800 x 0.307956 = $2,710.01 + $73 environment | **$2,783.01** |
| Custom-container sessions on E16 (4 sandboxes/node by vCPU) | 13 nodes x 176 h x 1.550416 = $3,547.35 + $73 | **$3,620.35** |
| Code-interpreter sessions (size unpublished) | 50 x 176 h x $0.03 | **$264.00** (not the same machine: session vCPU/RAM unknown) |
