Skip to content
Home

Pricing & Limits

SeaCloud Sandbox usage is metered around reserved runtime resources, paused persistent storage, and network transfer. Billing uses the configured sandbox spec rather than opportunistic burst usage.

Reserved baseline, plus best-effort burst. Every sandbox reserves its full configured vCPU and memory — capacity is never oversubscribed, so your configured baseline is always available. When the underlying host has spare CPU, a running sandbox may opportunistically burst beyond its configured cores at no extra cost — billing is based on your configured spec, not measured utilization. Burst capacity is best-effort and not guaranteed; under contention every sandbox still receives its full reserved allocation. Do not design latency-critical paths around burst.

Billing itemMetered whenUnit
CPU RunningOnly after the sandbox is ready/runningvCPU-second
RAM RunningOnly after the sandbox is ready/runningGiB-second
Sandbox StorageOnly while pausedGiB-hour
Data TransferWhen traffic is transferredGB

Running sandboxes are not charged separately for storage. Temporary runtime storage is included in compute while the sandbox is running.

Pricing can vary by plan and deployment. Use Console billing data and the usage APIs as the source of truth for charged totals. The current usage_costs_usd value is computed from runtime CPU, runtime RAM, and data transfer usage; storage usage is exposed separately through storage usage fields and storage records.

ItemFree allowance
Sandbox Storage10 GiB per account

Ten sandboxes, each configured as 1 vCPU + 1 GiB, running for 5 min:

CPU usage: 1 vCPU * 300s = 300 vCPU-s
RAM usage: 1 GiB * 300s = 300 GiB-s
Total for 10 sandboxes: 3000 vCPU-s and 3000 GiB-s
Storage while running: $0

These are the current platform defaults.

LimitDefault
Per-user held sandboxes20
Per-user running + starting sandboxes10
Sandbox start rate1 QPS
Max continuous sandbox runtime3600s

Create/start requests above the start-rate guardrail return 429. Use bounded retry with backoff instead of parallel retry storms.

ResourceCurrent contract
Sandbox CPU1-8 vCPU, integer
Sandbox memory512-8192MiB, step 512MiB
Sandbox storage1GiB
CPU:RAM ratio1:0.5 to 1:4
GET /usage/limits
X-API-Key: <SEACLOUD_API_KEY>

The response reports user-level quota usage:

{
"resource": "sandboxes",
"unlimited": false,
"user": {
"usage": {
"held": 2,
"running": 1
},
"limits": {
"held": { "limit": 20, "used": 2, "remaining": 18, "enforced": true },
"running": { "limit": 10, "used": 1, "remaining": 9, "enforced": true }
}
},
"runtime": {
"maxRuntimeSeconds": 3600
}
}
FieldMeaning
heldSandboxes that are not deleted or destroying.
runningRunning plus starting sandboxes, matching create/start enforcement.
enforcedfalse means the value is visible for planning but not enforced.
unlimitedWhether the quota is uncapped for the caller.
maxRuntimeSecondsMaximum lifecycle duration the platform reports for the caller.

Create/start requests can return 429 with details such as scope, resource, metric, used, limit, remaining, and usageEndpoint. Use the returned endpoint before retrying.

{
"code": 429,
"message": "sandbox limit exceeded",
"details": {
"reason": "usage_limit",
"scope": "user",
"resource": "sandboxes",
"metric": "running",
"used": 10,
"limit": 10,
"remaining": 0,
"usageEndpoint": "/usage/limits"
}
}