Billing and pricing#
You pay per second for the time a sandbox's VM is actually running. A paused sandbox costs $0 for compute.
Prices in USD, excluding VAT. Private beta pricing; we will announce any change at least 30 days in advance.
Compute#
| Size | vCPU | RAM | Disk included | Price per active hour | Per second |
|---|---|---|---|---|---|
small |
2 | 4 GB | 20 GB | $0.015 | $0.0000042 |
default |
4 | 8 GB | 50 GB | $0.030 | $0.0000083 |
large |
8 | 16 GB | 100 GB | $0.060 | $0.0000167 |
- Billed per second of VM run time, with no minimum.
- Paused = $0 compute. You pay only for snapshot storage (below), which is free for the first 30 days.
- The size is set by
sizeonPOST /sandboxes. A fork has the same size as its source.
Billing per state#
| State | Compute billed? | Notes |
|---|---|---|
queued |
No | priority: "batch" only, waiting for capacity. |
creating |
No | |
running |
Yes, per second | Includes time spent in resuming and pausing. |
pausing, resuming |
Yes | Typically under a second. |
paused |
No | Snapshot storage only (free for 30 days). |
deleting, deleted |
No | Disk and pause snapshot are removed. |
error |
No |
See Lifecycle for how auto-pause and wake on request move sandboxes between states.
Batch and off-peak: −50%#
Compute is billed at half price when either:
- the sandbox was created (or forked) with
priority: "batch". Batch sandboxes may wait in thequeuedstate until capacity is free, so use them for jobs that can start later (evals, CI, data processing); or - the seconds fall into the EU night window, 22:00–07:00 CET, for any sandbox. This applies automatically.
| Size | Batch / off-peak per hour |
|---|---|
small |
$0.0075 |
default |
$0.015 |
large |
$0.030 |
Always-on#
$19.90 per month for a default sandbox that never pauses (always_on: true). This flat price replaces the hourly price for that sandbox. It is prorated by day when you turn it on or off mid-period. Use it for agents that must stay running 24/7. A default sandbox running all month at the hourly rate would cost about $21.90 (730 h × $0.030).
await sandbox.update({ always_on: true });
Storage#
| Item | Price |
|---|---|
| Pause snapshot (RAM + disk state of a paused sandbox) | Free for 30 days from the snapshot, then $0.03 per GB-month |
| Named snapshots and templates | Same: free for 30 days, then $0.03 per GB-month |
Disk beyond the size's included disk (disk_gb) |
$0.05 per GB-month |
Stored sizes are measured after compression and deduplication (storage_bytes on snapshots and templates).
Plans#
| Plan | Price | Includes |
|---|---|---|
| Free | $0 | One-time 20 hours of default (no renewal), 2 concurrent sandboxes, no card required. |
| Starter | $19 / month | $19 of usage credit every month (about 630 hours of default). Usage above the credit is billed at the standard rates. 10 concurrent sandboxes. |
| Team | $199 / month | $199 of usage credit every month. After the credit is used, all rates are 15% lower. 1,000+ concurrent sandboxes. Slack support. 99.9% uptime target; the SLA applies once the second location is live. |
| Enterprise | Custom | Annual contract, support, bring your own cloud (BYOC). |
Monthly credit expires#
Starter and Team credit expires at the end of each monthly billing period. Unused credit does not roll over and is not refunded. On the first day of the next period you receive a fresh credit of $19 (Starter) or $199 (Team). We email a reminder before the period ends. GET /usage shows totals.credit_remaining_usd for the current period.
How credit and discounts combine#
- Each charge is priced first: per-second compute at the size rate, with batch/off-peak at 50% of that rate; Always-on at $19.90 per VM per month (prorated per day); storage after the free period.
- Plan credit is used first for every charge type: compute, batch, Always-on and storage.
- When the credit is used up, the rest is billed as overage. Team pays overage 15% below the rates above, and batch gets both discounts (
rate × 0.5 × 0.85). Starter pays overage at standard rates. - Seconds in
pausingandresumingare billed likerunning.queued,creating,pausedanderrorare not billed for compute. - Overage is charged to your card when it reaches $20, $100 and then every $500, and at the end of the period.
Worked examples#
One coding agent, active about 2.4 hours a day (10% of the month), default size, auto-pause on:
73 active hours × $0.030 = $2.19 / month in compute. The paused time costs nothing for 30 days of snapshot storage.
1,000 end users, each with their own default sandbox, each active 10% of the time:
1,000 × 73 h × $0.030 = about $2,190 / month.
Eval run: 500 small sandboxes for 1 hour with priority: "batch":
500 × 1 h × $0.0075 = $3.75.
Controlling spend#
- Spend limit:
PUT /account/spend-limitwithmonthly_limit_usd. When reached, new sandboxes are rejected with402 spend_limit_reached, and running sandboxes are paused (on_limit: "pause_running", default) or left running (on_limit: "block_new"). Email alerts fire atalert_thresholds(default 50%, 80%, 100%), and each one also sends ausage.thresholdwebhook. Plan credit (and the Free plan's 20 hours) sendsusage.thresholdat 80% and 100% too, and an email 3 days before unused credit expires. - Auto-pause: keep it on (default 300 s idle). Lower
auto_pause.idle_timeout_secondsfor bursty agents. - TTL: set
ttl_secondsto delete short-lived sandboxes automatically. - Per-customer cost: label sandboxes (
labels: { customer: "acme" }) and callGET /usage?group_by=label&label_key=customerto re-bill your own users.
curl -sS "https://api.task.cloud/v1/usage?group_by=label&label_key=customer" \
-H "Authorization: Bearer $TASKCLOUD_API_KEY"
FAQ#
Do I pay while a sandbox is paused? Not for compute. The pause snapshot is stored free for 30 days, then $0.03 per GB-month.
Does unused Starter or Team credit carry over? No. It expires at the end of each monthly period.
What happens when the Free plan's 20 hours run out? New sandboxes are rejected with 402 free_hours_exhausted and running ones are paused. Upgrade to continue. Your sandboxes and snapshots are kept.
Is there a charge for creating or deleting sandboxes? No. Only run time and storage are billed.
Is network traffic billed? Not separately during the beta. Abuse (for example mass outbound traffic) is not allowed; see Security.