Vercel Sandbox pricing and quotas
Vercel Sandbox usage is metered across several dimensions. This page explains how billing works for each plan, what quotas apply, and how to estimate costs.
| Hobby (Included) | Pro (Per month) | Enterprise (Per month) | |
|---|---|---|---|
| Sandbox Active CPU | 5 hours/month | $0.128/hour | $0.128/hour |
| Sandbox Provisioned Memory | 420 GB-hours/month | $0.0212/GB-hour | $0.0212/GB-hour |
| Sandbox Creations | 5,000/month | $0.60/1M | $0.60/1M |
| Sandbox Data Transfer | 20 GB/month | $0.15/GB | $0.15/GB |
| Snapshot Storage | 15 GB (lifetime) | $0.08/GB-month | $0.08/GB-month |
| Max Session Duration | 45 minutes | 24 hours | 24 hours |
| Concurrent Sandboxes | 10 | 10,000 | 10,000 |
| vCPU Allocation Rate | 40/min | 5,000/min | 5,000/min |
The Active CPU and Provisioned Memory rates in this table apply to the default iad1 region. See Regional pricing for the rates in each region.
On each billing cycle, Hobby plans receive a monthly allotment of Sandbox usage at no cost. Pro and Enterprise plans are charged based on usage.
Once you exceed your included limit on Hobby, sandbox creation is paused until the next billing cycle. Pro and Enterprise usage is charged against your account.
Sandboxes run in the region you choose when you create them. Active CPU and Provisioned Memory rates vary by region. The prices are per hour for CPU and per GB-hr for memory:
Region | Active CPU (per hour) | Provisioned Memory (per GB-hr) |
|---|---|---|
| Cleveland, USA (cle1) | $0.128 | $0.0212 |
| Paris, France (cdg1) | $0.177 | $0.0292 |
| San Francisco, USA (sfo1) | $0.177 | $0.0294 |
| Washington D.C., USA (iad1) | $0.128 | $0.0212 |
Sandbox Creations, Network, and Snapshot Storage are billed at the same rate in all regions where Sandbox is available.
Sandbox is free for Hobby users within the usage quotas detailed above.
Vercel sends you notifications as you approach your usage quotas. You will not be charged for any additional usage. Once you exceed the quotas, sandbox creation is paused until 30 days have passed since you first used the feature.
To continue using Sandbox after exceeding your quotas, upgrade to Pro.
All Sandbox usage on Pro plans is charged against your $20/month credit. After the credit is exhausted, usage is billed at the rates shown above.
To control costs, configure Spend Management to receive alerts or pause projects when you reach a specified amount.
Enterprise plans have custom pricing and quotas. Contact sales to discuss your usage requirements.
Vercel tracks Sandbox usage across five metrics. Select a metric in the pricing table above to jump to its description.
The amount of time your code actively uses the CPU, measured in hours. Time spent waiting for I/O (such as network requests, database queries, or AI model calls) does not count toward Active CPU.
You can provision 1 or an even number of vCPUs between 2 and 32 depending on your plan. The default is 2 vCPUs.
The memory allocated to your sandbox (in GB) multiplied by the time it runs (in hours). Each vCPU includes 2 GB of memory. Provisioned memory is billed in 1 minute minimum increments to account for sandbox lifecycle management. For example, a 4 vCPU sandbox with 8 GB of memory running for 30 minutes uses:
8 GB × 0.5 hours = 4 GB-hours
The number of times you call Sandbox.create(). Each creation counts as one, regardless of how long the sandbox runs.
Data your sandbox sends to the internet, plus all traffic to and from exposed ports, is billable and measured in GB. Data your sandbox downloads from the internet, such as packages, Git repositories, artifacts, and datasets, is free.
For example, downloading an npm package is free. If you run a web server on an exposed port, both the request it receives and the response it sends are billable.
The storage used by snapshots, measured in GB per month. A snapshot is stored in the region of the sandbox it was created from, and storage is billed at the same flat rate per GB-month in every region. See the pricing table for the rate.
Use a smaller managed image like vercel/sandbox/ubuntu or your own custom image to reduce individual snapshot sizes. Set an appropriate snapshot retention period to avoid storing snapshots longer than needed.
The following examples show estimated costs for common scenarios on Pro/Enterprise plans, using rates for the iad1 region.
| Scenario | Duration | vCPUs | Memory | Active CPU Cost | Memory Cost | Total |
|---|---|---|---|---|---|---|
| Quick test | 2 min | 1 | 2 GB | $0.004 | $0.001 | ~$0.01 |
| AI code validation | 5 min | 2 | 4 GB | $0.02 | $0.007 | ~$0.03 |
| Build and test | 30 min | 4 | 8 GB | $0.26 | $0.08 | ~$0.34 |
| Long-running task | 2 hr | 8 | 16 GB | $2.05 | $0.68 | ~$2.73 |
Sandbox creation costs are minimal at $0.60 per million creations ($0.0000006 per creation).
Each sandbox is automatically provisioned 32 GB of ephemeral NVMe storage. You can use persistent sandboxes or manually create snapshots to persist data across sandboxes.
| Plan | Maximum vCPUs | Maximum memory | Maximum open ports | Disk size |
|---|---|---|---|---|
| Hobby | 4 | 8GB | 15 | 32 GB |
| Pro | 8 | 16GB | 15 | 32 GB |
| Enterprise | 32 | 64GB | 15 | 32 GB |
The default timeout is 5 minutes. You can configure this using the timeout option when creating a sandbox, and extend it using sandbox.extendTimeout(). See Working with Sandbox for details.
The maximum duration applies to a single session, not to the sandbox itself. The limit resets every time a sandbox stops and resumes, so the total lifetime of a persistent sandbox is effectively unbounded.
| Plan | Maximum session duration |
|---|---|
| Hobby | 45 minutes |
| Pro | 24 hours |
| Enterprise | 24 hours |
The number of concurrently running sandboxes is limited by plan.
Contact sales if you need higher concurrency quotas on Enterprise.
| Plan | Concurrent sandboxes |
|---|---|
| Hobby | 10 |
| Pro | 10,000 |
| Enterprise | 10,000 |
The rate at which you can allocate vCPUs to new sandboxes increases with sustained usage instead of being a fixed cap. The initial value is your plan's starting rate, and sustained usage increases the allowed rate toward the maximum at the quota shown below. After 10 minutes without creating sandboxes, the rate goes back to the starting rate. See dynamic quotas for more details.
For example, with a Pro team that was idle, the initial rate is 150 vCPUs per minute, which covers 18 sandboxes with 8 vCPUs each. The team can keep creating sandboxes and the allowed rate increases to a maximum of 500 vCPUs per minute until it reaches 5,000.
Contact sales if you need higher allocation quotas on Enterprise.
| Plan | Starting vCPU rate | Ramp | Maximum vCPU rate |
|---|---|---|---|
| Hobby | 20 vCPUs per minute | 20 vCPUs per minute | 40 vCPUs per minute |
| Pro | 150 vCPUs per minute | 500 vCPUs per minute | 5,000 vCPUs per minute |
| Enterprise | 150 vCPUs per minute | 500 vCPUs per minute | 5,000 vCPUs per minute |
Control plane operations such as running commands or reading files use a fixed per-minute quota instead of a dynamic quota.
Deleting a sandbox, snapshot, or drive is limited to 20 requests per second per team on all plans. Deletions count against your control plane quota as well.
| Plan | Control plane quota | Deletion quota |
|---|---|---|
| Hobby | 1,000 requests per minute | 20 requests per second |
| Pro | 10,000 requests per minute | 20 requests per second |
| Enterprise | 100,000 requests per minute | 20 requests per second |
Snapshots expire 30 days after their last use by default. You can configure the expiration time to control how long snapshots are retained, including removing the expiration so they are kept indefinitely.
Vercel Sandbox is available in the iad1 (default), sfo1, cle1, and cdg1 regions. You can choose the region per sandbox or set a project default. See Regions.
Active CPU and Provisioned Memory rates vary by region. See Regional pricing for the rates in each region. Sandbox Creations, Network, and Snapshot Storage are billed at the same rate in all regions where Sandbox is available.
To optimize your Sandbox costs:
- Set appropriate timeouts: Use the shortest timeout that works for your task
- Right-size resources: Start with fewer vCPUs and scale up only if needed
- Stop sandboxes promptly: Call
sandbox.stop()when done rather than waiting for timeout - Monitor usage: Check the Usage dashboard to track your sandbox consumption
For more details on sandbox lifecycle management, see Working with Sandbox.
Was this helpful?