{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": false,
  "fork": true,
  "pause_resume": true,
  "persistent_disk": true,
  "whole_disk": true,
  "persist_scope": true,
  "volumes": true,
  "auto_stop_idle": false,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": false,
  "vm_isolation": true,
  "docker_inside": true,
  "nested_virt": true,
  "root": true,
  "systemd": true,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": false,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": false,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": false,
  "ssh": true,
  "public_ipv4": true,
  "inbound_https": false,
  "custom_domain": true,
  "raw_tcp_inbound": true,
  "egress_allowlist": true,
  "open_internet": true,
  "static_egress_ip": true,
  "private_network": true,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "gpu": true,
  "arm64": true,
  "windows": true,
  "macos": false,
  "lang_python": false,
  "lang_node": false,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": null,
  "egress_http_rules": true,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": false,
  "mcp_server": true,
  "usage_api": true,
  "snapshot_auto": false,
  "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": false,
  "secret_proxy_any": false,
  "volume_attach": true,
  "volume_shared": true,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "azure-vm",
  "checked": "2026-09-30",
  "company": "Microsoft Corporation",
  "ownership": {
   "value": "subsidiary",
   "parent": "Microsoft Corporation",
   "source": "https://www.microsoft.com/en-us/investor/earnings/fy-2025-q4/press-release-webcast",
   "quote": "this year, Azure surpassed $75 billion in revenue, up 34 percent, driven by growth across all workloads"
  },
  "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 Virtual Machines is a product/business line of Microsoft Corporation (NASDAQ: MSFT), a public company; not independently funded."
  },
  "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": "Whole-company Microsoft Corporation revenue from its official FY2025 Q4/full-year earnings press release; Azure itself is reported as a segment component, not a standalone audited figure. Microsoft also disclosed Azure alone surpassed $75B in annual revenue, up 34%.",
   "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 Virtual Machines is a cloud VM product of Microsoft Corporation (NASDAQ: MSFT), a public company — not an independent startup. No separate funding/accelerator history applies. FY2025 (ended June 30, 2025) total Microsoft revenue was $281.7B (confirmed, company press release); Microsoft separately stated Azure alone surpassed $75B in revenue for the year, up 34%, but did not disclose an exact audited Azure-only dollar figure."
 },
 "id": "azure-vm",
 "name": "Azure Virtual Machines (Linux)",
 "url": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
 "category": "hyperscaler",
 "isolation": "vm",
 "modes": [
  {
   "key": "on-demand",
   "label": "Pay-as-you-go Linux Dsv5/Dasv5/Dlsv5/Fsv2 (East US)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {
    "nested_virt": true
   },
   "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": "D2s_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.096,
     "month_cap": null
    },
    {
     "name": "D4s_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.192,
     "month_cap": null
    },
    {
     "name": "D8s_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.384,
     "month_cap": null
    },
    {
     "name": "D16s_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.768,
     "month_cap": null
    },
    {
     "name": "D32s_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 1.536,
     "month_cap": null
    },
    {
     "name": "D2as_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.086,
     "month_cap": null
    },
    {
     "name": "D4as_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.172,
     "month_cap": null
    },
    {
     "name": "D8as_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.344,
     "month_cap": null
    },
    {
     "name": "D16as_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.688,
     "month_cap": null
    },
    {
     "name": "D32as_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 1.376,
     "month_cap": null
    },
    {
     "name": "D2ls_v5",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.085,
     "month_cap": null
    },
    {
     "name": "D4ls_v5",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.17,
     "month_cap": null
    },
    {
     "name": "D8ls_v5",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.34,
     "month_cap": null
    },
    {
     "name": "D16ls_v5",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.68,
     "month_cap": null
    },
    {
     "name": "F2s_v2",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.0846,
     "month_cap": null
    },
    {
     "name": "F4s_v2",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.169,
     "month_cap": null
    },
    {
     "name": "F8s_v2",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.338,
     "month_cap": null
    },
    {
     "name": "F16s_v2",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.677,
     "month_cap": null
    },
    {
     "name": "F32s_v2",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 1.353,
     "month_cap": null
    },
    {
     "name": "D2als_v7",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.0804,
     "month_cap": null
    },
    {
     "name": "D4als_v7",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.161,
     "month_cap": null
    },
    {
     "name": "D8als_v7",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.322,
     "month_cap": null
    },
    {
     "name": "D16als_v7",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.643,
     "month_cap": null
    },
    {
     "name": "D32als_v7",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 1.286,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API (armRegionName eastus, serviceName 'Virtual Machines', type Consumption, Linux productName without 'Windows', excl. Spot/Low Priority), fetched 2026-09-28. Billed per full minute while running (Azure: '6 min 45 s -> 6 min'); 'Stopped' from inside the OS still bills, only 'Stopped (deallocated)' stops compute. OS disk, IPv4 and egress extra. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "on-demand-arm64",
   "label": "Pay-as-you-go Linux Dpsv5/Dpsv6/Dplsv6 Arm (Ampere Altra, Cobalt 100) (East US)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {
    "arm64": true,
    "nested_virt": false
   },
   "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": "D2ps_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.077,
     "month_cap": null
    },
    {
     "name": "D4ps_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.154,
     "month_cap": null
    },
    {
     "name": "D8ps_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.308,
     "month_cap": null
    },
    {
     "name": "D2pls_v6",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.062,
     "month_cap": null
    },
    {
     "name": "D4pls_v6",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.124,
     "month_cap": null
    },
    {
     "name": "D8pls_v6",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.248,
     "month_cap": null
    },
    {
     "name": "D16pls_v6",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.496,
     "month_cap": null
    },
    {
     "name": "D32pls_v6",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.992,
     "month_cap": null
    },
    {
     "name": "D2ps_v6",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.0702,
     "month_cap": null
    },
    {
     "name": "D4ps_v6",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.14,
     "month_cap": null
    },
    {
     "name": "D8ps_v6",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.281,
     "month_cap": null
    },
    {
     "name": "D16ps_v6",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.562,
     "month_cap": null
    },
    {
     "name": "D32ps_v6",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 1.123,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API eastus 2026-09-28. arm64 only, 1 vCPU = 1 core: Dpsv5 = Ampere Altra, Dpsv6/Dplsv6 = Azure Cobalt 100 (Microsoft Learn size pages, 2026-10-14: \"The Dplsv6-series virtual machines are powered by Azure's first-generation Cobalt 100 processor\"). Nested virtualization: \"Not supported\" on all three families. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "burstable-basv2-30",
   "label": "B-series v2 burstable Basv2 'l' sizes, 30% baseline (East US)",
   "flags": [
    "burstable"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {
    "nested_virt": false
   },
   "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": "B2als_v2",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.0376,
     "month_cap": null
    },
    {
     "name": "B4als_v2",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.133,
     "month_cap": null
    },
    {
     "name": "B8als_v2",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.266,
     "month_cap": null
    },
    {
     "name": "B16als_v2",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.533,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API eastus 2026-09-28. AMD EPYC, 2 GiB/vCPU. Base CPU performance 30% of the VM (Microsoft Basv2 size table, 0-100% scale); credits bank below baseline, sustained load above it throttles to 30% once credits run out (no paid 'unlimited' mode like AWS). Intel Bsv2 equivalents (B4ls_v2 $0.147/h) are dearer. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "baseline_pct": 30,
   "product_class": "vm",
   "cpu_class": "shared"
  },
  {
   "key": "burstable-basv2-40",
   "label": "B-series v2 burstable Basv2, 40% baseline (East US)",
   "flags": [
    "burstable"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {
    "nested_virt": false
   },
   "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": "B2as_v2",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.0752,
     "month_cap": null
    },
    {
     "name": "B4as_v2",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.15,
     "month_cap": null
    },
    {
     "name": "B8as_v2",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.301,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API eastus 2026-09-28. AMD EPYC, 4 GiB/vCPU. Base CPU performance 40% of the VM (Microsoft Basv2 size table). boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "baseline_pct": 40,
   "product_class": "vm",
   "cpu_class": "shared"
  },
  {
   "key": "burstable-bv1",
   "label": "B-series v1 burstable B2s/B2ms/B4ms/B8ms (East US)",
   "flags": [
    "burstable"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {
    "nested_virt": false
   },
   "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": "B2s",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.0416,
     "month_cap": null
    },
    {
     "name": "B2ms",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.0832,
     "month_cap": null
    },
    {
     "name": "B4ms",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.166,
     "month_cap": null
    },
    {
     "name": "B8ms",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.333,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API eastus 2026-09-28. Baseline differs by size (Microsoft Bv1 table, 0-100% scale): B2s 20%, B2ms 30%, B4ms 22.5%, B8ms 17%; baseline_pct = B4ms (the 4-vCPU size). Older generation; no reservations returned by the API for these SKUs. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "baseline_pct": 22.5,
   "product_class": "vm",
   "cpu_class": "shared"
  },
  {
   "key": "spot",
   "label": "Spot Linux Dsv5/Dasv5/Dlsv5/Fsv2 (East US, snapshot)",
   "flags": [
    "spot"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {},
   "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": "D2s_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.020266,
     "month_cap": null
    },
    {
     "name": "D4s_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.040531,
     "month_cap": null
    },
    {
     "name": "D8s_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.081062,
     "month_cap": null
    },
    {
     "name": "D16s_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.162125,
     "month_cap": null
    },
    {
     "name": "D32s_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.32425,
     "month_cap": null
    },
    {
     "name": "D2as_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.018155,
     "month_cap": null
    },
    {
     "name": "D4as_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.036309,
     "month_cap": null
    },
    {
     "name": "D8as_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.072618,
     "month_cap": null
    },
    {
     "name": "D16as_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.145237,
     "month_cap": null
    },
    {
     "name": "D32as_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.290474,
     "month_cap": null
    },
    {
     "name": "D2ls_v5",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.017944,
     "month_cap": null
    },
    {
     "name": "D4ls_v5",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.035887,
     "month_cap": null
    },
    {
     "name": "D8ls_v5",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.071774,
     "month_cap": null
    },
    {
     "name": "D16ls_v5",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.143548,
     "month_cap": null
    },
    {
     "name": "F2s_v2",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.018612,
     "month_cap": null
    },
    {
     "name": "F4s_v2",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.03718,
     "month_cap": null
    },
    {
     "name": "F8s_v2",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.07436,
     "month_cap": null
    },
    {
     "name": "F16s_v2",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.14894,
     "month_cap": null
    },
    {
     "name": "F32s_v2",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.29766,
     "month_cap": null
    },
    {
     "name": "D2als_v7",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.015598,
     "month_cap": null
    },
    {
     "name": "D4als_v7",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.031234,
     "month_cap": null
    },
    {
     "name": "D8als_v7",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.062468,
     "month_cap": null
    },
    {
     "name": "D16als_v7",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.124742,
     "month_cap": null
    },
    {
     "name": "D32als_v7",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.249484,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API eastus 'Spot' meters, point-in-time 2026-09-28 (Azure Spot prices vary with capacity; eviction with 30 s notice; eviction policy deallocate or delete; max-price cap optional). boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "reserved-1y",
   "label": "Reserved VM Instance 1-year Linux D-series (East US)",
   "flags": [
    "commit"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {},
   "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": "D2s_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.05925,
     "month_cap": null
    },
    {
     "name": "D4s_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.11849,
     "month_cap": null
    },
    {
     "name": "D8s_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.23687,
     "month_cap": null
    },
    {
     "name": "D16s_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.47386,
     "month_cap": null
    },
    {
     "name": "D32s_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.94772,
     "month_cap": null
    },
    {
     "name": "D2as_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.05308,
     "month_cap": null
    },
    {
     "name": "D4as_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.10616,
     "month_cap": null
    },
    {
     "name": "D8as_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.21221,
     "month_cap": null
    },
    {
     "name": "D16as_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.42454,
     "month_cap": null
    },
    {
     "name": "D32as_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.84897,
     "month_cap": null
    },
    {
     "name": "D2ls_v5",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.0524,
     "month_cap": null
    },
    {
     "name": "D4ls_v5",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.10491,
     "month_cap": null
    },
    {
     "name": "D8ls_v5",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.20982,
     "month_cap": null
    },
    {
     "name": "D16ls_v5",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.41952,
     "month_cap": null
    },
    {
     "name": "D2als_v7",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.04749,
     "month_cap": null
    },
    {
     "name": "D4als_v7",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.09486,
     "month_cap": null
    },
    {
     "name": "D8als_v7",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.18973,
     "month_cap": null
    },
    {
     "name": "D16als_v7",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.37945,
     "month_cap": null
    },
    {
     "name": "D32als_v7",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.75902,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": true,
   "always_on_month_per_instance": null,
   "commit_note": "1-year Azure Reserved VM Instance; Retail Prices API 'Reservation 1 Year' total term price / 8760 h. Billed every hour of the term whether the VM runs or not (monthly or upfront payment, same total). Fsv2 returned no reservation rows.",
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API eastus 2026-09-28. Azure savings plan for compute (1y/3y $/h commitment) is an alternative, not modelled. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "commit_term": "1-year",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "reserved-3y",
   "label": "Reserved VM Instance 3-year Linux D-series (East US)",
   "flags": [
    "commit"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {},
   "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": "D2s_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.03794,
     "month_cap": null
    },
    {
     "name": "D4s_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.07584,
     "month_cap": null
    },
    {
     "name": "D8s_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.15167,
     "month_cap": null
    },
    {
     "name": "D16s_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.30335,
     "month_cap": null
    },
    {
     "name": "D32s_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.60674,
     "month_cap": null
    },
    {
     "name": "D2as_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.03398,
     "month_cap": null
    },
    {
     "name": "D4as_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.06792,
     "month_cap": null
    },
    {
     "name": "D8as_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.13588,
     "month_cap": null
    },
    {
     "name": "D16as_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.27177,
     "month_cap": null
    },
    {
     "name": "D32as_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.54353,
     "month_cap": null
    },
    {
     "name": "D2ls_v5",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.03356,
     "month_cap": null
    },
    {
     "name": "D4ls_v5",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.06716,
     "month_cap": null
    },
    {
     "name": "D8ls_v5",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.13428,
     "month_cap": null
    },
    {
     "name": "D16ls_v5",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.26861,
     "month_cap": null
    },
    {
     "name": "D2als_v7",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.03056,
     "month_cap": null
    },
    {
     "name": "D4als_v7",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.06111,
     "month_cap": null
    },
    {
     "name": "D8als_v7",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.12222,
     "month_cap": null
    },
    {
     "name": "D16als_v7",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.24441,
     "month_cap": null
    },
    {
     "name": "D32als_v7",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.48885,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": true,
   "always_on_month_per_instance": null,
   "commit_note": "3-year Azure Reserved VM Instance; Retail Prices API 'Reservation 3 Years' total term price / 26280 h. Billed every hour of the term whether the VM runs or not (monthly or upfront payment, same total). Fsv2 returned no reservation rows.",
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API eastus 2026-09-28. Azure savings plan for compute (1y/3y $/h commitment) is an alternative, not modelled. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "commit_term": "3-year",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "on-demand-eu",
   "label": "Pay-as-you-go Linux Dsv5/Dasv5/Dlsv5/Fsv2 (Sweden Central, cheapest EU checked)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": [
    "eu"
   ],
   "gpu_only": false,
   "features": {
    "nested_virt": true
   },
   "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": "D2s_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.102,
     "month_cap": null
    },
    {
     "name": "D4s_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.204,
     "month_cap": null
    },
    {
     "name": "D8s_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.408,
     "month_cap": null
    },
    {
     "name": "D16s_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.816,
     "month_cap": null
    },
    {
     "name": "D32s_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 1.632,
     "month_cap": null
    },
    {
     "name": "D2as_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.092,
     "month_cap": null
    },
    {
     "name": "D4as_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.184,
     "month_cap": null
    },
    {
     "name": "D8as_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.368,
     "month_cap": null
    },
    {
     "name": "D16as_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.736,
     "month_cap": null
    },
    {
     "name": "D32as_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 1.472,
     "month_cap": null
    },
    {
     "name": "D2ls_v5",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.091,
     "month_cap": null
    },
    {
     "name": "D4ls_v5",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.182,
     "month_cap": null
    },
    {
     "name": "D8ls_v5",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.364,
     "month_cap": null
    },
    {
     "name": "D16ls_v5",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.728,
     "month_cap": null
    },
    {
     "name": "F2s_v2",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.097,
     "month_cap": null
    },
    {
     "name": "F4s_v2",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.194,
     "month_cap": null
    },
    {
     "name": "F8s_v2",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.388,
     "month_cap": null
    },
    {
     "name": "F16s_v2",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.776,
     "month_cap": null
    },
    {
     "name": "F32s_v2",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 1.552,
     "month_cap": null
    },
    {
     "name": "D2als_v7",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.086,
     "month_cap": null
    },
    {
     "name": "D4als_v7",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.172,
     "month_cap": null
    },
    {
     "name": "D8als_v7",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.344,
     "month_cap": null
    },
    {
     "name": "D16als_v7",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.688,
     "month_cap": null
    },
    {
     "name": "D32als_v7",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 1.376,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API (armRegionName swedencentral, serviceName 'Virtual Machines', type Consumption, Linux productName without 'Windows', excl. Spot/Low Priority), fetched 2026-09-28. Billed per full minute while running (Azure: '6 min 45 s -> 6 min'); 'Stopped' from inside the OS still bills, only 'Stopped (deallocated)' stops compute. OS disk, IPv4 and egress extra. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "on-demand-arm64-eu",
   "label": "Pay-as-you-go Linux Dpsv5/Dpsv6/Dplsv6 Arm (Ampere Altra, Cobalt 100) (Sweden Central, cheapest EU checked)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": [
    "eu"
   ],
   "gpu_only": false,
   "features": {
    "arm64": true,
    "nested_virt": false
   },
   "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": "D2ps_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.082,
     "month_cap": null
    },
    {
     "name": "D4ps_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.164,
     "month_cap": null
    },
    {
     "name": "D8ps_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.328,
     "month_cap": null
    },
    {
     "name": "D2pls_v6",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.0662,
     "month_cap": null
    },
    {
     "name": "D4pls_v6",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.132,
     "month_cap": null
    },
    {
     "name": "D8pls_v6",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.265,
     "month_cap": null
    },
    {
     "name": "D16pls_v6",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.53,
     "month_cap": null
    },
    {
     "name": "D32pls_v6",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 1.059,
     "month_cap": null
    },
    {
     "name": "D2ps_v6",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.0748,
     "month_cap": null
    },
    {
     "name": "D4ps_v6",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.15,
     "month_cap": null
    },
    {
     "name": "D8ps_v6",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.299,
     "month_cap": null
    },
    {
     "name": "D16ps_v6",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.598,
     "month_cap": null
    },
    {
     "name": "D32ps_v6",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 1.197,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API swedencentral 2026-09-28. arm64 only, 1 vCPU = 1 core: Dpsv5 = Ampere Altra, Dpsv6/Dplsv6 = Azure Cobalt 100 (Microsoft Learn size pages, 2026-10-14). Nested virtualization: \"Not supported\" on all three families. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "burstable-basv2-30-eu",
   "label": "B-series v2 burstable Basv2 'l' sizes, 30% baseline (Sweden Central, cheapest EU checked)",
   "flags": [
    "burstable"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "eu"
   ],
   "gpu_only": false,
   "features": {
    "nested_virt": false
   },
   "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": "B2als_v2",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.0389,
     "month_cap": null
    },
    {
     "name": "B4als_v2",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.138,
     "month_cap": null
    },
    {
     "name": "B8als_v2",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.275,
     "month_cap": null
    },
    {
     "name": "B16als_v2",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.551,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API swedencentral 2026-09-28. AMD EPYC, 2 GiB/vCPU. Base CPU performance 30% of the VM (Microsoft Basv2 size table, 0-100% scale); credits bank below baseline, sustained load above it throttles to 30% once credits run out (no paid 'unlimited' mode like AWS). Intel Bsv2 equivalents (B4ls_v2 $0.153/h) are dearer. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "baseline_pct": 30,
   "product_class": "vm",
   "cpu_class": "shared"
  },
  {
   "key": "burstable-basv2-40-eu",
   "label": "B-series v2 burstable Basv2, 40% baseline (Sweden Central, cheapest EU checked)",
   "flags": [
    "burstable"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "eu"
   ],
   "gpu_only": false,
   "features": {
    "nested_virt": false
   },
   "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": "B2as_v2",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.0778,
     "month_cap": null
    },
    {
     "name": "B4as_v2",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.156,
     "month_cap": null
    },
    {
     "name": "B8as_v2",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.311,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API swedencentral 2026-09-28. AMD EPYC, 4 GiB/vCPU. Base CPU performance 40% of the VM (Microsoft Basv2 size table). boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "baseline_pct": 40,
   "product_class": "vm",
   "cpu_class": "shared"
  },
  {
   "key": "burstable-bv1-eu",
   "label": "B-series v1 burstable B2s/B2ms/B4ms/B8ms (Sweden Central, cheapest EU checked)",
   "flags": [
    "burstable"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "eu"
   ],
   "gpu_only": false,
   "features": {
    "nested_virt": false
   },
   "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": "B2s",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.0432,
     "month_cap": null
    },
    {
     "name": "B2ms",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.0864,
     "month_cap": null
    },
    {
     "name": "B4ms",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.173,
     "month_cap": null
    },
    {
     "name": "B8ms",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.346,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API swedencentral 2026-09-28. Baseline differs by size (Microsoft Bv1 table, 0-100% scale): B2s 20%, B2ms 30%, B4ms 22.5%, B8ms 17%; baseline_pct = B4ms (the 4-vCPU size). Older generation; no reservations returned by the API for these SKUs. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "baseline_pct": 22.5,
   "product_class": "vm",
   "cpu_class": "shared"
  },
  {
   "key": "spot-eu",
   "label": "Spot Linux Dsv5/Dasv5/Dlsv5/Fsv2 (Sweden Central, cheapest EU checked, snapshot)",
   "flags": [
    "spot"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "eu"
   ],
   "gpu_only": false,
   "features": {},
   "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": "D2s_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.01885,
     "month_cap": null
    },
    {
     "name": "D4s_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.037699,
     "month_cap": null
    },
    {
     "name": "D8s_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.075398,
     "month_cap": null
    },
    {
     "name": "D16s_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.150797,
     "month_cap": null
    },
    {
     "name": "D32s_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.301594,
     "month_cap": null
    },
    {
     "name": "D2as_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.017002,
     "month_cap": null
    },
    {
     "name": "D4as_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.034003,
     "month_cap": null
    },
    {
     "name": "D8as_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.068006,
     "month_cap": null
    },
    {
     "name": "D16as_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.136013,
     "month_cap": null
    },
    {
     "name": "D32as_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.272026,
     "month_cap": null
    },
    {
     "name": "D2ls_v5",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.016817,
     "month_cap": null
    },
    {
     "name": "D4ls_v5",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.033634,
     "month_cap": null
    },
    {
     "name": "D8ls_v5",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.067267,
     "month_cap": null
    },
    {
     "name": "D16ls_v5",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.134534,
     "month_cap": null
    },
    {
     "name": "F2s_v2",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.017926,
     "month_cap": null
    },
    {
     "name": "F4s_v2",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.035851,
     "month_cap": null
    },
    {
     "name": "F8s_v2",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.071702,
     "month_cap": null
    },
    {
     "name": "F16s_v2",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.143405,
     "month_cap": null
    },
    {
     "name": "F32s_v2",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.28681,
     "month_cap": null
    },
    {
     "name": "D2als_v7",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.015893,
     "month_cap": null
    },
    {
     "name": "D4als_v7",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.031786,
     "month_cap": null
    },
    {
     "name": "D8als_v7",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.063571,
     "month_cap": null
    },
    {
     "name": "D16als_v7",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.127142,
     "month_cap": null
    },
    {
     "name": "D32als_v7",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.254285,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API swedencentral 'Spot' meters, point-in-time 2026-09-28 (Azure Spot prices vary with capacity; eviction with 30 s notice; eviction policy deallocate or delete; max-price cap optional). boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "reserved-1y-eu",
   "label": "Reserved VM Instance 1-year Linux D-series (Sweden Central, cheapest EU checked)",
   "flags": [
    "commit"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "eu"
   ],
   "gpu_only": false,
   "features": {},
   "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": "D2s_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.0629,
     "month_cap": null
    },
    {
     "name": "D4s_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.12591,
     "month_cap": null
    },
    {
     "name": "D8s_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.25171,
     "month_cap": null
    },
    {
     "name": "D16s_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.50342,
     "month_cap": null
    },
    {
     "name": "D32s_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 1.00696,
     "month_cap": null
    },
    {
     "name": "D2as_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.05674,
     "month_cap": null
    },
    {
     "name": "D4as_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.11358,
     "month_cap": null
    },
    {
     "name": "D8as_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.22705,
     "month_cap": null
    },
    {
     "name": "D16as_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.45411,
     "month_cap": null
    },
    {
     "name": "D32as_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.90822,
     "month_cap": null
    },
    {
     "name": "D2ls_v5",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.05365,
     "month_cap": null
    },
    {
     "name": "D4ls_v5",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.10742,
     "month_cap": null
    },
    {
     "name": "D8ls_v5",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.21473,
     "month_cap": null
    },
    {
     "name": "D16ls_v5",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.42957,
     "month_cap": null
    },
    {
     "name": "D2als_v7",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.05068,
     "month_cap": null
    },
    {
     "name": "D4als_v7",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.10148,
     "month_cap": null
    },
    {
     "name": "D8als_v7",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.20297,
     "month_cap": null
    },
    {
     "name": "D16als_v7",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.40594,
     "month_cap": null
    },
    {
     "name": "D32als_v7",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.81187,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": true,
   "always_on_month_per_instance": null,
   "commit_note": "1-year Azure Reserved VM Instance; Retail Prices API 'Reservation 1 Year' total term price / 8760 h. Billed every hour of the term whether the VM runs or not (monthly or upfront payment, same total). Fsv2 returned no reservation rows.",
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API swedencentral 2026-09-28. Azure savings plan for compute (1y/3y $/h commitment) is an alternative, not modelled. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "commit_term": "1-year",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "reserved-3y-eu",
   "label": "Reserved VM Instance 3-year Linux D-series (Sweden Central, cheapest EU checked)",
   "flags": [
    "commit"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "eu"
   ],
   "gpu_only": false,
   "features": {},
   "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": "D2s_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.0403,
     "month_cap": null
    },
    {
     "name": "D4s_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.08059,
     "month_cap": null
    },
    {
     "name": "D8s_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.16115,
     "month_cap": null
    },
    {
     "name": "D16s_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.32234,
     "month_cap": null
    },
    {
     "name": "D32s_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.64463,
     "month_cap": null
    },
    {
     "name": "D2as_v5",
     "vcpu": 2,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.03634,
     "month_cap": null
    },
    {
     "name": "D4as_v5",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.07268,
     "month_cap": null
    },
    {
     "name": "D8as_v5",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.14536,
     "month_cap": null
    },
    {
     "name": "D16as_v5",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.29072,
     "month_cap": null
    },
    {
     "name": "D32as_v5",
     "vcpu": 32,
     "ram_gib": 128,
     "disk_gib": 0,
     "hour": 0.58143,
     "month_cap": null
    },
    {
     "name": "D2ls_v5",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.03459,
     "month_cap": null
    },
    {
     "name": "D4ls_v5",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.06918,
     "month_cap": null
    },
    {
     "name": "D8ls_v5",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.13832,
     "month_cap": null
    },
    {
     "name": "D16ls_v5",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.27664,
     "month_cap": null
    },
    {
     "name": "D2als_v7",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.03269,
     "month_cap": null
    },
    {
     "name": "D4als_v7",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.06537,
     "month_cap": null
    },
    {
     "name": "D8als_v7",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.13071,
     "month_cap": null
    },
    {
     "name": "D16als_v7",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.26145,
     "month_cap": null
    },
    {
     "name": "D32als_v7",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.52287,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": true,
   "always_on_month_per_instance": null,
   "commit_note": "3-year Azure Reserved VM Instance; Retail Prices API 'Reservation 3 Years' total term price / 26280 h. Billed every hour of the term whether the VM runs or not (monthly or upfront payment, same total). Fsv2 returned no reservation rows.",
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API swedencentral 2026-09-28. Azure savings plan for compute (1y/3y $/h commitment) is an alternative, not modelled. boot_overhead_s 45 = estimate (midpoint of the ~30-60 s typical Linux VM provisioning+boot; not measured by us). Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "commit_term": "3-year",
   "product_class": "vm",
   "cpu_class": "dedicated"
  },
  {
   "key": "reserved-1y-arm64",
   "label": "Reserved VM Instance 1-year Linux Dplsv6 Arm (Cobalt 100) (East US)",
   "flags": [
    "commit"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {
    "arm64": true,
    "nested_virt": false
   },
   "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": "D2pls_v6",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 0,
     "hour": 0.03653,
     "month_cap": null
    },
    {
     "name": "D4pls_v6",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 0,
     "hour": 0.07317,
     "month_cap": null
    },
    {
     "name": "D8pls_v6",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 0,
     "hour": 0.14635,
     "month_cap": null
    },
    {
     "name": "D16pls_v6",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 0,
     "hour": 0.29269,
     "month_cap": null
    },
    {
     "name": "D32pls_v6",
     "vcpu": 32,
     "ram_gib": 64,
     "disk_gib": 0,
     "hour": 0.58527,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": true,
   "always_on_month_per_instance": null,
   "commit_note": "1-year Azure Reserved VM Instance; Retail Prices API 'Reservation 1 Year' total term price / 8760 h (eastus, fetched 2026-09-29). Billed every hour of the term whether the VM runs or not.",
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": 45,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Retail Prices API eastus 2026-09-29 (Dplsv6 Series). arm64 only (Cobalt 100, 2 GiB/vCPU), nested virtualization not supported. Other Arm commitments not modelled: 3y D4pls_v6 $0.04711/h; Spot D4pls_v6 $0.044739/h (eastus point-in-time); swedencentral 1y $0.07808, 3y $0.0503. boot_overhead_s 45 = estimate. Product: plain IaaS VM (full kernel, root, SSH), not a sandbox API.",
   "commit_term": "1-year",
   "product_class": "vm",
   "cpu_class": "dedicated"
  }
 ],
 "storage": {
  "included_disk_gib": 0,
  "disk_gib_month": 0.075,
  "disk_billed_when_stopped": true,
  "snapshot_gib_month": 0.05,
  "paused_ram_billed": false
 },
 "network": {
  "egress_free_gib": 100,
  "egress_gib": 0.087,
  "ipv4_month": 3.65,
  "ipv4_available": true,
  "note": "Since the API version released after 2026-03-31, subnets in new virtual networks are private by default (defaultOutboundAccess=false): a VM needs an explicit outbound method (Standard public IPv4 $0.005/h = $3.65/month, or a NAT Gateway, or a load balancer) to reach the internet. The portal already defaults to private subnets.",
  "internet": {
   "default": "full"
  }
 },
 "plans": [
  {
   "name": "Pay-as-you-go subscription (no plan fee)",
   "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 platform fee. Per-region, per-family vCPU quotas (new subscriptions often start low, e.g. tens of vCPUs; raised by quota request). Exact defaults not verified."
  }
 ],
 "free": {
  "monthly_credit": 0,
  "one_time_credit": 200
 },
 "features": {
  "linux": true,
  "windows": true,
  "macos": false,
  "arm64": true,
  "gpu": true,
  "gpu_types": [],
  "snapshot": "fs",
  "pause_resume": true,
  "fork": true,
  "persistent_disk": true,
  "volumes": true,
  "auto_stop_idle": false,
  "max_session_h": null,
  "custom_image": true,
  "docker_inside": true,
  "nested_virt": true,
  "root": true,
  "systemd": true,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": false,
  "agent_harnesses": false,
  "ssh": true,
  "public_ipv4": true,
  "inbound_https": false,
  "custom_domain": true,
  "raw_tcp_inbound": true,
  "egress_allowlist": true,
  "static_egress_ip": true,
  "private_network": true,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "regions": [
   "us",
   "other",
   "eu",
   "asia"
  ],
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "lang_python": false,
  "lang_node": false,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": null,
  "egress_http_rules": true,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": false,
  "mcp_server": true,
  "snapshot_auto": false,
  "persist_scope": "whole",
  "snapshot_on_demand": true,
  "harness_api": false,
  "egress_allowlist_level": "both",
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": false,
  "volume_attach": true,
  "volume_shared": true,
  "isolation": "hyper-v",
  "image_oci": false,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "own_agent_api": false,
  "max_session_unlimited": true,
  "open_internet": true,
  "usage_api": true
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "knobs": [],
 "caveats": [
  "All VM rates: Azure Retail Prices API (prices.azure.com, USD list, Linux rows = productName without \"Windows\"), eastus and swedencentral, fetched 2026-09-28; also checked westeurope (D4s_v5 $0.23) and northeurope ($0.214): Sweden Central is the cheapest EU region checked. Raw: research/raw/azure-vm-linux-retail-2026-09-28*.json.",
  "Billing is per full minute while the VM is running (Azure pricing FAQ example: 6 min 45 s billed as 6 min); card uses min 60 s / granularity 60 s. A VM shut down from inside the OS stays \"Stopped\" and keeps billing compute; only Stop (deallocate) via portal/API/CLI stops compute. Disks and static IPs bill while deallocated.",
  "boot_overhead_s = 45 is an estimate (typical 30-60 s Linux VM provisioning + boot), not a measurement. Plain IaaS VM, no sandbox API.",
  "Spot: point-in-time Spot meter prices (vary by region/capacity, up to ~80-90% below PAYG for D/F-series here), evicted with 30 s notice; B-series Spot prices shown by the API are only ~10% below PAYG and not modelled.",
  "Reserved Instances: 1y/3y totals from the API divided by term hours; billed whether used or not (requires_always_on). Savings plan for compute not modelled. No Fsv2 or B v1 reservation rows were returned.",
  "Disk: Standard SSD E10 (128 GiB) $9.60/month -> ~$0.075/GiB-month (Retail Prices API Storage, eastus, same value as the azure-windows card); billed per provisioned tier, also while deallocated. Premium SSD P10 $19.71/month. Snapshots $0.05/GB-month (Standard HDD storage), $0.132 on SSD.",
  "Egress (Retail Prices API, Bandwidth \"Rtn Preference: MGN\", eastus and swedencentral identical): first 100 GB/month free, then $0.087/GB to 10 TB, $0.083 to 50 TB, $0.07 to 150 TB, $0.05 beyond. Engine uses the first paid tier. Internet routing preference is slightly cheaper ($0.08/GB first tier per azure-windows research).",
  "Public IPv4: Standard static public IP $0.005/h = $3.65/month (azure-windows research); outbound-only VMs can use NAT Gateway (extra) instead.",
  "Free account: $200 credit for 30 days (one_time_credit) plus 750 h/month for 12 months of B1s, B2pts v2 (Arm) and B2ats v2 (AMD) Linux; these are 1-2 GiB machines, far below 4 vCPU/8 GiB, so not modelled as a mode.",
  "B-series baselines are % of the whole VM on Microsoft's 2024 normalised 0-100% scale: Basv2 \"l\" sizes 30%, Basv2 standard 40%, Bv1 B2s 20% / B2ms 30% / B4ms 22.5% / B8ms 17%. Azure B-series has no pay-for-surplus unlimited mode: above baseline it throttles when credits run out.",
  "Nested virtualization per Microsoft Learn size pages: Supported on Dsv5, Dasv5, Dlsv5, Fsv2; Not supported on Dpsv5, Dpsv6 and Dplsv6 (Arm), Basv2, Bv1 (arm64 and burstable modes set false; mode features override the provider-level nested_virt true, which holds only for the x86 D/F modes).",
  "No automatic snapshots (checked 2026-10-14): Hibernation keeps memory but is a manual operation (\"You can only hibernate a VM using the Azure portal, CLI, PowerShell, SDKs and API.\", https://learn.microsoft.com/en-us/azure/virtual-machines/hibernate-resume), and it is not available on Spot VMs or with Azure Backup. Scheduled disk snapshots need Azure Backup, a separate paid service, so snapshot_auto = false (same as the azure-windows and gcp-compute cards).",
  "Hibernation (Linux and Windows): a hibernated VM is not billed for compute; OS/data disks and IPs keep billing. Guest-OS-initiated hibernate does not count and keeps billing. 'Stopped Allocated' (OS shutdown) still bills compute."
 ],
 "sources": [
  "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
  "https://prices.azure.com/api/retail/prices?$filter=armRegionName eq 'eastus' and serviceName eq 'Virtual Machines'",
  "https://prices.azure.com/api/retail/prices?$filter=armRegionName eq 'swedencentral' and serviceName eq 'Virtual Machines'",
  "https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Bandwidth' and armRegionName eq 'eastus'",
  "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/basv2-series",
  "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/bsv2-series",
  "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/bv1-series",
  "https://learn.microsoft.com/en-us/azure/virtual-machines/spot-vms",
  "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/dpsv5-series",
  "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/dsv5-series"
 ],
 "fleet": {
  "default_max_instances": null,
  "default_max_vcpu": 20,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": "Paid subscriptions can request increases in the portal (Quotas); starting quota is subscription/region/family specific.",
  "tiers": "Separate total regional, VM-family, and Spot vCPU quotas.",
  "notes": "Deallocated VMs still count against quota; capacity is separate from quota.",
  "sources": [
   "https://learn.microsoft.com/en-us/azure/virtual-machines/quotas"
  ],
  "researched": "2026-09-29"
 },
 "audit_2026_09_29": {
  "applied": 3,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 12
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": false,
   "corrected_from": true,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/hibernate-resume",
   "quote": "You can only hibernate a VM using the Azure portal, CLI, PowerShell, SDKs and API. Hibernating the VM using guest OS operations don't result in the VM moving to a hibernated state and the VM continues to be billed.",
   "note": "Hibernation (memory saved to the OS disk, restored on Start) is a manual operation you call, not an automatic snapshot: \"Hibernation is triggered on a VM using the Azure portal, CLI, PowerShell, SDKs, or APIs.\" It is supported only on some sizes (Dsv5/Dasv5 and other v5 general-purpose families up to 64 GB RAM) and lists Spot VMs and Azure Backup under Azure feature limitations. That is pause_resume, not snapshot_auto. No auto-hibernate on idle; VM auto-shutdown schedules only deallocate. Scheduled Azure Backup snapshots are a separate paid backup service and do not count (same rule as the azure-windows and gcp-compute cards). Plain Stop (deallocate) keeps the whole disk (persist_scope whole).",
   "checked": "2026-10-14"
  },
  "persist_scope": {
   "value": "whole",
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/managed-disks-overview",
   "quote": "Every virtual machine has one attached OS disk. This disk has a preinstalled operating system, which you selected when creating the VM. This disk contains the boot volume.",
   "note": "The managed OS disk and any data disks survive Stop (deallocate) and hibernation (\"The OS disk, data disks, and NICs remain attached to your VM.\", hibernate-resume), so the whole machine, installed packages included, persists. Only the temporary disk is lost: \"Data on the temporary disk might be lost during a maintenance event, when you redeploy a VM, or when you stop the VM.\" Set explicitly so whole_disk does not depend on snapshot_auto.",
   "checked": "2026-10-14"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/snapshot-copy-managed-disk",
   "quote": "An Azure managed disk snapshot is a full, read-only copy of a managed disk. Use a snapshot as a point-in-time backup or to help troubleshoot virtual machine (VM) issues. You can take a snapshot of either an operating system (OS) disk or a data disk. These snapshots exist independently of the source disk, and you can use them to create new managed disks.",
   "note": "Disk only, no memory. Managed-disk snapshots (full or incremental) of running or stopped VMs; new disks/VMs can be created from them (docs advise cleanly shutting down first). VM restore points add multi-disk crash- or application-consistent points ('Restore points are incremental'). Images / Azure Compute Gallery for templating. No live memory fork.",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/linux/run-command",
   "quote": "The Run Command feature uses the virtual machine (VM) agent to run shell scripts within an Azure Linux VM.",
   "note": "Plain IaaS VM. Only generic exec (Run Command, Custom Script extension, SSH), which does not count. No first-party API to drive Claude Code/Codex/etc. inside a VM.",
   "checked": "2026-09-29"
  },
  "egress_allowlist": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview",
   "quote": "A network security group contains security rules that allow or deny inbound network traffic to, or outbound network traffic from, several types of Azure resources.",
   "note": "IP level: NSG outbound rules (5-tuple, CIDR, service tags; default AllowInternetOutBound can be overridden with deny rules), free. Domain level: Azure Firewall (separate paid service, route VM subnet via UDR) - features page: 'Application FQDN filtering rules: You can limit outbound HTTP/S traffic or Azure SQL traffic to a specified list of fully qualified domain names (FQDN) including wild cards.'; network-rule FQDN filtering for any TCP/UDP needs DNS proxy. Enforced outside the VM.",
   "checked": "2026-09-29",
   "level": "both"
  },
  "egress_http_rules": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/firewall/premium-features",
   "quote": "URL filtering: Extends FQDN filtering to consider the entire URL, including any additional path.",
   "note": "Azure Firewall Premium only (extra cost), requires TLS inspection with a customer CA trusted inside the VM for HTTPS paths. Path-level URL filtering + web categories + IDPS; application rules can also insert HTTP/S headers (httpHeadersToInsert). No documented HTTP-method rules.",
   "checked": "2026-09-29"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview",
   "quote": "A network security group contains security rules that allow or deny inbound network traffic to, or outbound network traffic from, several types of Azure resources.",
   "note": "NSG inbound rules by source IP/CIDR/service tag/port (default DenyAllInbound except VNet/LB), optional no public IP (private-only via Bastion/VPN/Private Link), Azure Firewall DNAT, Application Gateway/WAF, JIT VM access (Defender).",
   "checked": "2026-09-29"
  },
  "guest_firewall": {
   "value": true,
   "source": null,
   "quote": null,
   "note": "Full Hyper-V VM with root and its own kernel; iptables/nftables/ufw work (Azure Linux images ship them). Not documented as a feature per se.",
   "checked": "2026-09-29",
   "derived": true
  },
  "secret_proxy": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/extensions/key-vault-linux",
   "quote": "The Key Vault VM extension downloads all certificates to the location you specify in the certificateStoreLocation property in the VM extension settings",
   "note": "Secrets reach the VM: Key Vault (fetched via managed-identity token from IMDS inside the VM) or the Key Vault VM extension that downloads certs to disk. No credential-injection proxy product. Edge case: Azure Firewall Premium application rules can insert static HTTP/S headers (httpHeadersToInsert, documented for tenant-restriction headers) into TLS-inspected outbound traffic; that could be abused to inject an auth header per FQDN, but it is not a documented credential feature (values stored in plain policy, not Key Vault references).",
   "checked": "2026-09-29"
  },
  "volume_attach": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/linux/attach-disk-portal",
   "quote": "This article shows you how to attach both new and existing disks to a Linux virtual machine through the Azure portal.",
   "note": "Managed data disks (Standard HDD/SSD, Premium SSD/v2, Ultra), hot-attach/detach; billed per provisioned size also while deallocated.",
   "checked": "2026-09-29"
  },
  "volume_shared": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/disks-shared",
   "quote": "Azure shared disks is a feature for Azure managed disks that allows you to attach a managed disk to multiple virtual machines (VMs) simultaneously.",
   "note": "Read-write. Shared disks are block-level (maxShares; Ultra/Premium SSD v2/Premium/Standard SSD) and need a cluster manager for write locking, no managed filesystem. For a real shared FS: Azure Files (SMB/NFS) - 'You can mount Azure file shares concurrently from cloud and on-premises clients on Windows, Linux, and macOS'; also Azure NetApp Files and Blob NFS/BlobFuse.",
   "checked": "2026-09-29"
  },
  "isolation": {
   "value": "hyper-v",
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/overview",
   "quote": "Azure Virtual Machines (VM) is one of several types of on-demand, scalable computing resources that Azure offers.",
   "note": "Azure VMs run on Microsoft's Hyper-V hypervisor (root/Type-1 hypervisor); each customer VM is a full VM, not a shared-kernel container.",
   "checked": "2026-09-30"
  },
  "image_oci": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-custom-images",
   "quote": "Custom images are like marketplace images, but you create them yourself. Custom images can be used to bootstrap configurations such as preloading applications, application configurations, and other OS configurations.",
   "note": "Azure VM custom images are VHD/managed-disk based (Azure Compute Gallery), not Docker/OCI images; OCI container images are handled by separate products (ACI/AKS), not by Virtual Machines.",
   "checked": "2026-09-30"
  },
  "anti_bot": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "Virtual Machines - Provision Windows and Linux VMs in seconds",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "Virtual Machines - Provision Windows and Linux VMs in seconds",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/overview",
   "quote": "Azure Virtual Machines (VM) is one of several types of on-demand, scalable computing resources that Azure offers.",
   "note": "Azure VM public/outbound IPs are standard Azure datacenter IP ranges, not residential or mobile IPs.",
   "checked": "2026-09-30"
  },
  "wake_on_request": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/resize-vm",
   "quote": "This process works whether the VM is currently running or has already been deallocated.",
   "note": "not offered: a deallocated/stopped Azure VM must be explicitly started (API/portal/CLI); it does not automatically wake on an incoming network request.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/resize-vm",
   "quote": "If the virtual machine is currently running, changing its size will cause it to restart.",
   "note": "Resizing a running VM requires a restart; it is not a live change of CPU/RAM without recreating/rebooting.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "Virtual Machines - Provision Windows and Linux VMs in seconds",
   "note": "not offered: outside the product's scope (plain IaaS VM; no first-party browser/computer-use/research task agent)",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": true,
   "source": "https://raw.githubusercontent.com/microsoft/mcp/main/servers/Azure.Mcp.Server/README.md",
   "quote": "Azure Compute - Virtual Machine, Virtual Machine Scale Set, and Disk management ... \"Create a new VM named 'my-vm' in resource group 'my-rg' for web workloads\" ... \"Start VM 'my-vm' in resource group 'my-rg'\"",
   "note": "Microsoft's official Azure MCP Server (microsoft/mcp) includes Azure Compute tools to list/create/start/delete Virtual Machines.",
   "checked": "2026-09-30"
  },
  "lang_python": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/linux/imaging",
   "quote": "Before you bring a custom image to Azure, you need to be aware of the types and options available to you.",
   "note": "not offered as a guaranteed out-of-the-box feature: a plain IaaS VM boots whatever OS/marketplace image you choose; Python is not a managed runtime shipped by the VM product itself.",
   "checked": "2026-09-30"
  },
  "lang_node": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/linux/imaging",
   "quote": "Before you bring a custom image to Azure, you need to be aware of the types and options available to you.",
   "note": "not offered as a guaranteed out-of-the-box feature: a plain IaaS VM boots whatever OS/marketplace image you choose; Node.js is not a managed runtime shipped by the VM product itself.",
   "checked": "2026-09-30"
  },
  "max_session_h": {
   "value": "none",
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "Virtual Machines - Provision Windows and Linux VMs in seconds",
   "note": "An on-demand Azure VM runs indefinitely until the customer stops/deallocates it; there is no provider-imposed maximum session length (Spot VMs can be evicted, but that is a separate purchasing option, not the on-demand VM modeled here).",
   "checked": "2026-09-30"
  },
  "fork": {
   "value": true,
   "corrected_from": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource",
   "quote": "Stop/deallocate the VM. ... Mark the VM as generalized. ... Create the image.",
   "note": "You can capture a stopped VM as a managed image (generalized or, via a disk snapshot, specialized) and deploy any number of new VMs from it -- this is 'clone a machine into new ones' (fork), just not while running. Corrected to true; fork_running/memory_snapshot_fork stay false since it always requires stopping first and never carries live memory state.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource",
   "quote": "Stop/deallocate the VM.",
   "note": "Image/snapshot capture (the only cloning path) requires the VM to be stopped first; no clone-while-running capability exists.",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource",
   "quote": "Stop/deallocate the VM. ... Mark the VM as generalized.",
   "note": "Image capture happens after deallocation; disk state is preserved but no running-process/memory state is captured or restorable -- clones always cold-boot.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "linux virtual machine, virtual machine linux",
   "note": "Azure Virtual Machines is a plain IaaS VM (root SSH access to a kernel you manage); no managed VNC/RDP/stream desktop is provided by the VM service itself (a customer could install one, and Azure Virtual Desktop is a wholly separate product/SKU).",
   "checked": "2026-09-30"
  },
  "browser": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "linux virtual machine, virtual machine linux",
   "note": "No first-party managed browser ships with or is offered as part of the VM product; it is bare IaaS compute.",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "linux virtual machine, virtual machine linux",
   "note": "No API to drive a desktop via screenshots/clicks exists for the VM product; outside what a plain IaaS VM is.",
   "checked": "2026-09-30"
  },
  "auto_stop_idle": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/auto-shutdown-vm",
   "quote": "The auto-shutdown feature for Azure VMs can help reduce costs by shutting down the VMs during off hours when they aren't needed and automatically restarting them when they're needed again.",
   "note": "Azure's 'auto-shutdown' is a fixed daily schedule/time-zone setting configured by the customer (a timer), not automatic idle-usage detection; confirms false as stated.",
   "checked": "2026-09-30"
  },
  "inbound_https": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/windows/nsg-quickstart-portal",
   "quote": "filter network traffic to a subnet with a network security group (NSG)",
   "note": "A VM can get a public IP and an NSG rule opening port 443, but the VM service provides no managed HTTPS URL/certificate/termination -- a customer must run and TLS-terminate their own server (or add a separate Load Balancer/App Gateway/Front Door product). Same pattern as aws-ec2 card (inbound_https: false despite public_ipv4/raw_tcp true).",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "linux virtual machine, virtual machine linux",
   "note": "No coding-agent (Claude Code/Codex/OpenCode) templates or preinstalls are part of the VM product; it is generic IaaS compute.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": true,
   "corrected_from": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/overview",
   "quote": "GPU optimized VM sizes are specialized virtual machines available with single, multiple, or fractional GPUs. These sizes are designed for compute-intensive, graphics-intensive, and visualization workloads.",
   "note": "Azure Virtual Machines includes GPU-optimized families (NC, ND, NG, NV series, e.g. NC_A100_v4, NCads_H100_v5). This card is scoped to the Linux CPU pricing page but the provider clearly offers gpu:true, matching the aws-ec2 precedent.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": true,
   "corrected_from": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/windows/",
   "quote": "Windows Server",
   "note": "Azure offers first-party Windows Server virtual machines (a whole separate pricing page/SKU family) alongside Linux; provider-level windows:true, matching how aws-ec2 also carries windows:true even though scoped to Linux pricing.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/overview",
   "quote": "GPU optimized VM sizes ... Windows or Linux",
   "note": "Azure's VM catalog only lists Windows and Linux guest OS images/sizes; there is no macOS VM offering (Apple's licensing restricts macOS virtualization to Apple hardware, which Azure does not offer, unlike AWS EC2 Mac).",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "linux virtual machine, virtual machine linux",
   "note": "Azure Virtual Machines is a hyperscaler-run public cloud service; there is no way to run the Azure VM control plane on your own infrastructure.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "linux virtual machine, virtual machine linux",
   "note": "Not a managed-service-into-your-own-cloud-account product; it is Microsoft's own datacenter capacity you rent directly.",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/",
   "quote": "linux virtual machine, virtual machine linux",
   "note": "Azure Virtual Machines' control plane/hypervisor stack is closed-source proprietary Microsoft infrastructure; no OSI-licensed core product.",
   "checked": "2026-09-30"
  },
  "cpu_class": {
   "value": {
    "on-demand": "dedicated",
    "on-demand-arm64": "dedicated",
    "burstable-basv2-30": "burstable:30",
    "burstable-basv2-40": "burstable:40",
    "burstable-bv1": "burstable:22.5",
    "spot": "dedicated",
    "reserved-1y": "dedicated",
    "reserved-3y": "dedicated",
    "on-demand-eu": "dedicated",
    "on-demand-arm64-eu": "dedicated",
    "burstable-basv2-30-eu": "burstable:30",
    "burstable-basv2-40-eu": "burstable:40",
    "burstable-bv1-eu": "burstable:22.5",
    "spot-eu": "dedicated",
    "reserved-1y-eu": "dedicated",
    "reserved-3y-eu": "dedicated",
    "reserved-1y-arm64": "dedicated"
   },
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes-b-series-burstable",
   "quote": "The B-series provides you with the ability to purchase a VM size with baseline performance that can build up credits when its using less than its baseline. When the VM has accumulated credits, the VM can burst above the baseline using up to 100% of the vCPU when your application requires higher CPU performance. ... The updated (2024) numbers were normalized using a 0 - 100% scale.",
   "note": "Only the B-series (Bv1, Basv2) modes are burstable, with published baseline % per Microsoft's Basv2/Bv1 size tables (Basv2 'l' sizes 30%, Basv2 std sizes 40%, Bv1 B4ms 22.5%; matches card's baseline_pct fields). All other modes (Dsv5/Dasv5/Dlsv5/Fsv2 general-purpose, Dpsv5/Dpls_v6 Arm, Spot, and Reserved Instances of the same D/F-series SKUs) are non-burstable general-purpose/compute-optimized series with dedicated vCPU allocation — Azure documents no CPU credit/throttling model for these series, only for the B-series.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/rest/api/cost-management/query/post",
   "quote": "The Cost Management Query API returns actual usage and cost data for Azure resources. The API supports filtering by resource ID, allowing queries for individual virtual machines or by scope (subscription, resource group). Granular billing data is available per compute instance.",
   "note": "granularity: per-sandbox; cost: yes; Azure Cost Management API (https://learn.microsoft.com/en-us/rest/api/cost-management/) provides REST endpoints to query billable costs and usage. Supports per-resource filtering by ResourceId dimension, per-tag filtering, and per-resource-group grouping. Returns monetary costs for compute (VMs), storage, networking. Also supports billing exports to storage for batch processing. Cost data includes actual billed amounts, not just monitoring metrics.",
   "confidence": "high",
   "checked": "2026-10-01"
  }
 },
 "locations": [
  {
   "country": "US",
   "state": "VA",
   "city": "Ashburn",
   "provider_region": "East US",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "NC",
   "city": "Raleigh",
   "provider_region": "East US 2",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "TX",
   "city": "San Antonio",
   "provider_region": "South Central US",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "TX",
   "city": "Dallas",
   "provider_region": "North Central US",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "IL",
   "city": "Chicago",
   "provider_region": "Central US",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "IA",
   "city": "Des Moines",
   "provider_region": "West Central US",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "CA",
   "city": "San Jose",
   "provider_region": "West US",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "WA",
   "city": "Seattle",
   "provider_region": "West US 2",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "AZ",
   "city": "Phoenix",
   "provider_region": "West US 3",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "GA",
   "city": "Atlanta",
   "provider_region": "East US 3",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CA",
   "state": "ON",
   "city": "Toronto",
   "provider_region": "Canada Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CA",
   "state": "QC",
   "city": "Quebec City",
   "provider_region": "Canada East",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "MX",
   "state": null,
   "city": "Mexico City",
   "provider_region": "Mexico Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "BR",
   "state": null,
   "city": "São Paulo",
   "provider_region": "Brazil South",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "BR",
   "state": null,
   "city": "Brasília",
   "provider_region": "Brazil Southeast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CL",
   "state": null,
   "city": "Santiago",
   "provider_region": "Chile North Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "GB",
   "state": "LDN",
   "city": "London",
   "provider_region": "UK South",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "GB",
   "state": null,
   "city": "Newport",
   "provider_region": "UK West",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IE",
   "state": null,
   "city": "Dublin",
   "provider_region": "North Europe",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NL",
   "state": null,
   "city": "Amsterdam",
   "provider_region": "West Europe",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "FR",
   "state": null,
   "city": "Paris",
   "provider_region": "France Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "FR",
   "state": null,
   "city": "Marseille",
   "provider_region": "France South",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "DE",
   "state": null,
   "city": "Frankfurt",
   "provider_region": "Germany West Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "DE",
   "state": null,
   "city": "Berlin",
   "provider_region": "Germany North",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CH",
   "state": null,
   "city": "Zurich",
   "provider_region": "Switzerland North",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CH",
   "state": null,
   "city": "Geneva",
   "provider_region": "Switzerland West",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AT",
   "state": null,
   "city": "Vienna",
   "provider_region": "Austria East",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "SE",
   "state": null,
   "city": "Stockholm",
   "provider_region": "Sweden Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "SE",
   "state": null,
   "city": "Gävle",
   "provider_region": "Sweden South",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NO",
   "state": null,
   "city": "Oslo",
   "provider_region": "Norway East",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NO",
   "state": null,
   "city": "Bergen",
   "provider_region": "Norway West",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "DK",
   "state": null,
   "city": "Copenhagen",
   "provider_region": "Denmark East",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "FI",
   "state": null,
   "city": "Espoo",
   "provider_region": "Finland Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "PL",
   "state": null,
   "city": "Warsaw",
   "provider_region": "Poland Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "BE",
   "state": null,
   "city": "Brussels",
   "provider_region": "Belgium Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IT",
   "state": null,
   "city": "Milan",
   "provider_region": "Italy North",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "ES",
   "state": null,
   "city": "Madrid",
   "provider_region": "Spain Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "GR",
   "state": null,
   "city": "Athens",
   "provider_region": "Greece",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "JP",
   "state": null,
   "city": "Tokyo",
   "provider_region": "Japan East",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "JP",
   "state": null,
   "city": "Osaka",
   "provider_region": "Japan West",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "KR",
   "state": null,
   "city": "Seoul",
   "provider_region": "Korea Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "KR",
   "state": null,
   "city": "Busan",
   "provider_region": "Korea South",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "SG",
   "state": null,
   "city": "Singapore",
   "provider_region": "Southeast Asia",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "HK",
   "state": null,
   "city": "Hong Kong",
   "provider_region": "East Asia",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Pune",
   "provider_region": "Central India",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Bangalore",
   "provider_region": "South India",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Mumbai",
   "provider_region": "West India",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": null,
   "city": "Sydney",
   "provider_region": "Australia East",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": null,
   "city": "Melbourne",
   "provider_region": "Australia Southeast",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": null,
   "city": "Canberra",
   "provider_region": "Australia Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": null,
   "city": "Canberra",
   "provider_region": "Australia Central 2",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NZ",
   "state": null,
   "city": "Auckland",
   "provider_region": "New Zealand North",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "TW",
   "state": null,
   "city": "Taipei",
   "provider_region": "Taiwan",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "ID",
   "state": null,
   "city": "Jakarta",
   "provider_region": "Indonesia Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "MY",
   "state": null,
   "city": "Kuala Lumpur",
   "provider_region": "Malaysia West",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CN",
   "state": null,
   "city": "Shanghai",
   "provider_region": "China East",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CN",
   "state": null,
   "city": "Shanghai",
   "provider_region": "China East 2",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CN",
   "state": null,
   "city": "Beijing",
   "provider_region": "China North",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CN",
   "state": null,
   "city": "Beijing",
   "provider_region": "China North 2",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CN",
   "state": null,
   "city": "Beijing",
   "provider_region": "China North 3",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "ZA",
   "state": null,
   "city": "Johannesburg",
   "provider_region": "South Africa North",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "ZA",
   "state": null,
   "city": "Cape Town",
   "provider_region": "South Africa West",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AE",
   "state": null,
   "city": "Abu Dhabi",
   "provider_region": "UAE North",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AE",
   "state": null,
   "city": "Dubai",
   "provider_region": "UAE Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "QA",
   "state": null,
   "city": "Doha",
   "provider_region": "Qatar Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IL",
   "state": null,
   "city": "Tel Aviv",
   "provider_region": "Israel Central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "SA",
   "state": null,
   "city": "Riyadh",
   "provider_region": "Saudi Arabia East",
   "self_serve": true,
   "choosable": true
  }
 ],
 "locations_source": "https://azure.microsoft.com/en-us/global-infrastructure/regions/",
 "locations_quote": "Azure is available or coming soon to the following regions: South Central US, West US, West US 2, West US 3, Central US, East US, East US 2, East US 3, West Central US, North Central US, Brazil South, Brazil Southeast, Canada Central, Canada East, Chile North Central, Mexico Central, East Asia, Sout",
 "locations_checked": "2026-10-01"
}