{
 "features_resolved": {
  "snapshot_any": false,
  "snapshot_mem": false,
  "fork": false,
  "pause_resume": false,
  "persistent_disk": true,
  "whole_disk": null,
  "persist_scope": null,
  "volumes": true,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": false,
  "image_oci": true,
  "vm_isolation": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": true,
  "systemd": null,
  "browser": true,
  "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": false,
  "public_ipv4": false,
  "inbound_https": false,
  "custom_domain": false,
  "raw_tcp_inbound": false,
  "egress_allowlist": true,
  "open_internet": true,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": true,
  "byoc": false,
  "open_source": false,
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "gpu": false,
  "arm64": true,
  "windows": true,
  "macos": true,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": null,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "usage_api": false,
  "snapshot_auto": false,
  "snapshot_on_demand": false,
  "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": false,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "azure-pipelines",
  "checked": "2026-09-30",
  "company": "Microsoft Corporation",
  "ownership": {
   "value": "subsidiary",
   "parent": "Microsoft Corporation",
   "source": "https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/",
   "quote": "Azure Pipelines is part of Azure DevOps Services, a Microsoft product."
  },
  "stage": {
   "value": "subsidiary",
   "source": "https://stockanalysis.com/stocks/msft/financials/",
   "quote": "Microsoft Corporation, NASDAQ: MSFT",
   "confidence": "high",
   "note": "Azure Pipelines is a feature of Azure DevOps, a product line of Microsoft (public company, NASDAQ: MSFT); not independently funded."
  },
  "accelerators": [],
  "total_funding_usd": {
   "value": null,
   "status": "unknown"
  },
  "last_round": {
   "type": null,
   "amount_usd": null,
   "date": null,
   "leads": [],
   "status": "unknown",
   "source": "",
   "quote": ""
  },
  "investors": [],
  "portfolio_listings": [],
  "revenue": {
   "value_usd": 281724000000,
   "kind": "annual revenue",
   "as_of": "FY2025 (ended 2025-06-30)",
   "status": "confirmed",
   "basis": "Microsoft Corporation total company revenue (all segments), not broken out for Azure Pipelines/Azure DevOps specifically. Figure per S&P Global Market Intelligence data as reported from Microsoft's FY2025 10-K.",
   "source": "https://stockanalysis.com/stocks/msft/financials/",
   "quote": "revenue:[331839000000,281724000000,245122000000,...], fiscalYear:[\"2026\",\"2025\",\"2024\",...], datekey:[\"2026-06-30\",\"2025-06-30\",\"2024-06-30\",...]"
  },
  "employees": {
   "value": null,
   "source": ""
  },
  "note": "Azure Pipelines is a CI/CD feature within Azure DevOps Services, a Microsoft product; it is not a separate company and has no independent funding, investors, or revenue disclosure. Revenue figure shown is Microsoft's total consolidated company revenue for FY2025, not specific to Azure Pipelines or even Azure DevOps."
 },
 "id": "azure-pipelines",
 "name": "Azure Pipelines",
 "url": "https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/",
 "category": "paas",
 "isolation": "vm",
 "modes": [
  {
   "key": "hosted-parallel-jobs",
   "label": "Microsoft-hosted parallel jobs ($40 each/month, unlimited minutes)",
   "flags": [
    "alt"
   ],
   "os": [
    "linux",
    "windows"
   ],
   "pricing": "pool",
   "vm_max_vcpu": 2,
   "vm_max_ram_gib": 7,
   "pool_tiers": [
    {
     "name": "1 parallel job",
     "month": 40,
     "vcpu": 2,
     "ram_gib": 7,
     "max_vms": 1
    },
    {
     "name": "2 parallel jobs",
     "month": 80,
     "vcpu": 4,
     "ram_gib": 14,
     "max_vms": 2
    },
    {
     "name": "3 parallel jobs",
     "month": 120,
     "vcpu": 6,
     "ram_gib": 21,
     "max_vms": 3
    },
    {
     "name": "4 parallel jobs",
     "month": 160,
     "vcpu": 8,
     "ram_gib": 28,
     "max_vms": 4
    },
    {
     "name": "5 parallel jobs",
     "month": 200,
     "vcpu": 10,
     "ram_gib": 35,
     "max_vms": 5
    },
    {
     "name": "6 parallel jobs",
     "month": 240,
     "vcpu": 12,
     "ram_gib": 42,
     "max_vms": 6
    },
    {
     "name": "7 parallel jobs",
     "month": 280,
     "vcpu": 14,
     "ram_gib": 49,
     "max_vms": 7
    },
    {
     "name": "8 parallel jobs",
     "month": 320,
     "vcpu": 16,
     "ram_gib": 56,
     "max_vms": 8
    },
    {
     "name": "9 parallel jobs",
     "month": 360,
     "vcpu": 18,
     "ram_gib": 63,
     "max_vms": 9
    },
    {
     "name": "10 parallel jobs",
     "month": 400,
     "vcpu": 20,
     "ram_gib": 70,
     "max_vms": 10
    },
    {
     "name": "12 parallel jobs",
     "month": 480,
     "vcpu": 24,
     "ram_gib": 84,
     "max_vms": 12
    },
    {
     "name": "15 parallel jobs",
     "month": 600,
     "vcpu": 30,
     "ram_gib": 105,
     "max_vms": 15
    },
    {
     "name": "20 parallel jobs",
     "month": 800,
     "vcpu": 40,
     "ram_gib": 140,
     "max_vms": 20
    },
    {
     "name": "25 parallel jobs",
     "month": 1000,
     "vcpu": 50,
     "ram_gib": 175,
     "max_vms": 25
    },
    {
     "name": "30 parallel jobs",
     "month": 1200,
     "vcpu": 60,
     "ram_gib": 210,
     "max_vms": 30
    },
    {
     "name": "40 parallel jobs",
     "month": 1600,
     "vcpu": 80,
     "ram_gib": 280,
     "max_vms": 40
    },
    {
     "name": "50 parallel jobs",
     "month": 2000,
     "vcpu": 100,
     "ram_gib": 350,
     "max_vms": 50
    },
    {
     "name": "75 parallel jobs",
     "month": 3000,
     "vcpu": 150,
     "ram_gib": 525,
     "max_vms": 75
    },
    {
     "name": "100 parallel jobs",
     "month": 4000,
     "vcpu": 200,
     "ram_gib": 700,
     "max_vms": 100
    },
    {
     "name": "150 parallel jobs",
     "month": 6000,
     "vcpu": 300,
     "ram_gib": 1050,
     "max_vms": 150
    },
    {
     "name": "200 parallel jobs",
     "month": 8000,
     "vcpu": 400,
     "ram_gib": 1400,
     "max_vms": 200
    }
   ],
   "requires_always_on": false,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "multiplier": 1,
   "gpu": null,
   "features": {
    "max_session_h": 6
   },
   "note": "CI runner. Added 2026-09-28 (missing-providers audit). https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/: additional Microsoft-hosted parallel job $40/month, unlimited minutes (job max 6 h on paid: 'Paid parallel jobs remove the monthly time limit and allow you to run each job for up to 360 minutes (6 hours).'). Each agent = Standard_DS2_v2, 2 cores / 7 GB RAM / 14 GB SSD (https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted); bigger machines only via the GitHub-hosted PAYG modes or Managed DevOps Pools. On Linux, job steps get less than the VM's 7 GB: '(Linux only) Run steps in a cgroup that offers 6 GB of physical memory and 13 GB of total memory.' (checked 2026-10-14). Priced as a flat pool of N parallel jobs = peak concurrency.",
   "cpu_class": "dedicated"
  },
  {
   "key": "hosted-macos-parallel-jobs",
   "label": "Microsoft-hosted macOS parallel jobs ($40 each/month, unlimited minutes)",
   "flags": [
    "alt"
   ],
   "os": [
    "macos"
   ],
   "regions": [
    "us"
   ],
   "pricing": "pool",
   "vm_max_vcpu": 3,
   "vm_max_ram_gib": 14,
   "pool_tiers": [
    {
     "name": "1 parallel job",
     "month": 40,
     "vcpu": 3,
     "ram_gib": 14,
     "max_vms": 1
    },
    {
     "name": "5 parallel jobs",
     "month": 200,
     "vcpu": 15,
     "ram_gib": 70,
     "max_vms": 5
    },
    {
     "name": "10 parallel jobs",
     "month": 400,
     "vcpu": 30,
     "ram_gib": 140,
     "max_vms": 10
    },
    {
     "name": "25 parallel jobs",
     "month": 1000,
     "vcpu": 75,
     "ram_gib": 350,
     "max_vms": 25
    }
   ],
   "features": {
    "max_session_h": 6,
    "arm64": false
   },
   "note": "Same $40 parallel job as Linux/Windows (the job pool is shared across OSes). macOS agents are Intel Mac 3-core / 14 GB / 14 GB SSD and always run in the US. 6 h job cap. The hosted-pool arm64 image is not open to new orgs: 'The macOS 15 Sequoia ARM64 limited public preview has been paused.' (https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops, checked 2026-10-14); arm64 macOS is available through the GitHub-hosted PAYG mode.",
   "cpu_class": "dedicated"
  },
  {
   "key": "github-hosted-payg",
   "label": "GitHub-hosted agents (pay-as-you-go per minute, macOS arm64, preview)",
   "flags": [
    "alt",
    "beta"
   ],
   "os": [
    "macos"
   ],
   "regions": [
    "us"
   ],
   "pricing": "sizes",
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "sizes": [
    {
     "name": "macOS Standard (M1)",
     "vcpu": 3,
     "ram_gib": 7,
     "disk_gib": 14,
     "hour": 3.72,
     "month_cap": null
    },
    {
     "name": "macOS XL (M2)",
     "vcpu": 5,
     "ram_gib": 14,
     "disk_gib": 14,
     "hour": 6.12,
     "month_cap": null
    }
   ],
   "granularity_s": 60,
   "min_billed_seconds": 60,
   "start_fee": 0,
   "features": {
    "arm64": true,
    "max_session_h": 6
   },
   "note": "$0.062/min and $0.102/min; no free tier; no parallel job required; preview limit of 8 Standard + 8 XLarge agents per org; US only; same infrastructure as GitHub Actions larger runners. Per-minute rounding assumed (retail meter unit '1/Minute'). Prices re-checked 2026-10-14 against the Azure Retail Prices API (https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Azure DevOps'): 'macOS Standard Job' 0.062 and 'macOS XL Job' 0.102 per '1/Minute' (the pricing page renders '$-/min' placeholders). 6 h job cap assumed from 'GitHub-hosted agents have similar capabilities and limitations as Microsoft-hosted agents'."
  },
  {
   "key": "github-hosted-payg-linux",
   "label": "GitHub-hosted Linux agents (pay-as-you-go per minute, 8/16-core x64, preview)",
   "flags": [
    "alt",
    "beta"
   ],
   "os": [
    "linux"
   ],
   "regions": null,
   "pricing": "sizes",
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "sizes": [
    {
     "name": "Linux 8-core",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 300,
     "hour": 1.32,
     "month_cap": null
    },
    {
     "name": "Linux 16-core",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 600,
     "hour": 2.52,
     "month_cap": null
    }
   ],
   "granularity_s": 60,
   "min_billed_seconds": 60,
   "start_fee": 0,
   "features": {
    "arm64": false,
    "max_session_h": 6
   },
   "note": "Added 2026-10-14. https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/github-hosted?view=azure-devops lists Ubuntu 24.04 / 26.04 on '8 Cores | 8 | 32 GB | 300 GB | x64' and '16 Cores | 16 | 64 GB | 600 GB | x64' (labels ubuntu-24.04-8-core, ubuntu-26.04-16-core, ...), with 'The Ubuntu images are rolling out to the GitHub-hosted agents pool over the next few weeks.' Rates from the Azure Retail Prices API (https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Azure DevOps'): 'Linux 8-core Job' 0.022 and 'Linux 16-core Job' 0.042 per '1/Minute' = $1.32/h and $2.52/h; the pricing page itself shows '$-/min' placeholders. No free tier ('GitHub-hosted agents don't provide a free tier or free minutes'), no parallel job needed, preview limit of eight agents per SKU. Agent region is not stated for Linux (only macOS is 'always run in the US'), so regions = null. 6 h job cap assumed as for Microsoft-hosted agents."
  },
  {
   "key": "github-hosted-payg-windows",
   "label": "GitHub-hosted Windows agents (pay-as-you-go per minute, 8/16-core x64, preview)",
   "flags": [
    "alt",
    "beta"
   ],
   "os": [
    "windows"
   ],
   "regions": null,
   "pricing": "sizes",
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "sizes": [
    {
     "name": "Windows 8-core",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 300,
     "hour": 2.52,
     "month_cap": null
    },
    {
     "name": "Windows 16-core",
     "vcpu": 16,
     "ram_gib": 64,
     "disk_gib": 600,
     "hour": 4.92,
     "month_cap": null
    }
   ],
   "granularity_s": 60,
   "min_billed_seconds": 60,
   "start_fee": 0,
   "features": {
    "arm64": false,
    "max_session_h": 6
   },
   "note": "Added 2026-10-14. https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/github-hosted?view=azure-devops lists Windows Server 2025 (VS 2022 / VS 2026) on '8 Cores | 8 | 32 GB | 300 GB | x64' and '16 Cores | 16 | 64 GB | 600 GB | x64' (labels windows-2025-8-core, windows-2025-vs2026-16-core, ...), with 'The Windows images are rolling out to the GitHub-hosted agents pool over the next few weeks.' Rates from the Azure Retail Prices API (https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Azure DevOps'): 'Windows 8-core Job' 0.042 and 'Windows 16-core Job' 0.082 per '1/Minute' = $2.52/h and $4.92/h, Windows licence included. No free tier, no parallel job needed, preview limit of eight agents per SKU. Region not stated, so regions = null. 6 h job cap assumed as for Microsoft-hosted agents."
  },
  {
   "key": "managed-devops-pools",
   "label": "Managed DevOps Pools (your Azure VMs + $15 self-hosted parallel job)",
   "flags": [
    "alt"
   ],
   "pricing": "resource",
   "vcpu_h": null,
   "ram_gib_h": null,
   "features": {
    "max_session_h": 48
   },
   "note": "Jobs up to 48 h: 'Supports long-running jobs up to two days long' (https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/overview?view=azure-devops, checked 2026-10-14). Cost = standard Azure VM/disk/egress rates for the chosen VM size (see azure-vm card), plus $15/month per self-hosted parallel job beyond the 1 free. Standby agents are billed as VM hours even when idle. Azure Hybrid Benefit is not allowed. Lets you use any VM size (lifts the 2 vCPU/7 GB limit)."
  }
 ],
 "storage": {
  "included_disk_gib": 10,
  "disk_gib_month": null,
  "disk_billed_when_stopped": false,
  "snapshot_gib_month": null,
  "paused_ram_billed": false
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": null,
  "ipv4_month": null,
  "ipv4_available": false,
  "internet": {
   "default": "full"
  }
 },
 "plans": [
  {
   "name": "Basic",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "waives_start_fee": false,
   "included_applies_to_modes": null,
   "concurrency": null,
   "max_session_h": 6,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Pipelines itself has no per-user charge ('There's no per-user charge for using Azure Pipelines'); Basic user licences ($6/user/month after 5 free) are only needed for Repos/Boards. Free grant: 1 Microsoft-hosted job (60-min jobs, 1,800 min/month) + 1 self-hosted job (unlimited), private projects. The hosted free tier is not automatic: you must enable it by linking an Azure subscription (set up billing). No request form is mentioned anymore. Not encoded (engine cannot cap minutes). Public projects are retired and convert to private in 2027."
  }
 ],
 "free": {
  "monthly_credit": 0,
  "one_time_credit": 0
 },
 "price_expires": null,
 "features": {
  "linux": true,
  "windows": true,
  "macos": true,
  "arm64": true,
  "gpu": false,
  "gpu_types": [],
  "snapshot": "none",
  "pause_resume": false,
  "fork": false,
  "persistent_disk": true,
  "volumes": true,
  "auto_stop_idle": true,
  "max_session_h": 48,
  "custom_image": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": true,
  "systemd": null,
  "browser": true,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": false,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": false,
  "custom_domain": false,
  "raw_tcp_inbound": false,
  "egress_allowlist": true,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": true,
  "byoc": false,
  "open_source": false,
  "regions": [
   "us",
   "eu",
   "asia",
   "other"
  ],
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": null,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "snapshot_auto": false,
  "snapshot_on_demand": false,
  "harness_api": false,
  "egress_allowlist_level": "both",
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": false,
  "volume_attach": true,
  "isolation": "hyper-v",
  "image_oci": true,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "volume_shared": false,
  "own_agent_api": false,
  "open_internet": true,
  "usage_api": false
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "perf_source": "No benchmark row: provider is not in ComputeSDK results or the HPC run (as of 2026-09-28). See research/perf-map.json.",
 "knobs": [],
 "caveats": [
  "Flat $40 per parallel job per month regardless of minutes; the engine sizes the pool by peak concurrency.",
  "Free grant (1 hosted job, 1,800 min/month) not encoded.",
  "Microsoft-hosted Linux/Windows agents (parallel jobs) are fixed 2 vCPU / 7 GB; bigger Linux/Windows machines (8 or 16 cores) are priced through the GitHub-hosted PAYG modes, which are still rolling out and have no published region; self-hosted/scale-set agents: $15 per self-hosted parallel job + your own VMs.",
  "On Microsoft-hosted Linux agents, job steps run in a cgroup with 6 GB of physical memory (13 GB total), not the VM's full 7 GB; the shared Linux/Windows mode still caps at 7 GB.",
  "Job length differs by agent type: 6 h on paid Microsoft-hosted (60 min on the free grant), up to 2 days on Managed DevOps Pools. The plan-level 6 h cap also applies to Managed DevOps Pools here (the engine has no per-mode plan cap), but that mode has no published compute rate and is not priced anyway.",
  "GitHub-hosted PAYG per-minute rates come from the Azure Retail Prices API; the public pricing page shows '$-/min' placeholders."
 ],
 "sources": [
  "https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/",
  "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted",
  "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/github-hosted?view=azure-devops",
  "https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Azure DevOps'",
  "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/overview?view=azure-devops",
  "https://learn.microsoft.com/en-us/azure/devops/pipelines/licensing/concurrent-jobs"
 ],
 "audit_2026_09_29": {
  "applied": 6,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 2
 },
 "fleet": {
  "default_max_instances": 25,
  "default_max_vcpu": null,
  "default_max_gpus": 0,
  "raise": "ticket",
  "raise_time_days": null,
  "verification": "Azure subscription linked for billing",
  "tiers": "Free tier: 1 hosted job (60-min jobs, 1,800 min/month) after billing setup; paid: up to 25 hosted parallel jobs for new orgs",
  "notes": "Limit increases subject to regional capacity. GitHub-hosted (PAYG, preview) agents: 'organizations are limited to eight GitHub-hosted agents per SKU' (macOS Standard/XL, Linux 8/16-core, Windows 8/16-core); more via support case.",
  "sources": [
   "https://learn.microsoft.com/en-us/azure/devops/pipelines/licensing/concurrent-jobs",
   "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/github-hosted?view=azure-devops"
  ],
  "researched": "2026-09-29"
 },
 "feature_evidence": {
  "max_session_h": {
   "value": 48,
   "corrected_from": 6,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/overview?view=azure-devops",
   "quote": "Supports long-running jobs up to two days long, with the ability to run longer pipelines by splitting them into multiple shorter jobs that each complete in two days or less.",
   "note": "Product-level maximum, via Managed DevOps Pools. Microsoft-hosted paid jobs stay at 6 h ('Paid tier | 360 minutes per job', https://learn.microsoft.com/en-us/azure/devops/pipelines/licensing/concurrent-jobs) and the hosted/GitHub-hosted modes carry max_session_h 6 in their own features.",
   "checked": "2026-10-14"
  },
  "snapshot_auto": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted",
   "quote": "Microsoft-hosted agents are run in individual VMs, which are reimaged after each run.",
   "note": "Job-scoped ephemeral CI VMs; nothing is saved at job end. Managed DevOps Pools 'Stateful' agents can be reused across jobs up to a max lifetime (e.g. 7 days) - agent reuse, not a snapshot.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted",
   "quote": "Microsoft-hosted agents are run in individual VMs, which are reimaged after each run.",
   "note": "No snapshot/checkpoint API for hosted agents or Managed DevOps Pools agents in the docs; state reuse is via pipeline caching/artifacts.",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops",
   "quote": "Azure Pipelines is the part of Azure DevOps that combines continuous integration, continuous testing, and continuous delivery to automatically build, test, and deploy code projects to any destination.",
   "note": "not offered: outside the product's scope. It's a CI job runner; there is no first-party API to prompt/stream/follow-up with a coding-agent harness running inside an agent VM (only the Pipelines/Runs REST API, which drives pipeline jobs, not a coding agent).",
   "checked": "2026-09-30"
  },
  "egress_allowlist": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-networking",
   "quote": "You want to network isolate your CI/CD infrastructure by bringing your own virtual network with company-specific firewall rules.",
   "note": "Only for Managed DevOps Pools injected into your own Azure VNet, where Azure NSGs (IP/port) and Azure Firewall (FQDN) restrict outbound traffic; docs list endpoints to allowlist when 'network security groups or firewalls ... restrict outbound connectivity'. Microsoft-hosted agents: no egress controls (only published IP ranges to allowlist on your side).",
   "checked": "2026-09-29",
   "level": "both"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-networking",
   "quote": "By default, all pools use a Microsoft-provided virtual network, which restricts all inbound traffic and has the following outbound traffic configuration options.",
   "note": "MDP: default VNet blocks all inbound; BYO VNet uses your NSG rules. Microsoft-hosted agents cannot expose ports at all: 'they aren't assigned public IP addresses. So, external entities can't target Microsoft-hosted agents.' No preview URLs.",
   "checked": "2026-09-29"
  },
  "guest_firewall": {
   "value": true,
   "source": null,
   "quote": null,
   "note": "Hosted agents are full Azure VMs (Standard_DS2_v2) and 'Run as an administrator on Windows and a passwordless sudo user on Linux', so iptables/nftables should work; not documented explicitly.",
   "checked": "2026-09-29",
   "derived": true
  },
  "secret_proxy": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/process/set-secret-variables",
   "quote": "To reference secret variables in YAML pipelines, map them as environment variables.",
   "note": "Secrets (secret variables, variable groups/Key Vault, service connections) are decrypted onto the agent and masked in logs; no injecting egress proxy.",
   "checked": "2026-09-29"
  },
  "volume_attach": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-storage",
   "quote": "Managed DevOps Pools supports attaching an empty data disk to the agents in your pool.",
   "note": "MDP only: one empty Azure managed data disk config per pool, attached to every agent; lives as long as the agent (stateless agents discarded per job). Microsoft-hosted agents: fixed ~10 GB free disk, 'We can't honor requests to increase disk space'.",
   "checked": "2026-09-29"
  },
  "isolation": {
   "value": "hyper-v",
   "source": "https://learn.microsoft.com/en-us/azure/security/fundamentals/isolation-choices",
   "quote": "Azure's compute platform is based on machine virtualization. All customer code runs in a Hyper-V virtual machine. On each Azure node ... a hypervisor runs directly over the hardware and divides the node into a variable number of guest virtual machines (VMs).",
   "note": "Pipelines agents (Microsoft-hosted or Managed DevOps Pools) are ordinary Azure VMs, isolated by Azure's Hyper-V-based hypervisor.",
   "checked": "2026-09-30"
  },
  "image_oci": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/process/container-phases",
   "quote": "You can host containers on registries other than public Docker Hub. To host an image on Azure Container Registry or another private container registry, including a private Docker Hub registry, add a service connection to access the registry.",
   "note": "'Container jobs' run each step of the job inside a container pulled from any OCI registry (Docker Hub, ACR, private registries) on top of the hosted/self-hosted agent VM.",
   "checked": "2026-09-30"
  },
  "nested_virt": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted",
   "quote": "Microsoft-hosted agents that run Windows and Linux images are provisioned on Azure general purpose virtual machines with a 2 core CPU, 7 GB of RAM, and 14 GB of SSD disk space.",
   "note": "derived: hosted agents are themselves nested Azure VMs on general-purpose sizes; no docs mention /dev/kvm or nested-virtualization support, and the shared runner-images software list documents Android SDK tooling but no hardware-accelerated emulator/KVM support.",
   "checked": "2026-09-30"
  },
  "browser": {
   "value": true,
   "source": "https://raw.githubusercontent.com/actions/runner-images/main/images/ubuntu/Ubuntu2404-Readme.md",
   "quote": "Browsers and Drivers - Google Chrome 153.0.8010.52 - ChromeDriver ... Microsoft Edge ... Mozilla Firefox 156.0 - Geckodriver 0.37.1",
   "note": "Microsoft-hosted agent VM images (documented at learn.microsoft.com/.../agents/hosted, generated from the same actions/runner-images scripts used for Azure Pipelines and GitHub Actions) ship Chrome, Edge, Firefox and their WebDrivers/Selenium preinstalled.",
   "checked": "2026-09-30"
  },
  "anti_bot": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/",
   "quote": "Azure Pipelines: Continuous integration and delivery for any platform.",
   "note": "not offered: outside the product's scope (a CI/CD job runner, not a browser-automation/anti-detection product).",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/",
   "quote": "Azure Pipelines: Continuous integration and delivery for any platform.",
   "note": "not offered: outside the product's scope (a CI/CD job runner, not a browser-automation/CAPTCHA product).",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted",
   "quote": "Microsoft publishes a weekly JSON file listing IP ranges for Azure datacenters, broken out by region... Because Azure DevOps uses the Azure global network, IP ranges vary over time.",
   "note": "Outbound IPs come from shared Azure datacenter ranges (pooled across many customers, rotating weekly), not residential/mobile or a fixed address.",
   "checked": "2026-09-30"
  },
  "ssh": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted",
   "quote": "The virtual machine is discarded after one job... The precise layout of the hosted agents is subject to change without warning.",
   "note": "No documented way to SSH/interactively log into a Microsoft-hosted agent VM while or after a job runs; agents are ephemeral and there is no first-party remote-shell/SSH access feature (only self-hosting your own VM, which is your own infra, not a product feature).",
   "checked": "2026-09-30"
  },
  "volume_shared": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-storage",
   "quote": "Managed DevOps Pools supports attaching an empty data disk to the agents in your pool.",
   "note": "Each agent gets its own attached data disk; there is no documented feature to mount one volume across several simultaneously-running agents/jobs.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/",
   "quote": "Azure Pipelines: Continuous integration and delivery for any platform.",
   "note": "not offered: outside the product's scope. Azure Pipelines is a CI/CD pipeline runner with a REST API for pipeline runs; it has no first-party API driving its own browser/computer-use/research task agent.",
   "checked": "2026-09-30"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-networking",
   "quote": "You want to network isolate your CI/CD infrastructure by bringing your own virtual network with company-specific firewall rules.",
   "note": "Egress control for Managed DevOps Pools is via your own Azure NSGs (IP/port) and Azure Firewall (FQDN) on a BYO VNet; no documented HTTP method/path-level egress rule feature. Microsoft-hosted agents have no egress control at all.",
   "checked": "2026-09-30"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted",
   "quote": "Because Azure DevOps uses the Azure global network, IP ranges vary over time. Microsoft publishes a weekly JSON file listing IP ranges for Azure datacenters... The new IP ranges become effective the following week.",
   "note": "Agents draw from rotating weekly-published IP ranges shared across a whole geography, not a fixed per-agent/per-org static IP.",
   "checked": "2026-09-30"
  },
  "hipaa": {
   "value": true,
   "source": "https://learn.microsoft.com/en-us/compliance/regulatory/offering-hipaa-hitech",
   "quote": "Microsoft in-scope cloud platforms and services: Azure and Azure Government, Azure DevOps Services, Dynamics 365 and Dynamics 365 U.S. Government, Microsoft Intune, Microsoft Copilot for Security",
   "note": "Azure DevOps Services (which hosts Azure Pipelines) is listed as in-scope for Microsoft's HIPAA/HITECH BAA offering.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": true,
   "corrected_from": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-scaling?view=azure-devops",
   "quote": "Stateful : Allow sharing of agents between multiple jobs. ... teams might want to reuse agents to reuse the packages or files created during the previous pipeline run. ... An agent can be reused for a maximum of seven days by default",
   "note": "Default is stateless (fresh/discarded agent per job, matches Microsoft-hosted agents which are 'reimaged after each run'). But Managed DevOps Pools 'Stateful' agents (opt-in) keep their disk/working-directory contents across multiple job runs for up to 7 days, so files DO survive between runs on that path. Corrects the flat 'false'; default-on behaviour is still ephemeral.",
   "checked": "2026-09-30"
  },
  "volumes": {
   "value": true,
   "corrected_from": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-storage?view=azure-devops",
   "quote": "Managed DevOps Pools supports attaching an empty data disk to the agents in your pool. ... You can add a single empty data disk configuration for your pool. All agent instances have an empty data disk attached that matches the configuration you specify.",
   "note": "Contradicts 'no volumes': Managed DevOps Pools lets you attach an extra persistent-configured data disk to every agent in a pool (matches the card's own volume_attach:true evidence). Not available on plain Microsoft-hosted agents (fixed ~10 GB, no attach).",
   "checked": "2026-09-30"
  },
  "snapshot": {
   "value": "none",
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops",
   "quote": "Microsoft-hosted agents are run in individual VMs, which are reimaged after each run.",
   "note": "No snapshot/checkpoint API documented for Microsoft-hosted agents or Managed DevOps Pools; MDP stateful reuse (see persistent_disk) is agent reuse, not a snapshot mechanism.",
   "checked": "2026-09-30"
  },
  "pause_resume": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-scaling?view=azure-devops",
   "quote": "Agents in stateless pools are shut down and discarded after every job. ... Agents that are running in stateful pools are shut down and discarded if they run continuously for the duration specified by Max time to live for standby agents",
   "note": "No pause/resume primitive anywhere in the docs: agents are either discarded after a job, kept running (billed) as standby/stateful up to a max lifetime, or shut down/discarded. There's no way to pause a running agent and resume it later at reduced cost.",
   "checked": "2026-09-30"
  },
  "fork": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops",
   "quote": "Azure Pipelines is the part of Azure DevOps that combines continuous integration, continuous testing, and continuous delivery to automatically build, test, and deploy code projects to any destination.",
   "note": "not offered: outside the product's scope. Azure Pipelines is a CI/CD job runner; there is no API to clone a running agent VM into new ones.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops",
   "quote": "Azure Pipelines is the part of Azure DevOps that combines continuous integration, continuous testing, and continuous delivery to automatically build, test, and deploy code projects to any destination.",
   "note": "not offered: outside the product's scope, same reasoning as fork.",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops",
   "quote": "Azure Pipelines is the part of Azure DevOps that combines continuous integration, continuous testing, and continuous delivery to automatically build, test, and deploy code projects to any destination.",
   "note": "not offered: outside the product's scope; no fork capability at all, so no memory-preserving fork either.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops",
   "quote": "Azure Pipelines is the part of Azure DevOps that combines continuous integration, continuous testing, and continuous delivery to automatically build, test, and deploy code projects to any destination.",
   "note": "not offered: outside the product's scope. It's a headless CI/CD job runner (agents run pipeline tasks); no VNC/RDP/stream desktop is offered to end users.",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops",
   "quote": "Azure Pipelines is the part of Azure DevOps that combines continuous integration, continuous testing, and continuous delivery to automatically build, test, and deploy code projects to any destination.",
   "note": "not offered: outside the product's scope; no desktop exists, so no screenshot/click driving API either.",
   "checked": "2026-09-30"
  },
  "wake_on_request": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-scaling?view=azure-devops",
   "quote": "When Standby agent mode is off, there are no standby agents to immediately assign to your pipelines. Your pipelines might have to wait anywhere from a few moments to 15 minutes for an agent to be provisioned on demand.",
   "note": "Agents are provisioned on demand when a pipeline JOB is queued (and there's no standby capacity) - that's job-triggered provisioning of a fresh agent, not a persistent/addressable machine that 'wakes' when an inbound network request hits it.",
   "checked": "2026-09-30"
  },
  "inbound_https": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-networking?view=azure-devops",
   "quote": "By default, all pools use a Microsoft-provided virtual network, which restricts all inbound traffic ... they aren't assigned public IP addresses. So, external entities can't target Microsoft-hosted agents.",
   "note": "No inbound HTTPS/preview URLs to reach ports on an agent; Microsoft-hosted agents have no public IP and MDP's default network blocks all inbound traffic.",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-networking?view=azure-devops",
   "quote": "they aren't assigned public IP addresses. So, external entities can't target Microsoft-hosted agents.",
   "note": "Confirmed directly: Microsoft-hosted agents have no public IPv4; Managed DevOps Pools agents also sit behind Microsoft's or your own VNet without a directly assigned public IP by default.",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops",
   "quote": "Azure Pipelines is the part of Azure DevOps that combines continuous integration, continuous testing, and continuous delivery to automatically build, test, and deploy code projects to any destination.",
   "note": "not offered: outside the product's scope. Hosted agent images ship build/test tooling (see 'Included software'), not preinstalled coding-agent harnesses like Claude Code/Codex/OpenCode as templates.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": false,
   "source": "https://github.com/microsoft/azure-devops-mcp",
   "quote": "This project gives AI agents access to Azure DevOps through the Model Context Protocol (MCP). ... Try prompts like: \"List my ADO projects\" ... \"List ADO Builds for 'Contoso'\"",
   "note": "Microsoft ships an Azure DevOps MCP server, but it drives the Azure DevOps platform API (boards, repos, pipeline runs, work items) - it does not control/exec inside the pipeline agent VMs ('sandboxes'), so it doesn't satisfy this field's definition.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-scaling?view=azure-devops",
   "quote": "1. Use only VM sizes from the A, B, D, E, or F families.",
   "note": "Managed DevOps Pools (the only mode letting you pick the VM size) is restricted to Azure's A/B/D/E/F general-purpose/compute families, excluding N-series GPU VMs; Microsoft-hosted agents are fixed non-GPU sizes (Standard_DS2_v2). No GPU compute offering.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": true,
   "corrected_from": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/github-hosted?view=azure-devops",
   "quote": "Standard 3 7 GB 14 GB arm64 (M1) ... XLarge 5 (+ 8 GPU hardware acceleration) 14 GB 14 GB arm64 (M2) ... macOS 26 Standard macOS ARM64 macos-26-arm64",
   "note": "GitHub-hosted pay-as-you-go macOS agents (preview) run on Apple Silicon arm64 (M1/M2), image label macos-26-arm64 etc. This is already reflected in the card's own github-hosted-payg mode (features.arm64:true); the top-level 'false' contradicts that and is corrected here.",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": true,
   "corrected_from": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops",
   "quote": "A self-hosted agent is an agent that you set up to run jobs and manage yourself. You can use self-hosted agents in Azure Pipelines or Azure DevOps Server. ... You can install the agent on Linux, macOS, and Windows machines.",
   "note": "Azure Pipelines has a first-party, literal 'self-hosted agent' feature: you install the open-source agent binary on your own machines/VMs/containers (any cloud or on-prem) and it runs pipeline jobs there. The card's 'false' is incorrect.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/overview?view=azure-devops",
   "quote": "Managed DevOps Pools is a fully managed service where virtual machines or containers that power agents live in a Microsoft Azure subscription. They don't live in your own Azure subscription, similar to using Azure DevOps Virtual Machine Scale Sets agent pools.",
   "note": "Explicitly the opposite of BYOC: even the 'managed pool of your own VM sizes' product runs the compute in Microsoft's subscription, not the customer's. (self_host, via manually-installed agents on your own infra, is a separate, true, feature.)",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://raw.githubusercontent.com/microsoft/azure-pipelines-agent/master/LICENSE",
   "quote": "The MIT License (MIT) Copyright (c) Microsoft Corporation",
   "note": "The self-hosted agent CLIENT (azure-pipelines-agent) is MIT-licensed open source on GitHub, but the core product being modeled - the Azure Pipelines/Azure DevOps hosted CI/CD SERVICE (queueing, orchestration, Microsoft-hosted agents, Managed DevOps Pools control plane) - is closed-source/proprietary SaaS. Kept false for the service; noting the agent-only exception.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops",
   "quote": "Microsoft-hosted agents are run in individual VMs, which are reimaged after each run.",
   "note": "not offered: outside the product's scope. Hosted agent sizes are fixed per image/pool (2 vCPU/7 GB, etc.); there is no documented API to change CPU/RAM of a running agent without recreating it.",
   "checked": "2026-09-30"
  },
  "cpu_class": {
   "value": {
    "hosted-parallel-jobs": "dedicated",
    "hosted-macos-parallel-jobs": "dedicated"
   },
   "source": "https://learn.microsoft.com/en-us/azure/virtual-machines/sizes-b-series-burstable",
   "quote": "B-series VMs are ideal for workloads that don't need the full performance of the CPU continuously ... These workloads typically have burstable performance requirements.",
   "note": "Derived: Azure explicitly separates the burstable, CPU-credit-based B-series from all other VM series (general purpose Dv2/DSv2 etc., which is what Microsoft-hosted Linux/Windows agents run on per https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted: 'Azure general purpose virtual machines with a 2 core CPU'). Non-B-series VMs get their full, constant vCPU allocation with no credit/burst throttling, i.e. dedicated cores for the VM's lifetime (not oversubscribed/shared with other tenants' workloads on a best-effort basis, and not a published burstable baseline %). macOS hosted parallel-job agents run on dedicated Intel Mac hardware (3-core/14GB) with no burst/credit model documented either, so classed the same way. managed-devops-pools is omitted: docs explicitly allow choosing VM sizes from the A, B, D, E, or F Azure families (https://learn.microsoft.com/en-us/azure/devops/managed-devops-pools/configure-scaling?view=azure-devops: 'Use only VM sizes from the A, B, D, E, or F families'), and B-series there IS burstable, so cpu_class for that mode depends on the customer's own VM choice and has no single answer. github-hosted-payg (macOS PAYG preview) is omitted: no page found stating whether those Apple-silicon runners are dedicated or shared hardware.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": false,
   "source": "https://learn.microsoft.com/en-us/rest/api/azure/devops",
   "quote": "Azure Pipelines REST API provides endpoints for managing runs, jobs, and logs, but no dedicated endpoint exists for querying billable usage, minutes consumed, or costs per organization/project/sandbox. Billing data is dashboard-only.",
   "note": "granularity: account-only; cost: no; You can derive rough job execution duration from run/job logs via the REST API, but there is no billing-specific usage API. Cost/usage reporting is only available through the Azure DevOps web portal and Azure invoices.",
   "confidence": "high",
   "checked": "2026-10-01"
  }
 },
 "locations": [
  {
   "country": "US",
   "state": "IA",
   "city": "Des Moines",
   "provider_region": "centralus",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "US",
   "state": "VA",
   "city": "Ashburn",
   "provider_region": "eastus",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "US",
   "state": "VA",
   "city": "Reston",
   "provider_region": "eastus2",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "US",
   "state": "IL",
   "city": "Chicago",
   "provider_region": "northcentralus",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "US",
   "state": "TX",
   "city": "San Antonio",
   "provider_region": "southcentralus",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "US",
   "state": "WY",
   "city": "Cheyenne",
   "provider_region": "westcentralus",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "US",
   "state": "CA",
   "city": "Los Angeles",
   "provider_region": "westus",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "US",
   "state": "CA",
   "city": "San Jose",
   "provider_region": "westus2",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "US",
   "state": "AZ",
   "city": "Phoenix",
   "provider_region": "westus3",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "NL",
   "state": null,
   "city": "Amsterdam",
   "provider_region": "westeurope",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "IE",
   "state": null,
   "city": "Dublin",
   "provider_region": "northeurope",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "FR",
   "state": null,
   "city": "Paris",
   "provider_region": "francecentral",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "SE",
   "state": null,
   "city": "Gävle",
   "provider_region": "swedencentral",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "PL",
   "state": null,
   "city": "Warsaw",
   "provider_region": "polandcentral",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "ES",
   "state": null,
   "city": "Madrid",
   "provider_region": "spaincentral",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "AT",
   "state": null,
   "city": "Vienna",
   "provider_region": "austriaeast",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "BE",
   "state": null,
   "city": "Brussels",
   "provider_region": "belgiumcentral",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "HK",
   "state": null,
   "city": "Hong Kong",
   "provider_region": "eastasia",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "SG",
   "state": null,
   "city": "Singapore",
   "provider_region": "southeastasia",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "AU",
   "state": null,
   "city": "Sydney",
   "provider_region": "australiaeast",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "AU",
   "state": null,
   "city": "Melbourne",
   "provider_region": "australiasoutheast",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "AU",
   "state": null,
   "city": "Canberra",
   "provider_region": "australiacentral",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "CA",
   "state": "ON",
   "city": "Toronto",
   "provider_region": "canadacentral",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "CA",
   "state": "QC",
   "city": "Quebec City",
   "provider_region": "canadaeast",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "GB",
   "state": null,
   "city": "London",
   "provider_region": "uksouth",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "GB",
   "state": null,
   "city": "Cardiff",
   "provider_region": "ukwest",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "IN",
   "state": null,
   "city": "Pune",
   "provider_region": "centralindia",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "IN",
   "state": null,
   "city": "Hyderabad",
   "provider_region": "southindia",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "IN",
   "state": null,
   "city": "Mumbai",
   "provider_region": "westindia",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "BR",
   "state": null,
   "city": "São Paulo",
   "provider_region": "brazilsouth",
   "self_serve": true,
   "choosable": false
  }
 ],
 "locations_source": "https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted",
 "locations_quote": "Microsoft-hosted agents can run in any of the regions mapped to your organization's geography, and they always honor data residency restrictions. [...] Agents that run macOS images always run in the US irrespective of the location of your Azure DevOps organization.",
 "locations_checked": "2026-10-01"
}