{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": true,
  "fork": true,
  "pause_resume": true,
  "persistent_disk": true,
  "whole_disk": true,
  "persist_scope": true,
  "volumes": true,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": true,
  "vm_isolation": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": true,
  "systemd": true,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": true,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": false,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": true,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": false,
  "raw_tcp_inbound": false,
  "egress_allowlist": true,
  "open_internet": true,
  "static_egress_ip": false,
  "private_network": true,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "gpu": false,
  "arm64": false,
  "windows": false,
  "macos": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": true,
  "egress_http_rules": true,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": true,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": true,
  "mcp_server": false,
  "usage_api": true,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": false,
  "own_agent_api": false,
  "fast_boot": null,
  "strong_isolation": true,
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": true,
  "secret_proxy_any": true,
  "volume_attach": true,
  "volume_shared": true,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "azure-container-apps-sandboxes",
  "checked": "2026-09-30",
  "company": "Microsoft Corporation (Azure Container Apps)",
  "ownership": {
   "value": "subsidiary",
   "parent": "Microsoft Corporation",
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "Azure Container Apps sandboxes provide secure, isolated environments for running untrusted or dynamically generated code."
  },
  "stage": {
   "value": "public",
   "source": "https://www.microsoft.com/en-us/investor/earnings/fy-2025-q4/press-release-webcast",
   "quote": "Revenue was $281.7 billion and increased 15%",
   "confidence": "high",
   "note": "Azure Container Apps Sandboxes is a feature of Azure, a product line of Microsoft Corporation (NASDAQ: MSFT), a public company. Not independently funded; no separate funding stage applies (marked 'subsidiary' would also be accurate, but 'public' reflects the parent's listing status)."
  },
  "accelerators": [],
  "total_funding_usd": {
   "value": null,
   "status": "unknown"
  },
  "last_round": {
   "type": "n/a",
   "amount_usd": null,
   "date": null,
   "leads": [],
   "status": "unknown",
   "source": "",
   "quote": ""
  },
  "investors": [],
  "portfolio_listings": [],
  "revenue": {
   "value_usd": 281700000000,
   "kind": "annual revenue",
   "as_of": "FY2025 (ended June 30, 2025)",
   "status": "confirmed",
   "basis": "Figure is for all of Microsoft Corporation (parent company); Azure Container Apps Sandboxes' standalone revenue is not disclosed separately.",
   "source": "https://www.microsoft.com/en-us/investor/earnings/fy-2025-q4/press-release-webcast",
   "quote": "Revenue was $281.7 billion and increased 15%"
  },
  "employees": {
   "value": null,
   "source": ""
  },
  "note": "Azure Container Apps Sandboxes is a feature of Microsoft Azure Container Apps, part of Microsoft Corporation, a publicly traded company (NASDAQ: MSFT). It is not an independently funded startup; funding stage / rounds / investors do not apply. Revenue figure shown is Microsoft's total company revenue for FY2025, not a Sandboxes- or Azure-specific figure (Azure segment revenue growth is disclosed by Microsoft but not as an absolute standalone dollar figure)."
 },
 "id": "azure-container-apps-sandboxes",
 "name": "Azure Container Apps Sandboxes",
 "url": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
 "category": "hyperscaler",
 "isolation": "vm",
 "modes": [
  {
   "key": "tiers",
   "label": "Sandbox tiers XS-XL + programmatic sizes up to 16 vCPU / 32 GB (Consumption meters)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {
    "isolation": "vm"
   },
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": [
    {
     "name": "XS",
     "vcpu": 0.25,
     "ram_gib": 0.5,
     "disk_gib": 20,
     "hour": 0.027,
     "month_cap": null
    },
    {
     "name": "S",
     "vcpu": 0.5,
     "ram_gib": 1,
     "disk_gib": 20,
     "hour": 0.054,
     "month_cap": null
    },
    {
     "name": "M",
     "vcpu": 1,
     "ram_gib": 2,
     "disk_gib": 20,
     "hour": 0.108,
     "month_cap": null
    },
    {
     "name": "L",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 40,
     "hour": 0.216,
     "month_cap": null
    },
    {
     "name": "XL",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 80,
     "hour": 0.432,
     "month_cap": null
    },
    {
     "name": "custom 8 vCPU / 16 GB (programmatic)",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": null,
     "hour": 0.864,
     "month_cap": null
    },
    {
     "name": "custom 16 vCPU / 32 GB (programmatic max)",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 320,
     "hour": 1.728,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Pricing page: \"Azure Container Apps Express and Sandboxes follow the same pay-per-second pricing as Consumption Plan\" = $0.000024/vCPU-s + $0.000003/GiB-s (eastus, Retail API). Billed only while Running; stopped = no CPU/memory. Tiers per docs: XS 0.25c/0.5GB/20GB, S 0.5/1/20, M 1/2/20 (default), L 2/4/40, XL 4/8/80. GA blog says XS disk is 5 GB. Basis verified 2026-09-28: Idle: \"Auto-suspend: Suspend an idle sandbox after a configurable timeout. A sandbox becomes idle when it has no ingress (incoming) traffic, no code execution (via execute API), no interactive shell sessions, and no file operations.\" ; \"You pay no CPU or memory fees when sandboxes are stopped.\" (https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview). Metered on the tier allocation (alloc). Merged 2026-09-28 with the former custom-size regime (same meters: tiers are exactly vCPU x $0.0864 + GiB x $0.0108): GA blog \"Programmatically you can go up to 16 vCPU with 32 GB of memory and a 320 GB disk\"; 8/16 and 16/32 added as representative programmatic sizes (1:2 ratio; disk for 8/16 not published).",
   "product_class": "sandbox-api"
  },
  {
   "key": "savings-plan-1y",
   "label": "Sandbox tiers + 1y savings plan (assumed to apply)",
   "flags": [
    "commit"
   ],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {
    "isolation": "vm"
   },
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": [
    {
     "name": "XS",
     "vcpu": 0.25,
     "ram_gib": 0.5,
     "disk_gib": 20,
     "hour": 0.02295,
     "month_cap": null
    },
    {
     "name": "S",
     "vcpu": 0.5,
     "ram_gib": 1,
     "disk_gib": 20,
     "hour": 0.0459,
     "month_cap": null
    },
    {
     "name": "M",
     "vcpu": 1,
     "ram_gib": 2,
     "disk_gib": 20,
     "hour": 0.0918,
     "month_cap": null
    },
    {
     "name": "L",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 40,
     "hour": 0.1836,
     "month_cap": null
    },
    {
     "name": "XL",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 80,
     "hour": 0.3672,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": true,
   "always_on_month_per_instance": null,
   "commit_note": "Azure savings plan for compute on the Consumption meters; that it covers Sandboxes is inferred from \"same pricing as Consumption Plan\", not stated.",
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "vCPU $0.0000204/s, memory $0.00000255/GiB-s.",
   "commit_term": "1-year",
   "product_class": "sandbox-api"
  },
  {
   "key": "savings-plan-3y",
   "label": "Sandbox tiers + 3y savings plan (assumed to apply)",
   "flags": [
    "commit"
   ],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {
    "isolation": "vm"
   },
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": [
    {
     "name": "XS",
     "vcpu": 0.25,
     "ram_gib": 0.5,
     "disk_gib": 20,
     "hour": 0.02241,
     "month_cap": null
    },
    {
     "name": "S",
     "vcpu": 0.5,
     "ram_gib": 1,
     "disk_gib": 20,
     "hour": 0.04482,
     "month_cap": null
    },
    {
     "name": "M",
     "vcpu": 1,
     "ram_gib": 2,
     "disk_gib": 20,
     "hour": 0.08964,
     "month_cap": null
    },
    {
     "name": "L",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 40,
     "hour": 0.17928,
     "month_cap": null
    },
    {
     "name": "XL",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 80,
     "hour": 0.35856,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": true,
   "always_on_month_per_instance": null,
   "commit_note": "Azure savings plan for compute on the Consumption meters; that it covers Sandboxes is inferred from \"same pricing as Consumption Plan\", not stated.",
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "vCPU $0.00001992/s, memory $0.00000249/GiB-s.",
   "commit_term": "3-year",
   "product_class": "sandbox-api"
  }
 ],
 "storage": {
  "included_disk_gib": 20,
  "disk_gib_month": null,
  "disk_billed_when_stopped": false,
  "snapshot_gib_month": 0.2,
  "paused_ram_billed": false
 },
 "network": {
  "egress_free_gib": 100,
  "egress_gib": 0.087,
  "ipv4_month": null,
  "ipv4_available": false,
  "internet": {
   "default": "configurable",
   "evidence": [
    {
     "quote": "You can configure egress policies to control outbound traffic from sandboxes, including domain-based allow or deny rules, CIDR-based network rules, and VNet integration.",
     "url": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview"
    },
    {
     "quote": "The recommended starting posture for any sandbox that runs untrusted code is default_action = Deny plus an explicit allow list of the destinations the workload needs.",
     "url": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-egress-policies"
    }
   ]
  }
 },
 "plans": [
  {
   "name": "Pay-as-you-go",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": null,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "No fee. Entra ID accounts only; role \"Container Apps SandboxGroup Data Owner\" required. \"Bursts to thousands of concurrent sandboxes\"."
  }
 ],
 "free": {
  "monthly_credit": 0,
  "one_time_credit": 200
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "gpu_types": [],
  "snapshot": "mem",
  "pause_resume": true,
  "fork": true,
  "persistent_disk": true,
  "volumes": true,
  "auto_stop_idle": true,
  "max_session_h": null,
  "custom_image": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": true,
  "systemd": true,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": true,
  "agent_harnesses": true,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": false,
  "raw_tcp_inbound": false,
  "egress_allowlist": true,
  "static_egress_ip": false,
  "private_network": true,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "regions": [
   "other",
   "eu",
   "asia",
   "us"
  ],
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": true,
  "egress_http_rules": true,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": true,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": true,
  "mcp_server": false,
  "isolation": "vm",
  "image_oci": true,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": false,
  "egress_allowlist_level": "both",
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": "any-http",
  "volume_attach": true,
  "volume_shared": true,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "own_agent_api": false,
  "max_session_unlimited": true,
  "open_internet": true,
  "usage_api": true,
  "persist_scope": "whole"
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "knobs": [
  {
   "id": "region_price",
   "label": "Sandbox group region",
   "kind": "select",
   "default": 1,
   "options": [
    {
     "value": 1,
     "label": "Base-price region (eastus, eastus2, centralus, northeurope, francecentral, germanywestcentral, swedencentral, japaneast, ...)"
    },
    {
     "value": 1.4,
     "label": "Higher-price region (westeurope, westus2, uksouth, southeastasia, australiaeast, canadacentral, ...) x1.40"
    }
   ],
   "effect": "rate_factor",
   "modes": null,
   "why": "Consumption meters are $0.000034/vCPU-s and $0.000004/GiB-s in these regions vs $0.000024 / $0.000003 in eastus"
  }
 ],
 "caveats": [
  "GA announced 2026-09-23 (Apps on Azure blog, raw/techcommunity_aca_sandboxes_ga_rss.txt). No Sandbox-specific meters exist in the Azure Retail Prices API; billing uses the Container Apps Consumption meters.",
  "Storage: \"charged (coming soon) at Premium Azure Blob ZRS rates\" for custom disk images and disk/memory snapshots (incl. automatic snapshots on stop); the OS disk each sandbox runs on is not billed. Premium Block Blob ZRS Data Stored = $0.20/GB-month (Retail API, eastus) -> snapshot_gib_month 0.2 is forward-looking; as of 2026-09-28 storage is not yet charged.",
  "Whether the Consumption free grant (180k vCPU-s / 360k GiB-s per subscription) covers Sandboxes is not stated; free.monthly_credit left 0.",
  "Region list is now published (40 regions). No sandbox-specific meters exist; if sandboxes bill the regional Consumption meters (\"same pay-per-second pricing as Consumption Plan\"), 19 regions incl. westeurope, westus2, uksouth, southeastasia, australiaeast, canadacentral charge $0.000034/vCPU-s (+41.7%) and $0.000004/GiB-s (+33%), i.e. about 1.40x the eastus tier prices (M $0.1512/h vs $0.108/h). Base-price regions include eastus, eastus2, centralus, westus, westus3, northeurope, francecentral, germanywestcentral, swedencentral, japaneast, eastasia, centralindia, brazilsouth.",
  "Savings plan applicability is inferred, not stated.",
  "Egress: Azure bandwidth rates, first 100 GB/month free then $0.087/GB (NA/EU), $0.12/GB (Asia). Data Disk / Blob volumes billed at Azure storage rates (not captured).",
  "Isolation: \"per-sandbox microVM\" (hypervisor not named); isolation enum set to firecracker for lack of a generic microvm value.",
  "GitHub Copilot cloud sandboxes are built on this service (GitHub docs).",
  "Programmatic custom sizes (any vCPU up to 16 at 2 GiB/vCPU) are represented by 8/16 and 16/32 presets inside the tiers regime; odd sizes between them price at the next preset up.",
  "Default auto-suspend is 300 s: a sandbox left idle keeps billing its full tier for 5 minutes before it stops (unless the client calls stop or sets a shorter idle timeout, e.g. 60 s). Source (checked 2026-10-14): https://sandboxes.azure.com/docs/sandboxes/sandboxes defaults table \"auto_suspend_seconds 300 Suspend after 5 minutes idle.\" (the lifecycle page only shows a 60 s example).",
  "Quota: 500 concurrent active cores per organization (typical; per subscription+region) and 3,000 API requests/minute; increases by support request, may need review.",
  "No availability SLA and no availability-zone support; single-region service.",
  "Mixed GA/preview status: GA announced 2026-09-23, but the Learn lifecycle page (updated 2026-09-23) still says sandboxes are in preview and titles lifecycle/snapshots '(preview)'; the aca CLI reports 1.0.0-preview.1; Connectors and Triggers are preview.",
  "Memory-mode suspend is unavailable when a Data Disk volume is attached (disk-only suspend; processes restart on resume).",
  "Docker and systemd depend on the disk image: 'azure-dev' ships Docker on systemd and 'copilot' runs systemd as PID 1, but the default 'ubuntu' image uses /bin/bash as entrypoint and offers only Buildah for Dockerfile builds (https://sandboxes.azure.com/docs/sandboxes/disk-images, 2026-10-14).",
  "Private Endpoint (inbound from your VNet) adds Container Apps 'Environment Private Endpoint' $0.10/h (~$73/month, eastus) plus Azure Private Link charges."
 ],
 "sources": [
  "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
  "https://azure.microsoft.com/en-us/pricing/details/container-apps/",
  "https://techcommunity.microsoft.com/blog/appsonazureblog/azure-container-apps-sandboxes-now-generally-available/4559125",
  "https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Azure Container Apps'",
  "https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Storage' and skuName eq 'Premium ZRS'"
 ],
 "fleet": {
  "default_max_instances": null,
  "default_max_vcpu": 500,
  "default_max_gpus": null,
  "raise": "ticket",
  "raise_time_days": null,
  "verification": "Active Azure subscription and Container Apps SandboxGroup Data Owner role. Azure signup uses phone and non-prepaid card for identity verification.",
  "tiers": null,
  "notes": "Typical quota per organization: 500 concurrent active cores (Sandbox Cores quota, per subscription and region, visible in My quotas; stopped sandboxes don't count; reaching it blocks creating or starting sandboxes) and an API rate limit of 3,000 requests per minute (HTTP 429 above; not shown in quota management). Both raised via support request (Service and subscription limits), review possible. Ordinary Container Apps replica limits don't apply.",
  "sources": [
   "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-quickstart-portal",
   "https://azure.microsoft.com/free/"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 14,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 4
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/lifecycle",
   "quote": "When sandbox is stopping, it snapshots disk and memory (optional) before it enters stopped state.",
   "note": "Every stop (manual, API, or auto-suspend lifecycle policy after idle timeout: no ingress, exec, shell or file ops) takes a snapshot per Suspend Mode: Memory = disk + RAM (processes resume), Disk = disk only (VM restarts fresh). Memory mode unavailable when a Data Disk volume is attached. Resume 'under a second'. Learn overview: 'When the sandbox is stopped, the operation takes and preserves a snapshot based on the Suspend Mode'.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "Snapshots capture the full state of a running sandbox, including memory and disk.",
   "note": "Named, group-scoped snapshots via portal, `aca sandbox snapshot`, SDK create_snapshot(); memory included; new sandboxes can be created from a snapshot (fan-out/fork; resources fixed to the snapshot's). Also commit a running sandbox to a new disk image. Snapshots page: 'Freeze a running sandbox into a snapshot. Restore that state into new sandboxes when you need a primed environment without repeating setup.'",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/connectors",
   "quote": "Copilot picks it up on its next run:",
   "note": "Only preinstalled agents (public disk images 'copilot' with GitHub Copilot CLI and 'claude' with Claude Code; Create menu has GitHub Copilot Sandbox and Claude Sandbox templates) driven through the generic exec API (e.g. `aca sandbox exec ... | copilot --allow-all-tools -p @-`). No documented API to start/stream/resume agent sessions. Connector triggers can wake a sandbox and call executeShellCommand. Agent Skills plugin is the reverse direction (lets your agent drive sandboxes).",
   "checked": "2026-09-29"
  },
  "egress_allowlist": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "You can configure egress policies to control outbound traffic from sandboxes, including domain-based allow or deny rules, CIDR-based network rules, and VNet integration.",
   "note": "Per-sandbox egress proxy policy with default Allow/Deny, wildcard host rules (e.g. *.github.com), mutable at runtime, audit of decisions. Opt-in: 'If no egress policy is specified, the sandbox has unrestricted outbound access.' Full inspection blocks non-HTTP traffic. CIDR rule syntax itself not shown on the guide pages seen.",
   "checked": "2026-09-29",
   "level": "both"
  },
  "egress_http_rules": {
   "value": true,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/egress",
   "quote": "Use policy files for path or method matches, rewrites, transforms, and header operations.",
   "note": "Rules match host + path + HTTP methods; actions Allow/Deny/Transform (header Set/Append/Remove)/Rewrite (scheme/host/path); first match wins. A rule can delegate to an external webhook (hookRef) that decides/transforms/rewrites per request.",
   "checked": "2026-09-29"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://sandboxes.azure.com/docs/sandboxes/private-endpoints",
   "quote": "Use a Private Endpoint when you must reach Sandbox workloads from a VNet, peered network, VPN, or ExpressRoute connection without exposing Sandbox ingress to the public internet.",
   "note": "Ports are exposed only when you publish them (port add/remove); 'Anonymous ports are public HTTPS routes to a process that listens inside the sandbox.' A non-anonymous (authenticated) port mode is implied by the 'Anonymous' option but not documented on pages seen. Private Endpoint via an Express Container Apps Environment (extra cost). No IP allowlist documented.",
   "checked": "2026-09-29"
  },
  "guest_firewall": {
   "value": true,
   "source": null,
   "quote": null,
   "note": "Per-sandbox microVM 'with its own kernel' and root (/root paths, systemd images); iptables/nftables inside not documented. Derived.",
   "checked": "2026-09-29",
   "derived": true
  },
  "secret_proxy": {
   "value": "any-http",
   "source": "https://sandboxes.azure.com/docs/sandboxes/secrets",
   "quote": "Values are not auto-injected as environment variables. Reference them from supported sandbox group configuration such as egress-policy header transforms and OTLP telemetry authentication.",
   "note": "Egress-proxy Transform rules inject headers from group Secrets (format e.g. 'Bearer {value}') or managed-identity tokens for any host; Learn: Transform and Rewrite let the proxy authenticate outbound calls 'without the sandbox ever needing to hold the credentials directly'. HTTP(S) only (proxy with TLS inspection); no DB/SSH coverage. MCP connectors also keep e.g. GitHub tokens out of the sandbox. Caveat: the separate AI provider Credentials (Copilot PAT / Anthropic key) are injected INTO sandboxes at start.",
   "checked": "2026-09-29"
  },
  "volume_attach": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "Microsoft manages volumes and provides persistent storage that you can mount into sandboxes.",
   "note": "Types: Azure Blob (managed), Azure Blob BYO (customer container), Data Disk (local-disk, full POSIX, single sandbox). Volumes survive sandbox deletion.",
   "checked": "2026-09-29"
  },
  "volume_shared": {
   "value": true,
   "source": "https://sandboxes.azure.com/docs/sandboxes/volumes",
   "quote": "Mountable on many sandboxes for read sharing. Not suitable for concurrent writers. Writes from one sandbox aren't reliably visible to others.",
   "note": "Azure Blob and Azure Blob BYO volumes mount on many sandboxes at once (read-mostly; writes not coherent across sandboxes, partial POSIX). Data Disk is single-mount ('A second mount attempt is rejected').",
   "checked": "2026-09-29"
  },
  "anti_bot": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "Azure Container Apps sandboxes are secure, isolated compute environments designed to safely execute untrusted or dynamically generated code, such as code generated by AI agents.",
   "note": "not offered: outside the product's scope (a general-purpose per-sandbox microVM code-execution product for AI agents, not a browser/scraping stealth product; no stealth/fingerprinting feature is documented anywhere in the sandboxes docs).",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "Azure Container Apps sandboxes are secure, isolated compute environments designed to safely execute untrusted or dynamically generated code, such as code generated by AI agents.",
   "note": "not offered: outside the product's scope (a general-purpose sandbox/VM compute product; no CAPTCHA-solving capability is documented).",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/egress",
   "quote": "Choose how outbound traffic from the Sandbox is allowed or denied, configure inspection, and audit policy decisions from an egress proxy.",
   "note": "Outbound traffic for every sandbox is routed through Azure's own egress proxy / Container Apps environment networking (regular Azure datacenter IP space). No residential, mobile, or ISP-style egress is offered or implied anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": true,
   "source": "https://sandboxes.azure.com/docs/sandboxes/snapshots",
   "quote": "Select a running Sandbox. From the sandbox's toolbar, select Snapshot, and then select Create. The snapshot ID appears. Go to the Snapshots page and select a Snapshot. Select Create sandbox from the toolbar.",
   "note": "Snapshotting is performed on a Running sandbox (the walkthrough explicitly selects 'a running Sandbox' before capturing the snapshot) and the source sandbox keeps running / is not stopped by the operation; the snapshot is then used to create new sandbox(es) (fork). Multiple sandboxes can be created from one snapshot (fan-out), per sandboxes-overview: 'new sandboxes can be created from a snapshot'.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/connectors",
   "quote": "Agent sandbox: Copilot or Claude inside · Discovers connector tools at runtime · Calls services through MCP tools",
   "note": "not offered: the product ships preinstalled third-party coding-agent images (GitHub Copilot CLI, Claude Code) driven through the generic exec API, and lets connected agents call external MCP/API connectors; there is no first-party Microsoft task agent (browser/computer-use/research agent) with its own driving API.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/connectors",
   "quote": "MCP Connector · A toolkit your AI agent discovers at runtime · Best for Copilot, Claude, or any MCP client e.g. Teams · ServiceBus · JIRA · Slack",
   "note": "Azure's 'MCP Connectors' let an agent running inside a sandbox call out to third-party MCP servers (Teams, Jira, Slack, SharePoint, etc.) - the opposite direction from the field definition. No Microsoft-shipped MCP server was found that lets an external MCP client (e.g. Claude Desktop) control/manage the Container Apps Sandboxes API itself (create/exec/snapshot sandboxes); not found in docs or the microsoft GitHub org.",
   "checked": "2026-09-30"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/vnet",
   "quote": "Attach a sandbox group to one or more customer Azure Virtual Networks (VNets) so its sandboxes can reach private endpoints, peered networks, and on-prem resources alongside the egress proxy.",
   "note": "Outbound traffic goes through the shared Container Apps egress proxy (and optionally a customer VNet integration for reaching private endpoints); no fixed/static outbound IP for a sandbox or sandbox group is documented on the egress, VNet, or overview pages (no NAT Gateway / static outbound IP feature mentioned).",
   "checked": "2026-09-30"
  },
  "max_session_h": {
   "value": "none",
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/lifecycle",
   "quote": "A sandbox has two core states: Running and Stopped. ... A lifecycle policy can stop an idle sandbox and/or delete stopped sandbox after a set interval.",
   "note": "No maximum wall-clock runtime for a Running sandbox is documented anywhere (lifecycle, limits/quotas, or overview pages); a sandbox keeps running until it is explicitly stopped, deleted, or auto-suspended for idleness (no incoming traffic/exec/shell/file ops), which is a different mechanism from a hard session-length cap.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": true,
   "corrected_from": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/lifecycle",
   "quote": "Stopped sandboxes keep disk state and stop compute billing.",
   "note": "Contradiction resolved: the card already records pause/resume and automatic disk+memory snapshots on stop. Lifecycle guide is explicit that Stop preserves disk state (default auto-suspend interval 300s, mode Memory = disk+RAM restored; disk-only mode also keeps the disk). Files survive stop/start, so persistent_disk should be true.",
   "checked": "2026-09-30"
  },
  "docker_inside": {
   "value": true,
   "corrected_from": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/disk-images",
   "quote": "Systemd-based Ubuntu 26.04 environment with Azure CLI, Azure Developer CLI, Bicep, Azure Functions Core Tools, .NET 10, Node.js 24, Python and uv, Go, Java 17 and Maven, Docker, GitHub Copilot CLI, and Visual Studio Code CLI.",
   "note": "The first-party 'azure-dev' public disk image ships Docker; the 'ubuntu' image: \"Includes Buildah for in-sandbox Dockerfile builds\". Each sandbox is its own microVM with its own kernel and root. The earlier false value contradicted its own evidence. Docker comes preinstalled only on azure-dev (or a custom disk image), not on the default ubuntu image.",
   "checked": "2026-10-14"
  },
  "systemd": {
   "value": true,
   "corrected_from": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/disk-images",
   "quote": "Uses systemd as PID 1 and includes GitHub Copilot CLI, GitHub CLI, Node.js 24, Python 3, and nodemon.",
   "note": "The 'copilot' public image runs systemd as PID 1 and 'azure-dev' is a \"Systemd-based Ubuntu 26.04 environment\". The default 'ubuntu' image \"Uses /bin/bash as the entrypoint\", so systemd depends on picking one of these images.",
   "checked": "2026-10-14"
  },
  "nested_virt": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes",
   "quote": "Azure Container Apps Sandboxes Isolated microVMs, on demand. ... Strong isolation. Each sandbox runs in its own secure boundary with its own kernel.",
   "note": "Not documented as offered anywhere (overview, lifecycle, disk-images, sandbox-detail, CLI/Python SDK reference pages all checked; no /dev/kvm, KVM device, or nested-virtualization capability is mentioned). Each sandbox is itself a microVM (Firecracker-style isolation, per the card's isolation field); such microVM hypervisors do not by default pass hardware virtualization extensions through to the guest, so a further layer of virtualization (running VMs/emulators) inside the sandbox is not supported. Medium confidence because the docs never state this negatively in so many words.",
   "checked": "2026-09-30"
  },
  "ssh": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/interactive-shell",
   "quote": "An interactive shell is a terminal session inside a running sandbox. ... Use shell for a live terminal. ... aca sandbox shell -l name=demo-shell",
   "note": "Interactive access is via the portal's streaming console or the `aca sandbox shell`/`sandbox.exec()` API (a proprietary control-plane channel), not SSH. No SSH server, SSH key management, or ssh:// endpoint is documented anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "Sandboxes Programmable isolated compute with lifecycle control You manage: create, suspend, resume, delete",
   "note": "not offered: outside the product's scope. Product is a headless Linux microVM sandbox for code execution/agents (CLI, SDK, REST, portal terminal); no VNC/RDP/graphical desktop stream is documented anywhere.",
   "checked": "2026-09-30"
  },
  "browser": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/disk-images",
   "quote": "ubuntu General-purpose Linux sandbox Ubuntu base with diagnostic tools, including htop, btop, dnsutils, and vim.",
   "note": "not offered: outside the product's scope. None of the public disk images (ubuntu, nginx, copilot, claude, azure-dev, language runtimes, code-interpreter) bundle or manage a browser; no managed-browser feature is documented.",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "You interact with sandboxes by executing commands, managing files, exposing ports, and controlling lifecycle state.",
   "note": "not offered: outside the product's scope. Interaction is command execution / file / port / lifecycle APIs, not screenshot+click automation of a GUI; there is no desktop to drive, so no computer-use API exists.",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/ports",
   "quote": "Anonymous ports are public HTTPS routes to a process that listens inside the sandbox.",
   "note": "Inbound access is only via generated HTTPS URLs for explicitly published ports (or Private Endpoint for VNet-only access); no per-sandbox public IPv4 address is allocated or documented.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/container-apps/",
   "quote": "Azure Container Apps Express and Sandboxes follow the same pay-per-second pricing as Consumption Plan.",
   "note": "Sandbox tiers (XS-XL, plus programmatic sizes up to 16 vCPU/32 GB) are vCPU/memory only; the separate GPU (hour) meter and 'Serverless GPU'/NC T4/A100 workload profiles apply to the Dedicated plan's GPU workload profiles, a different Container Apps product, and are not offered for Sandboxes.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandboxes",
   "quote": "Start a fresh Linux sandbox.",
   "note": "not offered: outside the product's scope. All public disk images and quickstarts are Linux-only (Ubuntu-based); no Windows sandbox option is documented.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandboxes",
   "quote": "Start a fresh Linux sandbox.",
   "note": "not offered: outside the product's scope. Azure Container Apps is an x86-based Linux hyperscaler compute service; macOS machines are plainly outside its scope and are not mentioned anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/containers",
   "quote": "Azure Container Apps supports: Any Linux-based x86-64 (linux/amd64) container image",
   "note": "not offered: outside the product's scope. Sandbox-specific pages (overview, disk-images, tiers/pricing, quickstart) never mention CPU architecture or an ARM option, but the general Azure Container Apps platform Sandboxes is built on (same Consumption-plan compute/billing meters) explicitly requires Linux-based x86-64 (linux/amd64) images; no ARM64 workload profile, image, or sandbox size exists anywhere in Container Apps docs.",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "You create and manage sandbox groups through the ARM control plane.",
   "note": "not offered: outside the product's scope. Sandboxes is a fully managed Microsoft Azure PaaS service run on Microsoft's infrastructure; there is no downloadable server/runtime to self-host.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/container-apps/sandboxes-overview",
   "quote": "It's an Azure Resource Manager (ARM) resource that you create in a resource group and region.",
   "note": "not offered: outside the product's scope. This is Azure's own native service running inside Azure's control plane/infrastructure, not a third-party product deployed into a customer-owned cloud account (there is no separate vendor cloud account to bring).",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs",
   "quote": "Copyright © 2026 Microsoft Corporation. All rights reserved.",
   "note": "Proprietary Microsoft Azure service; no OSI-licensed core product exists (only the client SDK/CLI and samples are open on GitHub, e.g. Azure-Samples/azure-container-apps-sandboxes, not the sandbox runtime/control plane itself).",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox-detail",
   "quote": "Header actions and overflow menu … Resume … Stop … Details … Add Port … Snapshot … Commit Image … Egress Policy … Lifecycle Policy … Delete",
   "note": "The full list of actions available on a running sandbox (portal detail page) and the full ACA CLI command set (apply, create, delete, egress, exec, get, init, list, schema, shell, stop, validate) contain no resize/update-resources command; CPU and memory ('resources.cpu', 'resources.memory') are only set in the create/apply spec (cpu: 1000m, memory: 2048Mi in the sandbox.yaml manifest), not adjustable on a Running sandbox. Lifecycle states (Creating, Running, Stopped, Suspended, Idle, Resuming, Stopping, Deleting) include no 'resizing' state. Changing size therefore requires creating a new sandbox (or restoring a snapshot/commit at a different size), not an in-place resize.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/cost-management-billing/costs/understand-cost-mgt-data",
   "quote": "Use the Tags API with either Query or Cost and Usage Details APIs to get all cost based on the current tags. Resource tags are only included in usage data while the tag is applied to the resource.",
   "note": "granularity: per-sandbox; cost: yes; Azure Cost Management Query API breaks down billable usage (vCPU-seconds, GiB-seconds) by resource ID (each sandbox is an ARM resource) and by resource tags. Sandboxes use Consumption Plan meters same as Container Apps. Per-sandbox usage can be retrieved by resource ID filter or by sandbox-applied tags through the Query API.",
   "confidence": "medium",
   "checked": "2026-10-01"
  },
  "persist_scope": {
   "value": "whole",
   "source": "https://sandboxes.azure.com/docs/sandboxes/sandbox/lifecycle",
   "quote": "Stopped sandboxes keep disk state and stop compute billing.",
   "note": "The whole disk survives a stop, installed packages included.",
   "checked": "2026-10-01"
  }
 },
 "locations": [
  {
   "country": "AE",
   "state": null,
   "city": "Abu Dhabi",
   "provider_region": "uaecentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AE",
   "state": null,
   "city": "Dubai",
   "provider_region": "uaenorth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AT",
   "state": null,
   "city": "Vienna",
   "provider_region": "austriaeast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": "ACT",
   "city": "Canberra",
   "provider_region": "australiacentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": "NSW",
   "city": "Canberra",
   "provider_region": "australiacentral2",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": "NSW",
   "city": "Sydney",
   "provider_region": "australiaeast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": "VIC",
   "city": "Melbourne",
   "provider_region": "australiasoutheast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "BE",
   "state": null,
   "city": "Brussels",
   "provider_region": "belgiumcentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "BR",
   "state": "RJ",
   "city": "Rio de Janeiro",
   "provider_region": "brazilsoutheast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "BR",
   "state": "SP",
   "city": "São Paulo",
   "provider_region": "brazilsouth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CA",
   "state": "ON",
   "city": "Toronto",
   "provider_region": "canadacentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CA",
   "state": "QC",
   "city": "Quebec",
   "provider_region": "canadaeast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CH",
   "state": null,
   "city": "Geneva",
   "provider_region": "switzerlandwest",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CH",
   "state": null,
   "city": "Zurich",
   "provider_region": "switzerlandnorth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CL",
   "state": null,
   "city": "Santiago",
   "provider_region": "chilecentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "DE",
   "state": null,
   "city": "Berlin",
   "provider_region": "germanynorth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "DE",
   "state": null,
   "city": "Frankfurt",
   "provider_region": "germanywestcentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "ES",
   "state": null,
   "city": "Madrid",
   "provider_region": "spaincentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "FR",
   "state": null,
   "city": "Marseille",
   "provider_region": "francesouth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "FR",
   "state": null,
   "city": "Paris",
   "provider_region": "francecentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "GB",
   "state": null,
   "city": "Cardiff",
   "provider_region": "ukwest",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "GB",
   "state": null,
   "city": "London",
   "provider_region": "uksouth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "HK",
   "state": null,
   "city": "Hong Kong",
   "provider_region": "eastasia",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "ID",
   "state": null,
   "city": "Jakarta",
   "provider_region": "indonesiacentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IE",
   "state": null,
   "city": "Dublin",
   "provider_region": "northeurope",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IL",
   "state": null,
   "city": "Tel Aviv",
   "provider_region": "israelcentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Chennai",
   "provider_region": "southindia",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Indore",
   "provider_region": "jioindiacentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Jamnagar",
   "provider_region": "jioindiawest",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Mumbai",
   "provider_region": "westindia",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Pune",
   "provider_region": "centralindia",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IT",
   "state": null,
   "city": "Milan",
   "provider_region": "italynorth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "JP",
   "state": null,
   "city": "Osaka",
   "provider_region": "japanwest",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "JP",
   "state": null,
   "city": "Tokyo",
   "provider_region": "japaneast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "KR",
   "state": null,
   "city": "Busan",
   "provider_region": "koreasouth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "KR",
   "state": null,
   "city": "Seoul",
   "provider_region": "koreacentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "MX",
   "state": null,
   "city": "Querétaro",
   "provider_region": "mexicocentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "MY",
   "state": null,
   "city": "Kuala Lumpur",
   "provider_region": "malaysiawest",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NL",
   "state": null,
   "city": "Amsterdam",
   "provider_region": "westeurope",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NO",
   "state": null,
   "city": "Oslo",
   "provider_region": "norwayeast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NO",
   "state": null,
   "city": "Stavanger",
   "provider_region": "norwaywest",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NZ",
   "state": null,
   "city": "Auckland",
   "provider_region": "newzealandnorth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "PL",
   "state": null,
   "city": "Warsaw",
   "provider_region": "polandcentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "QA",
   "state": null,
   "city": "Doha",
   "provider_region": "qatarcentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "SE",
   "state": null,
   "city": "Gävle",
   "provider_region": "swedencentral",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "SE",
   "state": null,
   "city": "Stockholm",
   "provider_region": "swedensouth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "SG",
   "state": null,
   "city": "Singapore",
   "provider_region": "southeastasia",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "TW",
   "state": null,
   "city": "Taipei",
   "provider_region": "taiwannorth",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "AZ",
   "city": "Phoenix",
   "provider_region": "usgovarizona",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "AZ",
   "city": "Phoenix",
   "provider_region": "westus3",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "CA",
   "city": "California",
   "provider_region": "westus",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "IA",
   "city": "Iowa",
   "provider_region": "centralus",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "IL",
   "city": "Chicago",
   "provider_region": "northcentralus",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "TX",
   "city": "San Antonio",
   "provider_region": "usgovtexas",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "TX",
   "city": "Texas",
   "provider_region": "southcentralus",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "VA",
   "city": "Arlington",
   "provider_region": "usgovvirginia",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "VA",
   "city": "Ashburn",
   "provider_region": "eastus",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "VA",
   "city": "Virginia",
   "provider_region": "eastus2",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "WA",
   "city": "Washington",
   "provider_region": "westus2",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "WY",
   "city": "Wyoming",
   "provider_region": "westcentralus",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "ZA",
   "state": null,
   "city": "Cape Town",
   "provider_region": "southafricawest",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "ZA",
   "state": null,
   "city": "Johannesburg",
   "provider_region": "southafricanorth",
   "self_serve": true,
   "choosable": true
  }
 ],
 "locations_source": "https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Azure Container Apps' and skuName eq 'Standard' and (contains(meterName, 'vCPU Active') or contains(meterName, 'Memory Active'))",
 "locations_quote": "Azure Container Apps Express and Sandboxes follow the same pay-per-second pricing as Consumption Plan. A sandbox group is a regional Azure Resource Manager (ARM) resource that you create in a resource group and region.",
 "locations_checked": "2026-10-01"
}