{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": true,
  "fork": true,
  "pause_resume": false,
  "persistent_disk": true,
  "whole_disk": false,
  "persist_scope": true,
  "volumes": true,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": true,
  "vm_isolation": true,
  "docker_inside": true,
  "nested_virt": 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": false,
  "inbound_https": true,
  "custom_domain": true,
  "raw_tcp_inbound": true,
  "egress_allowlist": true,
  "open_internet": true,
  "static_egress_ip": true,
  "private_network": null,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "gpu": false,
  "arm64": false,
  "windows": false,
  "macos": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": true,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "usage_api": null,
  "snapshot_auto": false,
  "snapshot_on_demand": true,
  "harness_api": false,
  "own_agent_api": false,
  "fast_boot": true,
  "strong_isolation": true,
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": false,
  "secret_proxy_any": false,
  "volume_attach": true,
  "volume_shared": true,
  "sidecar": true,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "modal-vm",
  "checked": "2026-09-30",
  "company": "Modal Labs, Inc.",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://modal.com/company",
   "quote": "We started Modal with the goal to make it easier to iterate and ship applications for data, AI, and machine learning."
  },
  "stage": {
   "value": "series-c",
   "source": "https://modal.com/blog/modal-series-c",
   "quote": "Modal's Series C: Raising $355M at a $4.65B valuation",
   "confidence": "high",
   "note": "The YC directory lists a company called 'Modal' (W16) doing digital commerce for auto retailers/brands (ycombinator.com/companies/modal) — this is a different, unrelated company, not modal.com (verified: that YC page's tagline is 'digital commerce for the world's largest auto retailers and brands'). Modal (modal.com, founded 2021 by Erik Bernhardsson and Akshat Bubna) is not YC-backed. As of 2026-09-28, TechCrunch reported Modal was 'closing in on' a further ~$750M round led by Accel at a $15.75B valuation, but this was unconfirmed/not yet closed ('Modal Labs declined to comment') as of the check date, so the last priced/confirmed round remains the Series C."
  },
  "accelerators": [],
  "total_funding_usd": {
   "value": 466000000,
   "status": "confirmed",
   "basis": "Modal's own company page states 'We've raised over $466M'; matches sum of Series B ($111M cumulative per Modal blog, i.e. after adding $87M Series B) + $355M Series C = $466M.",
   "source": "https://modal.com/company",
   "quote": "We've raised over $466M from some of the best investors and product leaders in the industry."
  },
  "last_round": {
   "type": "series-c",
   "amount_usd": 355000000,
   "date": "2026-05-21",
   "leads": [
    "General Catalyst",
    "Redpoint Ventures"
   ],
   "status": "confirmed",
   "source": "https://modal.com/blog/modal-series-c",
   "quote": "We've raised $355 million after growing fivefold since September, surpassing $300 million in annualized revenue. Our valuation is $4.65B post-money in a round led by General Catalyst and Redpoint, with Menlo, Bain Capital Ventures, and Accel joining as new investors."
  },
  "investors": [
   "General Catalyst",
   "Redpoint Ventures",
   "Lux Capital",
   "Amplify Partners",
   "Creandum",
   "Menlo Ventures",
   "Bain Capital Ventures",
   "Accel",
   "Essence Venture Capital"
  ],
  "portfolio_listings": [
   {
    "source": "Amplify Partners",
    "company": "Modal",
    "batch": null,
    "how": "domain"
   },
   {
    "source": "Creandum",
    "company": "Modal",
    "batch": "2022",
    "how": "domain"
   },
   {
    "source": "Essence Venture Capital",
    "company": "Modal",
    "batch": null,
    "how": "domain"
   },
   {
    "source": "Lux Capital",
    "company": "Modal",
    "batch": 2022,
    "how": "domain"
   },
   {
    "source": "Redpoint Ventures",
    "company": "Modal",
    "batch": null,
    "how": "domain"
   }
  ],
  "revenue": {
   "value_usd": 300000000,
   "kind": "ARR",
   "as_of": "2026-05",
   "status": "confirmed",
   "basis": "Stated by Modal itself and repeated to Reuters",
   "source": "https://modal.com/blog/modal-series-c",
   "quote": "We've raised $355 million after growing fivefold since September, surpassing $300 million in annualized revenue."
  },
  "employees": {
   "value": null,
   "source": ""
  },
  "note": "Modal Labs (modal.com) is a serverless cloud/compute platform for AI/ML founded in 2021 by Erik Bernhardsson (ex-Spotify, ex-Better.com CTO) and Akshat Bubna (ex-Scale AI); offices in New York, Stockholm, San Francisco, London. Funding path: ~2021 pre-seed/seed, Oct 2023 $16M Series A (GA announcement), Sept 2025 $87M Series B led by Lux Capital ($1.1B post-money valuation, $111M cumulative), May 2026 $355M Series C led by General Catalyst and Redpoint ($4.65B post-money). As of late Sept 2026, TechCrunch/Bloomberg/Axios reported Modal was in the process of closing a new round (~$750M led by Accel) at a $15.75B valuation, which had not been confirmed as closed by the company as of the check date — buyers should verify whether that round has since closed. In July 2026 a Modal customer's misconfigured (unauthenticated) sandbox endpoint was exploited in the same hacking campaign that hit Hugging Face via a rogue OpenAI agent; Modal said its own platform was not compromised."
 },
 "id": "modal-vm",
 "name": "Modal (VM Sandboxes)",
 "family": "modal",
 "url": "https://modal.com/pricing",
 "category": "agent-sandbox",
 "isolation": "cloud-hypervisor",
 "modes": [
  {
   "key": "on-demand",
   "label": "VM Sandbox, request = size",
   "pricing": "resource",
   "vcpu_h": 0.141912,
   "ram_gib_h": 0.024012,
   "cpu_basis": "max",
   "ram_basis": "max",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": 0.125,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Card vCPU = 1 Modal `cpu` unit = 1 CPU the guest sees (nproc). Modal lists $0.00003942 per 'physical core (2 vCPU equivalent)' per second and bills that per `cpu` unit, so $0.141912 per card-vCPU-h; memory $0.00000667/GiB-s. A '4 vCPU / 8 GiB' sandbox = cpu=(4,4), memory 8192 = $0.759744/h. Measured: cpu=N with cpuLimit=N gives nproc N and N CPUs of throughput (hpc-sandbox-benchmarks PR #121). Rates already include the 3x non-preemptible multiplier over Function rates. Billed per second on max(request, actual): at request = W.vcpu, low utilisation saves nothing. Set cpuLimit = request: without it the soft limit is request + 16 cores, the guest sees ceil(limit) CPUs (17 observed at default request) and bursting is billed. GPU sandboxes are preemptible. Basis verified 2026-09-28: 'You pay for `max(request, actual)`' (modal.com/docs/guide/sandbox-resources); 'charged based on whichever is higher: your request or actual usage' (modal.com/docs/guide/resources). VM runtime (runtime=\"vm\"): same per-second CPU and memory rates as the gVisor sandboxes; \"CPU/memory bursting capabilities as previously\" (GA post, https://modal.com/blog/vm-sandboxes-agent-computers).",
   "regions": null,
   "gpu_only": false,
   "flags": [],
   "perf": {
    "cpu_runs_s": 15.54,
    "cold_start_ms": null,
    "burst_tti_ms": null,
    "dax_s": null
   },
   "perf_source": "StarSling hpc-sandbox-benchmarks, run 36498291449 (2026-09-29), Node.js V8 Web Tooling p50 at a 4 vCPU / 8 GB target",
   "features": {
    "isolation": "cloud-hypervisor",
    "docker_inside": true,
    "systemd": true,
    "gpu": false,
    "nested_virt": true,
    "fuse": true,
    "kernel_features": true
   },
   "cpu_class": "dedicated"
  },
  {
   "key": "low-request-burst",
   "label": "VM Sandbox, minimal request + burst",
   "pricing": "resource",
   "vcpu_h": 0.141912,
   "ram_gib_h": 0.024012,
   "cpu_basis": "active",
   "ram_basis": "active",
   "active_floor": 0.03125,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": 0.125,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "The request is set to the minimum (cpu 0.125 = 0.125 card-vCPU; 128 MiB) and cpu/memory limits are set to the workload size, so the guest sees W.vcpu CPUs (nproc = ceil(limit)). Billing is max(request, actual) per second, so it tracks usage. active_floor 0.03125 = 0.125 / 4 vCPU (the exact floor is 0.125/W.vcpu). Burst capacity is NOT guaranteed (it needs spare host capacity), so the workload may be throttled. The memory limit is a hard OOM. Optimistic regime. Floor verified 2026-09-28: 'minimum of 0.125 cores per container' (modal.com/pricing); 'a default request of 0.125 CPU cores and 128 MiB of memory' (modal.com/docs/guide/resources). Docs do not say whether page cache counts toward memory usage. ASSUMES a small CPU/memory request (0.125 core / 128 MiB): guaranteed capacity is only that request; anything above it is best-effort burst. Memory above the request is not guaranteed either: Modal can EVICT a sandbox that exceeds its memory request (docs recommend requesting p90-95 of memory), so the RAM half of this regime is optimistic and can kill the session; only CPU is safe to under-request. VM runtime (runtime=\"vm\"): same per-second CPU and memory rates as the gVisor sandboxes; \"CPU/memory bursting capabilities as previously\" (GA post, https://modal.com/blog/vm-sandboxes-agent-computers).",
   "regions": null,
   "gpu_only": false,
   "flags": [],
   "perf": {
    "cpu_runs_s": 15.54,
    "cold_start_ms": null,
    "burst_tti_ms": null,
    "dax_s": null
   },
   "perf_source": "StarSling hpc-sandbox-benchmarks, run 36498291449 (2026-09-29), Node.js V8 Web Tooling p50 at a 4 vCPU / 8 GB target",
   "features": {
    "isolation": "cloud-hypervisor",
    "docker_inside": true,
    "systemd": true,
    "gpu": false,
    "nested_virt": true,
    "fuse": true,
    "kernel_features": true,
    "burst": true
   },
   "cpu_class": "shared"
  }
 ],
 "storage": {
  "included_disk_gib": 512,
  "disk_gib_month": null,
  "disk_billed_when_stopped": false,
  "snapshot_gib_month": null,
  "paused_ram_billed": false
 },
 "network": {
  "egress_free_gib": 1024,
  "egress_gib": 0.04,
  "ipv4_month": null,
  "ipv4_available": false,
  "internet": {
   "default": "configurable",
   "evidence": [
    {
     "quote": "By default, Sandboxes can make outbound connections to any public IP address.",
     "url": "https://modal.com/docs/guide/sandbox-networking"
    },
    {
     "quote": "prevent the Sandbox from making any outbound connections",
     "url": "https://modal.com/docs/guide/sandbox-networking"
    }
   ]
  }
 },
 "plans": [
  {
   "name": "Starter",
   "fee": 0,
   "fee_is_credit": false,
   "included_usd": 30,
   "per_seat": null,
   "concurrency": 100,
   "max_session_h": 24,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "$30/mo included compute; max 3 seats (no paid extra seats listed); 100 containers, 10 GPU concurrency; egress 1 TiB/mo free; payment method required; overage auto-charged (spend limit optional, hard stop). GPU concurrency 10 (modal.com/pricing, 2026-09-28); non-spec key gpu_concurrency (engine plan.concurrency holds the 100-container cap).",
   "flags": [],
   "gpu_concurrency": 10
  },
  {
   "name": "Team",
   "fee": 250,
   "fee_is_credit": false,
   "included_usd": 100,
   "per_seat": 0,
   "concurrency": 5000,
   "max_session_h": 24,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "$250 fee of which only $100 returns as compute credit; unlimited seats; 5,000 containers, 50 GPU concurrency; egress 10 TiB/mo free (engine network block uses Starter's 1 TiB); static IP proxy; custom domains; environment budgets.",
   "flags": [],
   "gpu_concurrency": 50
  },
  {
   "name": "Enterprise",
   "fee": null,
   "fee_is_credit": null,
   "included_usd": null,
   "per_seat": 0,
   "concurrency": null,
   "max_session_h": 24,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Custom pricing: volume discounts, compute reservations, AWS/GCP marketplace committed spend; egress 100 TiB/mo free; HIPAA compatibility (Enterprise only; no BAA named on the pricing page), SSO, audit logs; 100k+ concurrent sandboxes cited in Modal blog.",
   "flags": [
    "sales"
   ]
  }
 ],
 "free": {
  "monthly_credit": 30,
  "one_time_credit": 0
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "gpu_types": [],
  "snapshot": "mem",
  "pause_resume": false,
  "fork": true,
  "persistent_disk": true,
  "volumes": true,
  "auto_stop_idle": true,
  "max_session_h": 24,
  "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": false,
  "inbound_https": true,
  "custom_domain": true,
  "raw_tcp_inbound": true,
  "egress_allowlist": true,
  "static_egress_ip": true,
  "private_network": null,
  "self_host": false,
  "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": true,
  "memory_snapshot_fork": true,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "isolation": "cloud-hypervisor",
  "image_oci": true,
  "snapshot_auto": false,
  "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,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "static-datacenter",
  "own_agent_api": false,
  "fast_boot": true,
  "open_internet": true,
  "usage_api": null,
  "persist_scope": "folder",
  "persist_path": "Volumes",
  "fuse": true,
  "kernel_features": true,
  "sidecar": true,
  "snapshot_mem": true
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "perf_source": "Two runtimes (VM here, gVisor on the card \"Modal\"): perf is per mode.",
 "knobs": [
  {
   "id": "region_pin",
   "label": "Region pin",
   "kind": "select",
   "options": [
    {
     "value": 1,
     "label": "Any region (no pin, ×1)"
    },
    {
     "value": 1.15,
     "label": "Broad region pin: us / eu / ap (×1.15)"
    },
    {
     "value": 1.75,
     "label": "Narrow region pin: us-east, uk, jp ... (×1.75)"
    }
   ],
   "default": 1,
   "effect": "rate_factor",
   "modes": [
    "on-demand",
    "low-request-burst",
    "vm-sandbox"
   ],
   "why": "Modal multiplies all sandbox resource charges (incl. GPU) by 1.15x for a broad-region pin and 1.75x for a narrow-region pin; data residency (e.g. EU) requires a pin. Applied only to modes without a baked multiplier (region-broad / region-narrow already carry 1.15 / 1.75). VM Sandbox excluded: whether the multiplier applies there is not stated.",
   "source": "https://modal.com/docs/guide/region-selection"
  },
  {
   "id": "idle_tail",
   "label": "Idle time billed before idle_timeout / timeout ends the sandbox (× session hours)",
   "kind": "slider",
   "min": 1,
   "max": 2,
   "step": 0.05,
   "default": 1,
   "unit": "×",
   "options": null,
   "effect": "hours_factor",
   "modes": null,
   "why": "Modal has no paused state: an idle sandbox pays its full request (max(request, actual)) until idle_timeout or timeout (default 5 min, max 24 h) terminates it, or you call terminate(). Default 1 = you terminate as soon as work ends; the 2x ceiling is a judgment call.",
   "source": "https://modal.com/docs/guide/sandboxes"
  }
 ],
 "caveats": [
  "Generally available since 2026-10-01, announced at Modal's Runtime conference: \"Today we’re making VM Sandboxes generally available on Modal, built for those who need to give their agents the power of a full computer.\" (https://modal.com/blog/vm-sandboxes-agent-computers). Early customers (Linear Coding Sessions, Legora evals, Snorkel simulations) launched over 20 million VMs before GA.",
  "Same API and prices as the gVisor sandboxes (card \"Modal\"); split out because the runtimes differ: real Linux 7.2 kernel here (Docker, FUSE, eBPF, systemd, nested cgroups), GPUs only on gVisor.",
  "No GPUs: \"GPU Sandboxes are only supported with runtime=\\\"gvisor\\\"\".",
  "Set runtime=\"vm\" explicitly to get this card's runtime: \"Switch runtimes via the `runtime` parameter, or leave unset to let Modal choose for you.\" (https://modal.com/docs/guide/sandboxes#runtimes, checked 2026-10-14).",
  "Nested virtualization: Team and Enterprise plans only, on request.",
  "Memory snapshots on VMs are no longer documented as invite-only but are alpha: they expire after 7 days, snapshotting terminates the sandbox, restore needs the same instance type, region can't be pinned, and a runtime=\"vm\" sandbox created with _experimental_enable_snapshot=True cannot mount Volumes (https://modal.com/docs/guide/sandbox-snapshots, checked 2026-10-14). Filesystem snapshots work for everyone and include /var/lib/docker.",
  "Sidecars (beta) work on VMs but not with memory bursting: sidecar memory is reserved up front.",
  "Sandboxes run 24 h at most; use filesystem snapshots to continue longer work.",
  "free.monthly_credit ($30) IS the Starter plan's included_usd, so don't subtract both. Team replaces it with $100 included.",
  "Uncapped burst can bill MORE than the requested size (default soft limit is request + 16 cores) and the gVisor guest then reports ceil(limit) CPUs (ComputeSDK DAX 2026-07-17 at SDK defaults: nproc 17). The engine can't model this; set cpu=(req, limit).",
  "Egress at $0.04/GiB is charged only from 2026-10-01 (tracked, not billed, in Sep 2026). The allowance is plan-dependent (Starter 1 TiB, Team 10 TiB, Enterprise 100 TiB) and counts private container-to-container traffic and Cloud Bucket Mount uploads.",
  "GPU sandboxes are preemptible. GPU concurrency is 10 (Starter) and 50 (Team). H100->H200 and A100-40->80 auto-upgrades are billed at the requested type's price.",
  "Enterprise discounts and reservations are unpublished. Startup credits are unpublished. Academic grants are up to $10k one-time (not in free.one_time_credit).",
  "Egress: not charged in September 2026 (usage shown only). From 2026-10-01 egress is $0.04/GiB beyond 1 TiB (Starter) / 10 TiB (Team) / 100 TiB (Enterprise) per workspace per billing cycle; first invoice 2026-11-01. Card uses the current (free) rate; switch egress_gib to 0.04 on 2026-10-01 and add plan egress_free_gib 10240 on Team. https://modal.com/docs/guide/network-egress-billing",
  "GPU concurrency caps: Starter 10, Team 50, Enterprise custom (modal.com/pricing, 2026-09-28). The engine plan concurrency is the container cap (100 / 5,000); a workload with >10 concurrent GPU sandboxes needs Team.",
  "Included compute ($30 Starter / $100 Team) applies to Functions, Sandboxes and Notebooks CPU/memory/GPU; Volumes have their own 1 TiB; Shared Endpoint tokens are billed from the first request (since 2026-09-01). Whether egress overage is covered by included compute is not stated."
 ],
 "sources": [
  "https://modal.com/blog/vm-sandboxes-agent-computers",
  "https://modal.com/blog/runtime-product-update-sandbox-endpoints",
  "https://modal.com/docs/guide/sandboxes#runtimes",
  "https://modal.com/docs/guide/sandbox-sidecars",
  "https://modal.com/docs/guide/sandbox-snapshots",
  "https://modal.com/pricing",
  "https://modal.com/docs/guide/sandbox-resources",
  "https://modal.com/docs/guide/resources",
  "https://modal.com/docs/guide/sandboxes",
  "https://modal.com/docs/guide/region-selection",
  "https://modal.com/docs/guide/preemption",
  "https://modal.com/docs/guide/gpu",
  "https://modal.com/docs/guide/network-egress-billing",
  "https://modal.com/docs/guide/billing",
  "https://modal.com/docs/guide/budgets",
  "https://modal.com/docs/reference/changelog",
  "https://github.com/AnicetNgrt/hpc-sandbox-benchmarks/pull/121",
  "https://github.com/computesdk/benchmarks/tree/main/results/sandbox-dax"
 ],
 "fleet": {
  "default_max_instances": 100,
  "default_max_vcpu": null,
  "default_max_gpus": 10,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": null,
  "tiers": "Starter 100 concurrent containers / 10 GPUs; Team ($250/month) 5,000 containers / 50 GPUs; Enterprise custom.",
  "notes": "Pricing checked against current official page; old 1,000 Team-container claims are stale. 10/50 CPU fleet fits Starter, 300/1,000 Team within quota, not a reservation. GPU count is total GPUs concurrently used, confirmed by scale guide, not GPU-container count. Per-Function hard cap 4,000 distinct from workspace total. No approval SLA. New-account spend ceiling: the Workspace budget maximum grows only after successful incremental charges, and usage stops at the limit. SDK 1.6.0 (2026-09-28) made the v2 Sandbox backend default with 'substantially higher creation rates and concurrency limits for CPU Sandboxes'; Sandbox.create raises ResourceExhaustedError if unschedulable. No numeric creation-rate limit is published; the pricing page still lists 100 (Starter) / 5000 (Team) containers.",
  "sources": [
   "https://modal.com/pricing",
   "https://modal.com/docs/guide/scale"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 5,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 5
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": false,
   "source": "https://modal.com/docs/guide/sandbox-snapshots.md",
   "quote": "Snapshots are triggered from outside the Sandbox, typically just before termination.",
   "note": "Timeout (max 24 h) and idle_timeout terminate the sandbox; no pause/sleep state and no automatic checkpoint. Docs tell you to call snapshot_filesystem() yourself before terminating and restore into a new sandbox.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandbox-snapshots.md",
   "quote": "Sandbox memory snapshots are copies of a Sandbox’s entire state, both in memory and on the filesystem. These Snapshots can be restored later to create a new Sandbox, which is an exact clone of the original Sandbox.",
   "note": "Filesystem snapshots (GA, snapshot_filesystem(), disk only, become Images that boot any number of new sandboxes; 30-day default TTL, ttl=None for indefinite) and directory snapshots (mount into running sandboxes). Memory snapshots (_experimental_snapshot, alpha): RAM + FS, but snapshotting terminates the sandbox, no GPU, 7-day expiry; restore via _experimental_from_snapshot creates a clone. VM-runtime memory snapshots are open (no longer gated) but cannot mount Volumes.",
   "checked": "2026-10-14"
  },
  "harness_api": {
   "value": false,
   "source": "https://modal.com/llms.txt",
   "quote": "Run a background coding agent with OpenCode",
   "note": "Only examples (OpenCode server, Claude Agent SDK, Cursor Cloud Agents) built on generic exec/tunnels; no first-party API to start/stream/resume a harness. Modal is an execution backend for Anthropic's Claude Managed Agents (harness driven by Anthropic, not a Modal API). Sidecars doc mentions 'Separating an agent harness from its execution environment' as a pattern only.",
   "checked": "2026-09-29"
  },
  "egress_allowlist": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandbox-networking.md",
   "quote": "| **IP-range allowlist**        | `outbound_cidr_allowlist`   | Only allows traffic to the listed CIDR ranges (any protocol).  |\n| **Domain allowlist** *(Beta)* | `outbound_domain_allowlist` | Only allows TLS traffic (port 443) to the listed domain names. |",
   "note": "Also block_network=True (no internet). Domain allowlist is SNI-based (beta, wildcards), Modal resolves hostname itself; experimental runtime updates of allowlists without restart.",
   "checked": "2026-09-29",
   "level": "both"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://modal.com/docs/guide/sandbox-networking.md",
   "quote": "TLS traffic is not decrypted, so the `Host` header, URL path, and body are never inspected.",
   "note": "Built-in controls are host/IP only. DIY option: experimental proxy_traffic_via_sidecar routes all port-443 traffic to a user-run Sidecar (alpha, allowlisted workspaces) where you can run e.g. mitmproxy for method/path filtering; that is user-operated, not a provider rule engine.",
   "checked": "2026-09-29"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandbox-networking.md",
   "quote": "Use `inbound_cidr_allowlist` to restrict which IP addresses can connect\n**inbound** to the Sandbox through tunnels and Sandbox Connect Tokens:",
   "note": "Default: no inbound. Ports exposed explicitly (encrypted_ports/h2_ports/unencrypted_ports); Sandbox Connect Tokens give authenticated HTTP/WebSocket access with an unspoofable X-Verified-User-Data header.",
   "checked": "2026-09-29"
  },
  "guest_firewall": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandboxes#runtimes",
   "quote": "**VMs** run the Sandbox in a virtual machine with its own Linux kernel.",
   "note": "Derived for the VM runtime (runtime=\"vm\", GA since 2026-10-01) with root. The gVisor runtime (root, own netstack) does not document iptables support.",
   "checked": "2026-10-14",
   "derived": true
  },
  "secret_proxy": {
   "value": false,
   "source": "https://modal.com/docs/examples/sidecar_secrets_injection.md",
   "quote": "Rather than passing that key into the Sandbox,\nyou can keep it in a separate, trusted container and let that container add it to\noutbound requests",
   "note": "No managed credential-injecting proxy. modal.Secret = env vars injected into the container. A DIY pattern exists: run your own proxy (Caddy/nginx/Envoy/mitmproxy) as a Sidecar holding the Secret, optionally forced via proxy_traffic_via_sidecar; this can cover any HTTP API but you build/operate it; Sidecars are alpha and restricted to allowlisted workspaces.",
   "checked": "2026-09-29"
  },
  "volume_attach": {
   "value": true,
   "source": "https://modal.com/docs/guide/volumes.md",
   "quote": "Volumes are a high-performance distributed file system for Modal applications.",
   "note": "modal.Volume mounted via volumes={...} on Sandbox.create; also CloudBucketMount (S3/R2/GCS, read-write or read_only) and deprecated NetworkFileSystem. Distributed FS with explicit commit/reload semantics, not a block device.",
   "checked": "2026-09-29"
  },
  "volume_shared": {
   "value": true,
   "source": "https://modal.com/docs/guide/volumes.md",
   "quote": "Concurrent modification from multiple containers is supported, but concurrent\nmodifications of the same files should be avoided. Last write wins",
   "note": "Read-write (or read_only mount option); sub_path mounts isolate sessions on one Volume; v2 volumes: concurrent writes from hundreds of containers. Changes visible to others only after commit + reload. Bucket mounts also shareable.",
   "checked": "2026-09-29"
  },
  "docker_inside": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandboxes#runtimes",
   "quote": "Use the VM runtime to run Docker in a Sandbox. Start dockerd as the Sandbox entrypoint and run containers with sb.exec.",
   "checked": "2026-10-14"
  },
  "anti_bot": {
   "value": false,
   "source": "https://modal.com/pricing",
   "quote": "Modal is a platform for running AI workloads in the cloud with minimal configuration. Key use cases include AI model training and inference, high-performance batch jobs, and sandboxed code execution.",
   "note": "not offered: outside the product's scope. Modal is a general compute/sandbox platform, not a browser-automation/scraping product; no stealth or fingerprint-evasion feature is documented.",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://modal.com/pricing",
   "quote": "Modal is a platform for running AI workloads in the cloud with minimal configuration. Key use cases include AI model training and inference, high-performance batch jobs, and sandboxed code execution.",
   "note": "not offered: outside the product's scope. No CAPTCHA-solving feature or API is documented anywhere in Modal's docs/pricing.",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "static-datacenter",
   "source": "https://modal.com/docs/guide/proxy-ips.md",
   "quote": "Proxies are a secure tunnel between Apps and exit nodes with static IPs. You can allow-list those static IPs in your network firewall...",
   "note": "Team/Enterprise-plan Proxy feature gives fixed outbound datacenter IPs (WireGuard exit nodes); default (no Proxy) egress uses Modal's shared cloud-provider datacenter IP ranges, which vary by run.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": true,
   "corrected_from": false,
   "source": "https://modal.com/docs/guide/sandbox-snapshots",
   "quote": "Create a new Sandbox using the snapshot as the image parameter: modal.Sandbox.create(image=image, app=app)",
   "note": "snapshot_filesystem() runs on a live sandbox (the docs’ examples terminate it only afterwards), and any number of new sandboxes can start from the snapshot: a disk-level clone without stopping the original. Memory is not copied by this path; memory snapshots (alpha) copy RAM but terminate the source sandbox.",
   "checked": "2026-10-14"
  },
  "wake_on_request": {
   "value": false,
   "source": "https://modal.com/docs/guide/sandboxes.md",
   "quote": "Sandboxes can also be automatically terminated after a period of inactivity - you can do this by setting the `idle_timeout` parameter.",
   "note": "Sandboxes have no sleep/paused state: idle_timeout or timeout fully terminates the Sandbox (Finished state); there is no mechanism for a stopped sandbox to wake automatically on an incoming request. Consistent with card caveat 'No pause/stopped state.'",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://modal.com/docs/guide/resources.md",
   "quote": "Physical core (2 vCPU equivalent)... You pay for max(request, actual). ... a default request of 0.125 CPU cores and 128 MiB of memory",
   "note": "CPU/memory are set via request/limit parameters at Sandbox.create() time (with elastic bursting up to a limit); no documented API to change a running Sandbox's resource request/limit after creation without recreating it. The Sandbox SDK reference (Sandbox.md) has no update/resize method.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://modal.com/pricing",
   "quote": "Modal is a platform for running AI workloads in the cloud with minimal configuration. Key use cases include AI model training and inference, high-performance batch jobs, and sandboxed code execution.",
   "note": "not offered: outside the product's scope. Modal is an execution backend that lets customers run their own agents/harnesses (examples: OpenCode, Claude Agent SDK, Cursor Cloud Agents); it does not ship its own first-party browser/computer-use/research task agent.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": false,
   "source": "https://modal.com/docs/examples/mcp_server_stateless.md",
   "quote": "This example demonstrates how to deploy a simple MCP server on Modal with FastMCP.",
   "note": "Modal's MCP-related material is an example of hosting a user-built MCP server on Modal, not a first-party MCP server Modal ships to let clients control Modal Sandboxes/Apps themselves. No such control-plane MCP server is documented in the CLI or guide sections of llms.txt.",
   "checked": "2026-09-30"
  },
  "lang_node": {
   "value": true,
   "source": "https://modal.com/llms.txt",
   "quote": "Modal offers official SDKs in Python, Go, and JavaScript/TypeScript, along with a fully-featured CLI for interacting with the platform.",
   "note": "First-party JS/TypeScript SDK (modal.com/docs/sdk/js/latest/intro.md, beta) exposes Sandbox/Function/etc.; Node.js also runs inside sandboxes generically via custom images (e.g. 'Run Node.js, Ruby, and more in a Sandbox' example).",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://modal.com/docs/guide/security.md",
   "quote": "Compute jobs at Modal are containerized and virtualized using gVisor... Sandboxes may also run on Modal's secure VM runtime.",
   "note": "not offered: outside the product's scope. Modal is a fully managed multi-tenant serverless platform running on its own infrastructure/regions; no self-hosted-in-your-cloud-account (BYOC) deployment option is documented on the security, pricing, or enterprise pages.",
   "checked": "2026-09-30"
  },
  "eu_data_residency": {
   "value": true,
   "source": "https://modal.com/docs/guide/data-residency.md",
   "quote": "You can select the container and routing regions for most Modal services... For a full list of available regions, please visit our region selection documentation page.",
   "note": "Region selection documents an 'eu' broad region (European Economic Area) with eu-west/eu-north/eu-south narrow regions; Sandboxes support container-region pinning to 'eu' (region-selection.md), which the card's region-broad/region-narrow modes price at 1.15x/1.75x.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": true,
   "corrected_from": false,
   "source": "https://modal.com/docs/guide/volumes",
   "quote": "Create a named, persistent modal.Volume. ... For Volumes, changes are persisted by background commits that run every few seconds while the Sandbox executes, with a final commit when the Sandbox terminates.",
   "note": "A default Sandbox's own root disk is ephemeral (wiped on terminate; no pause state), so the card's plain 'no persistent disk' default is right about the root FS. But Volumes (already features.volumes=true) are first-party attachable persistent disks: they outlive the Sandbox and can be remounted into a new Sandbox with the same files. That makes persistent_disk true (opt-in via Volume attach; the ephemeral root FS remains the default).",
   "checked": "2026-09-30"
  },
  "pause_resume": {
   "value": false,
   "source": "https://modal.com/docs/guide/sandboxes",
   "quote": "If you need a Sandbox to run for more than 24 hours, we recommend using Filesystem Snapshots to preserve its state, and then restore from that snapshot with a subsequent Sandbox.",
   "note": "No pause API on VMs: keep state with a filesystem snapshot and start a new sandbox from it (new sandbox, disk only).",
   "checked": "2026-10-02"
  },
  "memory_snapshot_fork": {
   "value": true,
   "corrected_from": false,
   "source": "https://modal.com/docs/guide/sandbox-snapshots",
   "quote": "The new Sandbox will be a duplicate of your original Sandbox. All running processes will still be running, in the same state as when they were snapshotted, and any changes made to the filesystem will be visible.",
   "note": "Memory Snapshots (alpha, experimental API _experimental_snapshot / _experimental_enable_snapshot) capture RAM+FS and Sandbox._experimental_from_snapshot() clones them into a new, running Sandbox with processes' memory state intact. No longer documented as on-request for VMs (checked 2026-10-14). Snapshotting terminates the source sandbox, so this is a clone-on-restore, not a fork of a still-running original.",
   "checked": "2026-10-14"
  },
  "nested_virt": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandboxes#runtimes",
   "quote": "Nested virtualization is also available on the Team and Enterprise plans; to request access, reach out via Slack or email us at support@modal.com.",
   "note": "Team and Enterprise plans only, on request.",
   "checked": "2026-10-14"
  },
  "ssh": {
   "value": true,
   "corrected_from": false,
   "source": "https://modal.com/llms-full.txt",
   "quote": "This assumes you have a rsa keypair in ~/.ssh/id_rsa{.pub}, this is a bare-bones example letting you SSH into a Modal container. ... subprocess.Popen([\"/usr/sbin/sshd\", \"-D\", \"-e\"]) with modal.forward(port=22, unencrypted=True) as tunnel: ... connection_cmd = f'ssh -p {port} root@{hostname}'",
   "note": "Officially documented pattern: install openssh-server in the image, run sshd, and expose it via modal.forward's raw-TCP tunnel (already features.raw_tcp_inbound=true) to get a real `ssh user@host -p port` session. It's DIY (you supply sshd + keys, not a managed 'SSH into your sandbox' button), so medium confidence rather than high, but it is a first-party documented capability, not absent -- corrected from false to true.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://modal.com/docs/examples/computer_use_vnc",
   "quote": "By default, Browser Use launches Chromium headless. However, we want to watch the browser in real time. In each Sandbox, Xvfb provides a virtual display, x11vnc serves it over VNC, and websockify bridges the stream into the noVNC page that the UI embeds.",
   "note": "The only VNC/desktop capability found is a user-built example (installs Xvfb/x11vnc/websockify themselves inside a generic Linux Sandbox) -- not a managed desktop product. No first-party 'desktop' offering.",
   "checked": "2026-09-30"
  },
  "browser": {
   "value": false,
   "source": "https://modal.com/docs/examples/computer_use_vnc",
   "quote": "This example builds one with Browser Use. ... The agent drives Chromium inside a Modal Sandbox running in a VM",
   "note": "Chromium is not a managed/offered browser -- it's installed and driven by the user's own code (Browser Use) inside a generic Sandbox, per the example. No first-party managed browser.",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": false,
   "source": "https://modal.com/docs/examples/computer_use_vnc",
   "quote": "Computer-use agents are LLMs that can interact with a web browser in a loop. Rather than calling a fixed set of APIs, they look at a rendered page or screen, decide what to click or type next, take that action, and look again. This example builds one with Browser Use.",
   "note": "'Computer Use Vnc' is a code example showing how to wire up a third-party computer-use agent (Browser Use) yourself on top of generic Sandbox + Xvfb/VNC; Modal ships no first-party computer-use/screenshot-click API.",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://modal.com/docs/guide/sandbox-networking",
   "quote": "Sandboxes are built to be secure-by-default, meaning that a default Sandbox has no ability to accept incoming network connections or access your Modal resources.",
   "note": "Inbound access is only via TLS tunnels/hostnames (modal.forward, encrypted_ports, Connect Tokens) or workspace-private i6pn IPv6 for clusters; there is no per-sandbox public IPv4 assigned. The 'static IP' feature (Proxies, already features.static_egress_ip=true) is for outbound traffic only ('Proxies are a secure tunnel between Apps and exit nodes with static IPs'), not an inbound public IPv4 on the machine.",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://modal.com/llms-full.txt",
   "quote": "First, we define a Modal container Image with OpenCode installed. ... .run_commands(\"curl -fsSL https://opencode.ai/install | bash\")",
   "note": "'Run OpenCode in a Modal Sandbox' is a customer-authored example that installs OpenCode itself via a shell command in a custom Image; Codex/Claude Code/OpenCode docs elsewhere are about pointing those external CLIs at a Modal-hosted model endpoint, not about Modal preinstalling/offering coding-agent harnesses as sandbox templates.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://modal.com/docs/guide/images",
   "quote": "By default, Modal Functions and Sandboxes run in a Debian Linux environment with a basic Python installation of the same minor version `v3.x` as your local Python interpreter.",
   "note": "No Windows runtime or Windows base images are offered anywhere in the docs; Sandboxes/Functions are Linux containers/VMs (Debian-based, or custom OCI Linux images) only.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://modal.com/docs/guide/images",
   "quote": "By default, Modal Functions and Sandboxes run in a Debian Linux environment",
   "note": "Modal is a Linux-container/VM compute platform (gVisor or Linux-kernel VM runtimes); no macOS machines/images are offered. Plainly outside the product, matching the 'macOS for a GPU cloud' example in the field definitions.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://modal.com/docs/reference/modal.Image#from_registry",
   "quote": "The image must be built for the `linux/amd64` platform.",
   "note": "Docs require linux/amd64 for custom images and never mention arm64/aarch64/Graviton/Apple-silicon guest CPUs anywhere in the docs, GPU guide, or pricing page; the only architecture named across the full llms-full.txt corpus is x86_64/amd64 (e.g. flash-attn wheels are linux_x86_64, binaries are linux-amd64). Treated as x86_64-only.",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": false,
   "source": "https://modal.com/llms-full.txt",
   "quote": "Most interactions with Modal are well-described in a gRPC API, and occur through modal, our open-source command-line tool and Python client library.",
   "note": "Only the client (CLI/SDK) is open; the actual compute platform (workers, scheduler, storage) is Modal's own multi-tenant SaaS with no on-prem/self-hosted or BYOC deployment option documented anywhere (Enterprise plan mentions AWS/GCP marketplace billing, not deploying Modal's control plane into a customer's account).",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://modal.com/llms-full.txt",
   "quote": "occur through modal, our open-source command-line tool and Python client library.",
   "note": "Only the `modal` CLI/Python client is open-source; the core product -- the compute platform itself (scheduler, workers, storage, billing) -- is closed-source and only usable as Modal's hosted service. No OSI license covers the core product.",
   "checked": "2026-09-30"
  },
  "cpu_class": {
   "value": {
    "on-demand": "dedicated",
    "low-request-burst": "shared"
   },
   "source": "https://modal.com/docs/guide/sandbox-resources",
   "quote": "Sandboxes can burst beyond their CPU and memory requests when additional resources are available on the underlying host. Your request guarantees a minimum level of resources, but when spare capacity exists, your Sandbox can use more. You pay for `max(request, actual)`.",
   "note": "Modal guarantees the requested number of physical cores ('access to at least N cores', modal.com/docs/guide/resources) -- i.e. reserved/dedicated capacity up to the request, with additional cores above that available only opportunistically (soft limit request+16 cores, throttled beyond it) and billed via max(request,actual). For on-demand/region-*/vm-sandbox modes the request is set to the workload size, so the guaranteed (dedicated) portion covers the whole workload. For low-request-burst the request is deliberately set to the minimum (0.125 core) and the card's own note says burst capacity is NOT guaranteed ('it needs spare host capacity ... the workload may be throttled'), so most of that mode's effective vCPUs are best-effort/shared rather than reserved.",
   "checked": "2026-09-30"
  },
  "fast_boot": {
   "value": true,
   "source": "https://www.computesdk.com/benchmarks",
   "quote": "burst of 100: p95 1043 ms, 100% started",
   "note": "ComputeSDK sandbox benchmark 2026-09-25",
   "checked": "2026-09-25"
  },
  "usage_api": {
   "value": null,
   "source": "https://modal.com/docs/guide/billing",
   "quote": "The card lists billing and budgets guides as sources but does not provide specific evidence of a REST API, SDK method, or CLI command that returns per-sandbox or per-tag billable usage. Modal's pricing page and billing docs do not document a programmatic usage/metrics endpoint in the available card ",
   "note": "Modal ships a Python SDK and CLI but the card's sources do not cite a specific usage_api endpoint, method, or CLI command. Verification requires checking modal.com/docs/guide/billing and the SDK reference directly for methods like get_usage(), usage API endpoints, or billing export formats. The card's 'budgets' feature (plan-level spend limits) is documented but distinct from usage reporting.",
   "confidence": "low",
   "checked": "2026-10-01"
  },
  "persist_scope": {
   "value": "folder",
   "source": "https://modal.com/docs/guide/volumes",
   "quote": "Create a named, persistent modal.Volume. ... For Volumes, changes are persisted by background commits that run every few seconds while the Sandbox executes, with a final commit when the Sandbox terminates.",
   "note": "Only Volumes survives a stop; the rest of the filesystem (packages installed elsewhere) resets.",
   "checked": "2026-10-01"
  },
  "isolation": {
   "value": "cloud-hypervisor",
   "source": "https://modal.com/blog/vm-sandboxes-agent-computers",
   "quote": "Starting from the Rust-based Cloud Hypervisor project, we layered on a half dozen innovations spanning our host filesystems, lazy image loading, memory bursting, and snapshotting tech.",
   "checked": "2026-10-02"
  },
  "fuse": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandboxes#runtimes",
   "quote": "Use the VM runtime for workloads that expect a full Linux environment, such as running Docker inside the Sandbox, mounting FUSE filesystems, or managing resources with nested cgroups.",
   "checked": "2026-10-14"
  },
  "kernel_features": {
   "value": true,
   "source": "https://modal.com/blog/product-updates-sidecars-models-dashboard",
   "quote": "They run a real Linux kernel, so they can support workloads that run Docker containers within the Sandbox, or that require Linux features like eBPF, systemd, cgroups, or custom filesystem mounts.",
   "checked": "2026-10-02"
  },
  "gpu": {
   "value": false,
   "source": "https://modal.com/docs/guide/sandboxes#runtimes",
   "quote": "GPU Sandboxes are only supported with `runtime=\"gvisor\"`.",
   "checked": "2026-10-14"
  },
  "snapshot": {
   "value": "mem",
   "source": "https://modal.com/docs/guide/sandbox-snapshots",
   "quote": "Sandboxes that specify `runtime=\"vm\"` cannot mount Volumes when created with `_experimental_enable_snapshot=True`.",
   "note": "The VM-specific gating sentence (\"only available to a set of enabled customers\") is gone from the page; the only VM-specific Memory Snapshot limitation left is no Volumes. Memory snapshots (RAM + FS) are alpha (\"A number of known limitations currently apply\"), expire after 7 days and terminate the source sandbox. Filesystem and directory snapshots (GA, /var/lib/docker included) remain for everyone.",
   "checked": "2026-10-14"
  },
  "sidecar": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandbox-sidecars",
   "quote": "Sandbox Sidecars let you run additional containers alongside your main Sandbox container, on the same host.",
   "note": "Beta. Works on VMs, but \"cannot be combined with memory bursting\": reserve sidecar memory up front (vm_sidecar_memory_reserve_mib).",
   "checked": "2026-10-02"
  },
  "hipaa": {
   "value": true,
   "source": "https://modal.com/pricing",
   "quote": "HIPAA compatibility",
   "note": "Enterprise plan only: the pricing table ticks HIPAA compatibility for Enterprise, not Starter or Team. The pricing page does not mention a BAA.",
   "checked": "2026-10-14"
  },
  "burst": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandbox-resources",
   "quote": "Sandboxes can burst beyond their CPU and memory requests when additional resources are available on the underlying host. Your request guarantees a minimum level of resources, but when spare capacity exists, your Sandbox can use more. You pay for `max(request, actual)`.",
   "note": "Billed per second for max(request, used): a sandbox can use more than it reserved. Bursting is best effort, not guaranteed capacity.",
   "checked": "2026-10-02"
  },
  "snapshot_mem": {
   "value": true,
   "source": "https://modal.com/docs/guide/sandbox-snapshots",
   "quote": "Sandbox memory snapshots are copies of a Sandbox’s entire state, both in memory and on the filesystem.",
   "note": "Alpha, experimental API (_experimental_enable_snapshot / _experimental_snapshot); no longer documented as invite-only for runtime=\"vm\".",
   "checked": "2026-10-14"
  }
 },
 "locations": [
  {
   "country": "US",
   "state": "VA",
   "city": null,
   "provider_region": "us-east",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": null,
   "city": null,
   "provider_region": "us-central",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": null,
   "city": null,
   "provider_region": "us-south",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "OR",
   "city": null,
   "provider_region": "us-west",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IE",
   "state": null,
   "city": "Dublin",
   "provider_region": "eu-west",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "IN",
   "state": null,
   "city": "Mumbai",
   "provider_region": "ap-south",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": "VIC",
   "city": "Melbourne",
   "provider_region": "ap-melbourne",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "JP",
   "state": null,
   "city": null,
   "provider_region": "jp",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "AU",
   "state": null,
   "city": null,
   "provider_region": "au",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "GB",
   "state": null,
   "city": null,
   "provider_region": "uk",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "CA",
   "state": null,
   "city": null,
   "provider_region": "ca",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "MX",
   "state": null,
   "city": null,
   "provider_region": "mx",
   "self_serve": true,
   "choosable": true
  }
 ],
 "locations_source": "https://modal.com/docs/guide/region-selection",
 "locations_quote": "Modal offers different levels of granularity for container regions. Broad... us, eu, ap. Narrow: us-east, us-central, us-south, us-west, eu-west, eu-north, eu-south, ap-northeast, ap-southeast, ap-south, ap-melbourne, jp, au, uk, ca, sa, af, mx",
 "locations_checked": "2026-10-01"
}