E2B vs Daytona vs Modal: 1,200 sandbox starts compared
In our benchmark, E2B took 264 ms to create a sandbox and finish its first command. Daytona took 819 ms and Modal took 929 ms. Those are medians from 300 starts per provider on 12 October 2026. Lizard took 228 ms in the same test.
We sell Lizard Sandboxes. This is our benchmark, and the results reflect our runner and the settings below. We publish the raw measurements and test script so you can check them. We also cover where E2B, Daytona and Modal offer things Lizard does not.
E2B vs Daytona vs Modal: the results
Each row covers 300 starts from one runner in US East. We started the clock before the create call and stopped it when a Python command returned a known string. All 1,200 starts succeeded. We deleted each sandbox after its test.
| Provider | Median | Average | p90 | p95 | p99 | Slowest |
|---|---|---|---|---|---|---|
| Lizard | 228 ms | 239 ms | 265 ms | 310 ms | 477 ms | 693 ms |
| E2B | 264 ms | 323 ms | 487 ms | 603 ms | 736 ms | 1,260 ms |
| Daytona | 819 ms | 945 ms | 1,370 ms | 1,671 ms | 2,332 ms | 5,532 ms |
| Modal | 929 ms | 983 ms | 1,290 ms | 1,422 ms | 1,593 ms | 1,932 ms |
The median describes the middle of this sample. At p95, about 95% of the recorded starts finished within that time: 603 ms for E2B and 1,671 ms for Daytona. These percentiles describe our test; they do not predict how many slow starts your app will have each day.
The reported 95% confidence intervals for the medians are 225 to 230 ms for Lizard, 260 to 269 ms for E2B, 789 to 856 ms for Daytona and 914 to 940 ms for Modal. They describe uncertainty within this sample. Different regions, resources, dates or traffic could change the results.
What the create call measures
A create call can return before a sandbox can run code. The split between that call and the first command varies by provider:
| Provider | Median create call | Median first command after create | Median total |
|---|---|---|---|
| Lizard | 100 ms | 128 ms | 228 ms |
| E2B | 162 ms | 102 ms | 264 ms |
| Daytona | 728 ms | 82 ms | 819 ms |
| Modal | 45 ms | 883 ms | 929 ms |
We calculate each median on its own, so the create and command medians do not have to add up to the median total. The command phase also includes the script's local logging overhead after create returns.
Modal returned from create in 45 ms, the lowest median in the test. Its next command took another 883 ms at the median. Daytona spent most of its time in create, then returned the first command in 82 ms.
For an agent waiting to run code, the total matters. A create-only test would put Modal first; this test put it last. Neither number alone measures how fast code runs once the sandbox is ready.
E2B vs Daytona
The median wait was 264 ms on E2B and 819 ms on Daytona, about three times as long. Daytona also had longer slow starts. Its p99 was 2,332 ms and its maximum was 5,532 ms, compared with E2B's 736 ms and 1,260 ms.
Daytona's first command took 82 ms at the median once create returned, the shortest command time here. That does not make it the fastest to reach a result: its create call took 728 ms.
E2B and Daytona list the same CPU and memory rates: $0.0504 per vCPU-hour and $0.0162 per GiB-hour, billed by the second. Their default sizes differ. Daytona starts with 1 vCPU, 1 GiB of memory and 3 GiB of disk. E2B's base-template docs list 2 vCPU and 512 MiB, while its pricing page labels 2 vCPU and 4 GiB as the default. Check the template you plan to use before you estimate its cost. See E2B pricing and Daytona pricing.
E2B uses Firecracker microVMs, each with its own kernel. Daytona uses Linux containers by default and also offers Linux VM and Windows sandboxes. E2B publishes its code under Apache-2.0. Daytona moved core development to a private codebase in June 2026 and archived its public repository. That makes E2B the option to examine if you need to inspect or self-host the current sandbox code. Our E2B sandbox guide covers its plans and limits.
Daytona advertises creation from code to execution in under 90 ms. Our create-call median was 728 ms. We measured through its public API from an outside client; the published figure may use a different path or setup. These results do not establish why the numbers differ.
Daytona vs Modal
Daytona had the lower median, at 819 ms against Modal's 929 ms. Modal had shorter slow starts: its p99 was 1,593 ms and its maximum was 1,932 ms, against Daytona's 2,332 ms and 5,532 ms.
Modal supports gVisor containers and VMs with their own kernel. It made VM Sandboxes generally available on 1 October 2026. We left the runtime choice to Modal, so this test does not compare the two runtimes. See the Modal Sandboxes guide and VM Sandboxes announcement.
Modal's own benchmark reports a median below half a second from create request to readiness for user code. Our test took 929 ms through the first command's output. We used region="us-east"; our test does not show whether that choice affected start time. Modal charges 1.75 times its base rate for that region setting and limits placement to that region. Its region guide explains the options.
Daytona charges $0.0504 per vCPU-hour. Modal sandbox pricing starts at $0.1419 per physical core-hour, with one physical core equal to two vCPUs. Modal's default request is 0.125 CPU cores and 128 MiB of memory. It bills the higher of the resources requested and used. Compare equivalent sizes, memory charges and region fees before choosing on price.
E2B vs Modal
E2B returned the first result sooner: 264 ms at the median, compared with 929 ms on Modal. Modal took about 3.5 times as long. At p99, E2B took 736 ms and Modal took 1,593 ms.
E2B says loading a sandbox from a snapshot takes about 80 to 150 ms. We measured a 162 ms median create call through its public API. Those timings cover different work, so our result does not verify its snapshot-load claim. The template docs describe that process.
If you are comparing Modal and Daytona as E2B alternatives, both offer GPU sandboxes. Modal also offers region choice across the US, Europe and Asia-Pacific. Its Starter plan has no monthly fee and includes $30 of compute each month. E2B's Hobby plan includes a one-time $100 credit; Pro costs $150 a month plus usage. E2B's faster start in this test will not settle the choice if your workload needs a GPU. See Modal pricing and E2B billing and limits.
Lizard's results across five runs
Lizard had the lowest result in each column of the main test. Its slowest start took 693 ms, below E2B's p99 of 736 ms. Lizard Sandboxes use Firecracker microVMs with separate kernels and start from a prepared pool.
We ran the test five times between 8 and 12 October, on three dates. The main results above come from the first run on 12 October:
| Run | Lizard | E2B | Daytona | Modal |
|---|---|---|---|---|
| 8 Oct 2026 | 302 ms | 261 ms | 884 ms | 898 ms |
| 10 Oct 2026, run 1 | 238 ms | 270 ms | 796 ms | 865 ms |
| 10 Oct 2026, run 2 | 229 ms | 275 ms | 785 ms | 869 ms |
| 12 Oct 2026, run 1 | 228 ms | 264 ms | 819 ms | 929 ms |
| 12 Oct 2026, run 2 | 233 ms | 263 ms | 793 ms | 918 ms |
E2B was faster than Lizard on 8 October. By 10 October, Lizard's median create call had fallen from 210 ms to 104 ms, and Lizard had the lowest total median in the four later runs. Daytona's median stayed below Modal's in all five. These runs show how the results varied during that period; they do not establish long-term performance.
When to choose E2B, Daytona or Modal
Some requirements matter more than the start-time gap. E2B, Daytona and Modal each cover uses that Lizard does not.
| Requirement | Provider to consider | What to check |
|---|---|---|
| Open source or self-hosting | E2B | Its sandbox code is Apache-2.0. Daytona's current core is private; Lizard and Modal do not publish their platform code. |
| Many new sandboxes per minute | E2B, Daytona or Modal | Compare creation rates and concurrent sandbox limits separately. The figures below use entry plans. |
| GPUs | Modal or Daytona | Both offer GPU sandboxes. Lizard does not. |
| More regions | Modal | Lizard runs Sandboxes in US East and EU West. Check where each provider offers the resources you need. |
| Windows, your own compute or no maximum run time | Daytona | Check its Windows sandboxes and custom regions. |
| Custom images | E2B, Daytona or Modal | Lizard has a fixed template catalog, including base, interpreter and claude. You can snapshot an existing sandbox, but cannot upload your own image through a public feature. |
| Compliance reports | E2B | E2B states that it has a SOC 2 Type II report and supports HIPAA compliance. Check the report and terms for your use. |
Lizard Pro allows 100 running sandboxes, 24 new starts per minute and 400 per day. Higher limits require Enterprise. E2B Hobby allows one new sandbox per second and 20 at once. Daytona's first tier allows 300 creations per minute. Modal Starter allows 100 concurrent containers; that is a concurrency limit, not a creation rate. Check Lizard's limits, E2B's limits and Daytona's limits for the plans you expect to use.
How we measured
The runner was one container on Railway in US East (us-east4). It called E2B, Daytona and Modal through their official SDKs and Lizard through its REST API.
For each round, the script shuffled provider order and launched one sandbox per provider in parallel. Each provider had at most one sandbox in flight. We discarded three warm-up rounds, then recorded 300 rounds.
The timer started before create. It stopped when python3 -c "print('arena-startup-ready-20261001')" returned that string with exit code 0. We deleted the sandbox after the measurement. The script did not retry failures; all starts succeeded.
| Provider | Template | Region setting | Resources | Python |
|---|---|---|---|---|
| Lizard | base, size Small | us-east-1 | 2 vCPU / 4 GB | 3.11 |
| E2B | default code interpreter template | default | default | 3.13 |
| Daytona | default snapshot daytonaio/sandbox:0.8.0 | us | 1 vCPU / 1 GiB | 3.14 |
| Modal | debian_slim, Python 3.12 | us-east | 2 physical CPU cores, equivalent to 4 vCPU / 2 GiB | 3.12 |
We used e2b-code-interpreter 2.8.1, e2b 2.34.0, daytona 0.200.0 and modal 1.5.2. The region settings differ; we did not pin every provider to the same region. The templates, resources and Python versions also differ. The script sets Modal to cpu=(2, 2). Modal counts physical cores, with one core equal to two vCPUs, so that request is equivalent to 4 vCPU. See its sandbox resource guide.
This test measures how soon these prepared sandboxes returned a first result. It does not measure bulk creation, custom-image builds, other regions, CPU performance or cost. A provider can prepare capacity before a create call, so the term "cold start" here does not mean a fresh machine boot with no cache or prepared pool.
Download all 1,200 measurements as CSV, the summary statistics as JSON and the benchmark script.
Before you run the script, install its httpx, E2B, Daytona and Modal dependencies, set the provider credentials and LIZARD_PROJECT_ID, and configure Modal authentication. Review its paths and process handling: it expects /app/results, writes raw.jsonl rather than the published CSV and summary files, and keeps an HTTP status server running after the tests. Adapt those parts to your runner.
Which sandbox is best for AI agents?
For an agent that starts a new sandbox while a user waits, E2B and Lizard had the shortest waits in this test: 264 ms and 228 ms at the median. E2B also publishes its sandbox code, which matters if you need self-hosting or a code audit.
Modal and Daytona support GPU tasks. Daytona also offers Windows and sandboxes on your own compute. If the sandbox will run for hours, compare its running cost and limits as well as the time it takes to start.
What a running sandbox costs per hour
The table estimates a 2 vCPU / 4 GiB sandbox at the rates published on 12 October 2026. This is a cost comparison at one size; it does not price the different settings in our start-time test. All four bill running resources by the second. These are compute prices, before any extra storage, network or plan charges.
| Provider | Price per running hour | Plan fee | Included or trial usage |
|---|---|---|---|
| Lizard | $0.0162 | Pro: $19 a month, including $19 of usage | 7-day trial with $5 of usage; card required |
| E2B | $0.1656 | Hobby: $0; Pro: $150 a month | One-time $100 credit on Hobby |
| Daytona | $0.1656 | None | $200 in free compute |
| Modal | About $0.238 | Starter: $0; Team: $250 a month | $30 a month on Starter |
For E2B and Daytona, the calculation is 2 × $0.0504 per vCPU-hour + 4 × $0.0162 per GiB-hour. For Modal, it is one physical core, equal to two vCPUs, at $0.1419 per hour + 4 × $0.0240 per GiB-hour. Modal's total excludes its 1.15x or 1.75x region charge. Lizard charges a flat rate for a Small sandbox.
Unused Lizard Pro usage does not carry over. Extra usage is pay as you go.
Storage and network charges can change the bill. Our Vercel Sandbox pricing guide shows how to work through a monthly sandbox bill. For these providers, check the linked pricing pages before budgeting.
Time a Lizard sandbox start
Install Lizard SDK, set LIZARD_API_KEY, and replace the project ID with your own. This example times one start through the Python SDK; the benchmark above used Lizard's REST API.
import time
from lizard import Sandbox
start = time.perf_counter()
sandbox = Sandbox.create("base", project_id="proj_123", size="small", region="us-east-1", timeout_ms=300_000)
try:
result = sandbox.process.exec_("python3 -c \"print('ready')\"")
print(result.stdout.strip(), f"{(time.perf_counter() - start) * 1000:.0f} ms")
finally:
sandbox.kill()A Small sandbox costs $0.0162 per running hour, billed by the second. See the Sandboxes page for prices and the Sandboxes docs for templates and limits.
FAQ
Which sandbox is best for AI agents? E2B and Lizard returned the first command fastest in our 1,200-start test, at medians of 264 ms and 228 ms. E2B is also an option for open source and self-hosting. Modal and Daytona support GPUs. Daytona also offers Windows sandboxes and custom regions on your own compute. Choose for the agent's workload and test your own settings.
What is a sandbox cold start? In this benchmark, it is the time from requesting a new sandbox until its first command returns. That includes API and network time, and may use capacity the provider has already prepared. A create call alone can end before the sandbox is ready to run code.
Is the Daytona sandbox free? Daytona offers $200 in free compute without a credit card. After that, it charges for reserved resources by the second. Check Daytona pricing for the current offer and rates.
Is Daytona open source? Daytona moved core development to a private codebase in June 2026 and archived the public repository. The last public code remains under AGPL-3.0, and its SDKs remain Apache-2.0. The repository notice explains the change.
How much does the Daytona sandbox cost? Daytona sandbox pricing is $0.0504 per vCPU-hour and $0.0162 per GiB-hour of memory, billed by the second. A default 1 vCPU / 1 GiB sandbox costs $0.0666 per running hour, about $0.067. Storage beyond the first 5 GiB costs $0.000108 per GiB-hour.
What is a Modal sandbox? A Modal sandbox runs untrusted user or agent code in a separate environment on Modal. Modal supports gVisor containers and, since October 2026, VMs with their own kernel. Its Sandboxes guide covers how to create and use them.
Is Modal free to use? Modal Starter has no monthly fee and includes $30 of compute each month, including Sandbox usage. Usage above that allowance costs extra, with per-second billing. See Modal pricing.
Is E2B safe? E2B runs each sandbox in a Firecracker microVM with its own kernel to isolate it from other sandboxes and the host. E2B states that it has a SOC 2 Type II report. Sandboxes allow outbound internet access by default, so restrict access for code that should not reach the network. See E2B's security documentation.
Sources
- Benchmark data: samples.csv, summary.json, startup.py
- E2B: pricing, billing and limits, price calculation, security, template start times, source code
- Daytona: pricing, sandboxes, limits, repository notice
- Modal: pricing, Sandboxes guide, resources, sandbox resources, region selection, start-time blog post, VM Sandboxes
- Lizard: Sandboxes docs, sizes, prices and limits
Prices and limits checked on 12 October 2026.
Build with AI. Ship with Lizard.
You don't need a platform team to go live. Your whole cloud, one CLI command away.
- Services
- —
- Add-ons
- —
- Deployments
- —
- Sandbox starts
- —