Pricing

A rent.dev sandbox costs its provisioned memory plus the CPU it used. The CPU part is capped at what the same vCPUs would cost at E2B's list rate, so the metered price of a sandbox is never more here than E2B's list price for the same shape and time. Adding credit to the balance carries a fee on top of that: 5.5% of the credits, at least $0.80, by card, and 5.5% over x402. Payments has the fee table.

GEThttps://api.rent.dev/v1/quotes

View as Markdown

The formula

Text
cost = provisioned GiB-hours x $0.0162
     + the lower of  active vCPU-hours x $0.128
                and  provisioned vCPU-hours x $0.0504
ComponentRateBilled while
Memory$0.0162 per GiB-hourThe sandbox runs, busy or idle.
Active CPU$0.128 per vCPU-hourA vCPU is doing work.
Provisioned CPU (the cap)$0.0504 per vCPU-hourThe sandbox runs. Applies when it is lower than the active-CPU amount.

The memory rate and the cap are E2B's list rates: $0.000014 per vCPU-second and $0.0000045 per GiB-second, read from e2b.dev on 2026-11-11. The cap takes over once a sandbox's CPU has been busy more than 39.375% of the time. Below that, the idle time is what you save.

How usage is counted

  • Usage is metered by the second and priced on the sandbox's totals since it was created. The lower-of comparison is made over the whole session, not minute by minute.
  • A paused sandbox has no usage and costs nothing.
  • A template build is priced as a sandbox of the build's size.
  • The final charge is rounded to the nearest micro-dollar.

Holds

Before a sandbox starts, rent.dev reserves the most it could cost: the cap rate for its shape, times its timeout. A 2 vCPU, 4 GiB sandbox tops out at $0.1656 per hour, so the default 300 second timeout holds $0.013800.

Usage is charged against the hold as it arrives. When the sandbox stops, what was not used returns to the available balance. Extending a timeout takes the added hold first, and a balance too short for a hold answers 402.

Worked examples

Each row is one task on a 2 vCPU, 4 GiB sandbox, at the CPU duty the profile assumes. The last column is the same task at E2B's list price.

ProfileLengthCPU busyMemoryCPUrent.devE2B list
Agent loop30 min10%$0.0324$0.0128 (active)$0.0452$0.0828
Interactive30 min50%$0.0324$0.0504 (provisioned)$0.0828$0.0828
Workspace4 h20%$0.2592$0.2048 (active)$0.4640$0.6624

The CPU column says which side of the comparison applied: active when the sandbox was idle enough to pay for the CPU it used, provisioned when the cap took over.

Against other vendors

The price board runs the same three tasks through every vendor with published rates. Every public GPU and CPU offer the catalog may show and compare, from every provider, is in the catalog. rent.dev is not the lowest on every row, and the board shows that as it is. On the default shape today:

  • Agent loop: Northflank quotes below rent.dev.
  • Interactive: Northflank, Fly.io and Cloudflare quote below rent.dev.
  • Workspace: Northflank, Cloudflare and Fly.io quote below rent.dev.

A quote covers CPU, memory, disk that comes with an instance type and per-creation fees. Free monthly allowances, plan fees, regional multipliers, storage and egress are left out; the board lists what that means for each vendor.

Workload profiles

ProfileCPU busyOne task
agent-loop10%30 min
interactive50%30 min
workspace20%4 h

A profile is an assumption about how busy the CPU will be. It prices a quote and helps place a sandbox before the account has history. What a sandbox is charged always comes from its measured usage.

The quotes endpoint

Shell
curl -s "https://api.rent.dev/v1/quotes?profile=agent-loop&cpu_count=2&memory_mb=4096"
ParameterInTypeDescription
profilequeryagent-loop | interactive | workspaceOne profile; default all three.
cpu_countqueryinteger, 1 to 64Default 2.
memory_mbqueryinteger, at least 128Default 4096.

It needs no key and takes only these three parameters; any other answers 400 unsupported_parameter. Each quote lists rent.dev's row first, then the vendors from lowest to highest, each with billed_by, the rates used, and the page and date they were read. gpus holds hourly GPU rows: usd_per_hour prices the vendor's quantity unit (the whole node or instance when the row prices one), and usd_per_gpu_hour is the normalised per-GPU figure to compare across rows; a row without one carries unpriced_reason, saying why. Answers are cached for 60 seconds.

GPU pods

rent.dev sells no GPU time. A GPU pod runs on your own RunPod key and RunPod bills it at its hourly rate; see bring your own key.