Back to Docs/Pricing and budgets

Pricing and budgets

Understand per-second sandbox pricing, resource tiers, included usage, and hard spend controls.

OpenPond separates the subscription plan from metered sandbox resources. Your plan controls included usage, concurrency, retention limits, and product access. A running sandbox accrues compute and VM-disk usage from its start time until it is stopped or deleted. Durable volumes accrue storage usage while retained.

The authenticated Billing page and the SDK pricing endpoint are authoritative for the rate card applied to your account. The current public retail rates are:

ResourceMeterCurrent rateHourly equivalent
vCPUvCPU-second$0.000020$0.072000 per vCPU
MemoryGiB-second$0.0000065$0.023400 per GiB
VM diskGiB-second$0.0000000333$0.000120 per GiB
Durable volumeGiB-second while retained$0.00000002$0.000072 per GiB

Model inference and connected services have their own usage rules. A sandbox budget limits sandbox execution; it is not a promise that every other service used by a workflow is included in that amount.

Resource tier examples

These estimates assume the sandbox remains running continuously. Real ephemeral Work should normally cost much less because it deletes compute after each completed turn.

TiervCPUMemoryVM diskEstimated hourly cost30-day continuous estimate
Tiny0.250.5 GiB4 GiB$0.030180$21.729600
Small0.51 GiB8 GiB$0.060360$43.459200
Default12 GiB10 GiB$0.120000$86.400000
Builder24 GiB20 GiB$0.240000$172.800000
Heavy Builder48 GiB40 GiB$0.480000$345.600000

Example: a Builder sandbox running for eight minutes costs approximately $0.240000 × 8 / 60 = $0.032000. Billing uses per-second quantities and produces a receipt, so the final charged amount comes from measured duration rather than this rounded example.

Plans and included usage

PlanBase priceIncluded hosted usageConcurrent sandboxesRetained sandboxes
Free$0Limited monthly usage15
Pro$20/month$20 monthly usage10100
EnterpriseCustomContract-definedContract-definedContract-defined

Included usage is applied before the prepaid balance and opt-in metered overage. Account spend caps and overage policy can stop additional allocation even when a request-level budget is higher.

Use every budget layer

For raw sandboxes and runtimes, set both the reservation budget and execution quotas:

ts
const sandbox = await openpond.sandboxes.create({ resources: { cpu: 1, memoryGb: 2, diskGb: 10 }, budget: { maxUsd: "0.20" }, quotas: { maxSpendUsd: "0.20", maxDurationSeconds: 600, idleTimeoutSeconds: 180, maxCommands: 20, maxOpenPorts: 1, maxSnapshots: 0, }, });

The controls answer different questions:

  • budget.maxUsd bounds the reservation.
  • quotas.maxSpendUsd bounds execution spend.
  • maxDurationSeconds limits total running time.
  • idleTimeoutSeconds is crash protection, not successful-turn cleanup.
  • Command, port, and snapshot quotas constrain expensive or externally visible operations.

Stop, delete, and storage cost

Stopping ends active compute billing but intentionally retains recoverable sandbox state. Deleting releases the sandbox and should be the default after exported one-off work. Snapshots, archives, and durable volumes can continue consuming retained-storage quota or storage charges after compute stops.

For Work, use cleanup: "delete" with persistOutput. For raw sandboxes, delete in finally. For runtimes, release the current sandbox after the active step and archive the runtime when the workflow itself is complete.

Continue with workflow modes or runtimes, snapshots, and cleanup.