Modal Sandboxes are short-lived Linux containers for running untrusted code inside Modal's serverless platform. You create one from Python, JavaScript or Go, run commands over an API, and either let it expire or terminate it.

There is no paused or stopped state. A sandbox runs, then it is finished; local state survives only through a filesystem snapshot, a memory snapshot or a Volume, and every restore produces a new sandbox.

It sits beside Modal's Functions, Inference and Training products on one workspace and one bill.

At a glance

Who it is forTeams already on Modal, or building high-volume code execution and RL rollouts, who want sandboxes next to their Functions and GPUs.
IsolationgVisor by default, with a KVM-backed VM runtime opt-in for Docker, FUSE or nested cgroups. Every container runs as root. GPU sandboxes are gVisor only. Up to 250 sidecar containers per sandbox give a second boundary for credentials or a proxy.
SizesNo fixed sizes: fractional physical cores (1 core = 2 vCPUs, as documented) and MiB of memory, with a default of 0.125 core and 128 MiB. Sandboxes can burst above the request and are billed on the higher of request and actual use. Disk is a fixed 512 GiB quota, not resizable. The maximum shape is not published. Container regions are selectable at 1.15× (broad) or 1.75× (narrow); GPU sandboxes are preemptible.

Fits well, fits badly

Our reading of the sourced material on this page, not a provider claim.

Fits well

  • High-volume, short-lived code execution: Sandboxes start in about a second and the platform claims over 10,000 creates a second.
  • A GPU sandbox for inference or training-adjacent work: up to 8 GPUs per container, priced per GPU-second.
  • A team already on Modal: sandboxes share the workspace, Images, Volumes and billing with Functions.
  • Splitting trust with sidecars: up to 250 extra containers per sandbox for a proxy or credentials.

Fits badly

  • An agent that needs to pause and resume: there is no paused state, and a memory snapshot terminates the source.
  • An always-on box: the lifetime cap is 24 hours and a running idle sandbox bills its full request.
  • A cheap always-on dev box: $347 a month documented, $555 on the measured CPU reading.
  • A client-facing URL: inbound is closed by default and there is no built-in desktop or browser.

How it bills

ModelPer-second usage on one workspace bill, with no Sandbox-specific plan or fee.
MeterCPU $0.141912 per core-hour and memory $0.024012 per GiB-hour, billed on the higher of request and actual use. Sandboxes pay the non-preemptible rate, 3× list. Disk is billed as memory at a 20:1 ratio.
While stoppedNothing, because there is no stopped state. A running sandbox bills its request even when idle; a terminated one bills nothing.
Plan feeStarter is $0 plus compute with $30 a month of credits; Team is $250 plus compute with $100 of credits; Enterprise is custom.
MinimumA payment method is required to use Modal. Minimum request is 0.125 core and 128 MiB.

How Modal lets you try before paying is on Trials and free tiers.

Where it stands out

  • About one-second starts, with over 10,000 creates a second claimed.
  • GPU sandboxes up to 8 GPUs, priced per GPU-second.
  • Three snapshot kinds, including memory, plus automatic exit snapshots.
  • Sidecars give a second isolation boundary inside one sandbox.
  • Shares Images, Volumes, secrets and billing with Modal Functions.

Using it without writing code

DashboardAn operator console: a Sandboxes tab per App with CPU, memory, pressure and exit-reason charts, plus billing and invoices.
Without codeNo. Every creation path is SDK code; modal shell attaches to a sandbox that already exists.
SignupA payment method is required to use Modal. Starter is $0 plus compute with 3 seats and $30 a month of credits.
Docs and supportExtensive docs with llms.txt, Python, JavaScript and Go SDKs, and a CLI. Support is community Slack on all plans, a private Slack and embedded engineers on Enterprise; no response times published.

The company

From the profile's company section: the legal entity, who funds it, and what a buyer can check before signing.

Legal entity

Modal Labs, Inc., a Delaware corporation.

“Modal Labs, Inc., a Delaware corporation” modal.com docs-confirmed

Founded and leadership

2021, by Erik Bernhardsson (CEO) and Akshat Bubna (CTO).

“When we started Modal five years ago” modal.com docs-confirmed

Funding

$750M Series D at a $15.75B post-money valuation in October 2026, led by Accel; over $1.2B raised in total.

“we've raised a $750M Series D at a $15.75B post-money valuation. Accel led the round.” modal.com docs-confirmed

Headcount

200+, company-stated in October 2026. TechCrunch estimated about 150 three weeks earlier.

“Our team of 200+” modal.com docs-confirmed

Status and SLA

Sandboxes showed 100% over 30 days, 99.983% over 60 and 99.989% over 90. No public SLA document; the SLA is attached to a Service Order.

“If Customer has purchased a subscription plan that includes Modal's uptime and support SLAs, Modal's Service Level Agreement will be attached to the Service Order.” modal.com docs-confirmed

