> ## Documentation Index
> Fetch the complete documentation index at: https://docs.boat.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Pricing

> What a sandbox costs per hour, what a plan buys, and how that compares to other sandbox providers.

You pay for machine time, per second, only while a sandbox runs. A stopped sandbox costs nothing.

## Price

| Size        | Per hour    | CPU     | RAM   | Disk   |
| ----------- | ----------- | ------- | ----- | ------ |
| `small`     | **\$0.018** | 2 vCPU  | 4 GB  | 12 GB  |
| `default`   | **\$0.036** | 4 vCPU  | 8 GB  | 50 GB  |
| `large`     | **\$0.072** | 8 vCPU  | 16 GB | 125 GB |
| `xlarge` \* | **\$0.200** | 16 vCPU | 32 GB | 251 GB |

"Disk" is the space for your own files; the OS and the pre-installed tools sit outside it. One `default` sandbox running a whole month (730 h) is \$26. Every size is a full Linux VM with the same tools, snapshots, hosting and desktop; only the machine changes.

\* `xlarge` needs a \$100 plan or higher and an operator to allocate the capacity: [ask us](https://x.com/anic_dev).

Pick the size when you create a sandbox, and change it on resume or fork:

```bash theme={null}
boat new --type small
boat resume bx_23456789 --type large
```

## Concurrency

A plan sets how many sandboxes you may **run at once**. Its price is not a fee: every dollar comes back as sandbox time at the rates above, so the \$20 plan is \$20 of time (555 hours of `default`) plus the right to run 100 sandboxes at the same time.

| Plan      | Run at once | Time included                        | Starts per min / hour / day |
| --------- | ----------- | ------------------------------------ | --------------------------- |
| \$20/mo   | 100         | \$20 worth (555 h of `default`)      | 12 / 60 / 200               |
| \$100/mo  | 300         | \$100 worth (2,777 h of `default`)   | 30 / 210 / 840              |
| \$500/mo  | 1,000       | \$500 worth (13,888 h of `default`)  | 65 / 420 / 1,680            |
| \$2000/mo | 2,000       | \$2000 worth (55,555 h of `default`) | 90 / 600 / 2,400            |

* Included time is granted each month and expires at the end of it.
* Need more time in a month: buy **credit packs** (\$20 each, same rates, they never expire), or turn on **auto-refill**. Plan time is spent first, packs after.
* Concurrency and start limits are per plan; on an organization they are multiplied by the number of seats.
* **Trial**: 25 free hours, 2 sandboxes at once, `small` and `default` only, until your first payment.

Change plans from [Dashboard > Billing](https://boat.dev/dashboard?tab=billing) or `boat billing plan 100`. Upgrades are prorated and take effect immediately.

## Compared to others

<img className="block dark:hidden" src="https://mintcdn.com/ariana-1e97e6c3/347JiEhKoLslxLYk/images/pricing-vs-others.svg?fit=max&auto=format&n=347JiEhKoLslxLYk&q=85&s=45cf3adb00676cb1162990e07705b071" alt="One default sandbox per hour, boat versus other sandbox providers" width="720" height="448" data-path="images/pricing-vs-others.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/ariana-1e97e6c3/qRRn6T12YGme83rs/images/pricing-vs-others-dark.svg?fit=max&auto=format&n=qRRn6T12YGme83rs&q=85&s=c7d50c0c1c6b31df80dd2b789247eb3b" alt="One default sandbox per hour, boat versus other sandbox providers" width="720" height="448" data-path="images/pricing-vs-others-dark.svg" />

The same machine on every provider, at their public list prices (sizes as in the table above):

| \$/hour          | `small`       | `default`     | `large`       | `xlarge`     |
| ---------------- | ------------- | ------------- | ------------- | ------------ |
| **boat**         | **\$0.018**   | **\$0.036**   | **\$0.072**   | **\$0.200**  |
| Novita           | \$0.117 (6x)  | \$0.233 (6x)  | \$0.467 (6x)  | \$0.933 (5x) |
| Freestyle        | \$0.132 (7x)  | \$0.264 (7x)  | \$0.529 (7x)  | \$1.06 (5x)  |
| exe.dev †        | \$0.140 (8x)  | \$0.280 (8x)  | \$0.560 (8x)  | \$1.12 (6x)  |
| E2B              | \$0.166 (9x)  | \$0.331 (9x)  | \$0.662 (9x)  | \$1.32 (7x)  |
| Daytona          | \$0.166 (9x)  | \$0.331 (9x)  | \$0.662 (9x)  | \$1.32 (7x)  |
| Blaxel †         | \$0.166 (9x)  | \$0.331 (9x)  | \$0.662 (9x)  | \$1.32 (7x)  |
| Codespaces †     | \$0.180 (10x) | \$0.360 (10x) | \$0.720 (10x) | \$1.44 (7x)  |
| Cloudflare †     | \$0.180 (10x) | \$0.360 (10x) | \$0.720 (10x) | \$1.44 (7x)  |
| Modal            | \$0.238 (13x) | \$0.476 (13x) | \$0.952 (13x) | \$1.90 (10x) |
| Islo             | \$0.300 (17x) | \$0.600 (17x) | \$1.20 (17x)  | \$2.40 (12x) |
| Runloop          | \$0.317 (18x) | \$0.634 (18x) | \$1.27 (18x)  | \$2.53 (13x) |
| Vercel Sandbox † | \$0.341 (19x) | \$0.682 (19x) | \$1.36 (19x)  | \$2.73 (14x) |

† exe.dev: Cloud Pool rate; Codespaces: \$0.18/h per 2 cores; Cloudflare: active CPU only; Vercel Sandbox: active CPU only; Blaxel: active CPU only.

### "Active CPU" billing

Some providers do not price the machine; they price the CPU seconds your code happens to burn, and the memory the whole time. The pitch is the best case: "you will rarely max the box". What it means for you:

* **You cannot know the price before you run.** The same job costs a different amount every time, and a build, a test suite, a browser or an agent thinking is mostly CPU anyway.
* **The memory meter never pauses.** A 4 vCPU / 8 GB sandbox idling at 0.1 vCPU still pays for 8 GB every second.
* **Nobody publishes the distribution.** Not one of them says what their smallest, median or heaviest user actually consumes, so "99% of the time you won't max it" is a claim you would have to benchmark yourself to check.

The rates above are those providers' own list prices at full use, the only number they publish. boat has one number per size, per hour, and it is the whole bill before you run anything.

## Performance

We ran the [hpc-sandbox-benchmarks](https://github.com/AnicetNgrt/hpc-sandbox-benchmarks) suite on the 4 vCPU / 8 GB machine of every provider (our `default`). The headline job is a Node.js build & test loop: bundle, lint, test, repeat. Full results: [2026-08-24 leaderboard](https://github.com/AnicetNgrt/hpc-sandbox-benchmarks/blob/provider/ascii-box/docs/results/2026-08-24-cpu/leaderboard.md).

<img className="block dark:hidden" src="https://mintcdn.com/ariana-1e97e6c3/347JiEhKoLslxLYk/images/perf-vs-others.svg?fit=max&auto=format&n=347JiEhKoLslxLYk&q=85&s=5ba72f621dc8a6cf78b30d9592b1f90f" alt="The same Node.js build and test loop, 1,000 runs, time it takes per provider" width="720" height="178" data-path="images/perf-vs-others.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/ariana-1e97e6c3/qRRn6T12YGme83rs/images/perf-vs-others-dark.svg?fit=max&auto=format&n=qRRn6T12YGme83rs&q=85&s=6fdab2ca7032290526666df6cf527030" alt="The same Node.js build and test loop, 1,000 runs, time it takes per provider" width="720" height="178" data-path="images/perf-vs-others-dark.svg" />

| 4 vCPU / 8 GB | Runs per second | Seconds per 1,000 runs | \$/hour     | \$ per million runs |
| ------------- | --------------- | ---------------------- | ----------- | ------------------- |
| **boat**      | **27.7**        | **36** s               | **\$0.036** | **\$0.36**          |
| Daytona       | 18.6            | 54 s (1.5x slower)     | \$0.331     | \$4.95 (14x)        |
| Modal         | 15.1            | 66 s (1.8x slower)     | \$0.476     | \$8.77 (24x)        |
| E2B           | 11.2            | 89 s (2.5x slower)     | \$0.331     | \$8.19 (23x)        |

The Hetzner-hosted cell of the same run, the slowest machine a `default` can land on, did 8.9 runs per second (113 s per 1,000, \$1.13 per million).

The boat row is our bare metal host, measured with the same suite on 2026-08-24. Values are medians over several machines per provider, with 95% intervals within ±20% of them.

## Worked examples

| You run                                        | Per month                                                                    |
| ---------------------------------------------- | ---------------------------------------------------------------------------- |
| One `default` sandbox, 8 hours a day, 22 days  | 176 h × \$0.036 = **\$6.34**, covered by the \$20 plan                       |
| One `default` sandbox 24/7                     | 730 h × \$0.036 = **\$26**: the \$20 plan plus one \$20 pack                 |
| 50 `default` sandboxes, 4 hours a day, 22 days | 4,400 h × \$0.036 = **\$158**: the \$100 plan (300 at once) plus three packs |
| 200 `small` sandboxes, 1 hour each, once       | 200 h × \$0.018 = **\$3.60**, covered by any plan                            |

## For the API

`GET /limits` reports balances as **seconds of `default` time** (100,000 per dollar). A `small` sandbox draws 0.5 of those per second it runs, a `large` 2, an `xlarge` 5.56; `creditBalanceHours` and `packBalanceDollars` restate the same balance in hours and dollars. `boat usage <id>` and `GET /sandboxes/{id}/usage` give one sandbox's bill, with the size already applied. See [Billing details](/billing) for organizations, caps and what happens when you run out.