Certification

SOC 2 Type II, with the current report covering September–December 2025. HIPAA is Enterprise only.

“Modal has completed its SOC2 Type II certification, and engages a third-party to perform penetration tests on a regular basis.” modal.com docs-confirmed

Price changes

No rate-change clause and no published notice period for list prices.

“Customer shall pay to Modal the fees as set forth in each applicable Service Order(s)” modal.com docs-confirmed

Caveats and contradictions

Shown as the research found them. A contradiction means the provider's own pages disagree; an open question means the answer is not published.

  1. 01

    The pricing page says you never pay for idle, and the sandbox meter says you do Contradiction

    The headline describes scale-to-zero Functions. A sandbox with no active command bills its full request until it is terminated.

    “You never pay for idle resources — just actual compute time, by the CPU cycle.”
    Modalpricing-page
    “Sandboxes bill max(request, actual) by the second.”
    Modalpricing-page
  2. 02

    Sandbox disk cannot be increased, except where a 3 TiB maximum is published Contradiction

    The sandbox resources page says disk cannot be increased; the resources guide documents an ephemeral_disk parameter with a 3.0 TiB maximum. The most likely reading is that the parameter belongs to Functions, so 512 GiB is the sandbox ceiling.

    “Sandboxes have the same disk limits as other Modal containers, and their disk size cannot be increased.”
    Modaldocs-confirmed
    “The maximum disk size is 3.0 TiB”
    Modaldocs-confirmed
  3. 03

    An EU region does not keep snapshots in the EU Contradiction

    Sandboxes can be pinned to eu at 1.15×, but application logs and snapshots you create are stored in the United States whatever region the container runs in.

    “Sandboxes accept the same region= argument on Sandbox.create”
    Modaldocs-confirmed
    “Snapshots you explicitly create”
    Modaldocs-confirmed
  4. 04

    One core is two vCPUs in the docs and one guest CPU in a third-party measurement Contradiction

    Modal prices CPU per physical core and equates a core to two vCPUs. A third-party benchmark reports that cpu=N gives a guest that sees N CPUs. The two readings differ by 1.6× on every cost estimate.

    “The cpu parameter specifies physical CPU cores (1 core = 2 vCPUs), and memory specifies MiB”
    Modaldocs-confirmed
    “1 Modal core = 1 vCPU”
    Modal (battleships.dev, built by the Boat team)third-party
  5. 05

    There is no pause Open question

    A sandbox runs or it is finished. The nearest equivalent is a memory snapshot, which terminates the source, restores into a new sandbox and expires after seven days.

  6. 06

    Memory snapshots are alpha and picky Open question

    They cannot run with GPUs, restore only on the same instance type, cannot be taken while a command runs, and cannot have their seven-day expiry extended.

  7. 07

    Snapshot storage has no published price Open question

    Filesystem, directory, memory and exit snapshots all bill as storage, and none of the pricing page, the snapshots guide or the billing guide gives a rate.

  8. 08

    No SSH and no control-plane MCP server Open question

    modal shell is a CLI session, not an SSH daemon, and the only MCP material in the docs is an example of running an MCP server inside a sandbox.

Sources

The three shared workloads

List-price illustrations, not quotes

A · 1,000 short tasks

$39.66, or $63.31 on the measured core

2 vCPU (1 documented core) / 4 GiB, deleted after each task

  • CPU166.67 h × 1 core × $0.141912$23.65
  • Memory166.67 h × 4 GiB × $0.024012$16.01
  • If a cpu unit is one guest CPU rather than two vCPUs, the same shape needs 2 cores and costs $63.31 — the 1.6× swing.
  • On Starter the $30 monthly credit leaves $9.66 of cash.

The CPU unit is disputed: Modal documents 1 core = 2 vCPUs, a third-party benchmark measures one guest CPU per unit. Both figures are shown.

B · One always-on box

$347.42, or $554.61 on the measured core

4 vCPU (2 documented cores) / 8 GiB, 730 h

  • CPU730 h × 2 cores × $0.141912$207.19
  • Memory730 h × 8 GiB × $0.024012$140.23
  • The measured reading of the CPU unit gives $554.61.
  • The maximum lifetime is 24 hours, so an always-on box is at least 31 sandboxes; the hourly price is the same.
  • 50 GiB of disk is below the 160 GiB that would raise the memory request.

C · Three hours a day

$21.42, or $34.19 on the measured core

2 vCPU (1 documented core) / 4 GiB, 90 running hours, terminated between sessions

  • CPU90 h × 1 core × $0.141912$12.77
  • Memory90 h × 4 GiB × $0.024012$8.64
  • There is no stopped state, so the 630 idle hours are free only if you terminate and recreate.
  • Left running around the clock, the same sandbox bills $171.33.