Open beta

Cloud runtime for untrusted code.

Run code from users, agents, and LLMs in kernel-isolated sandboxes. Verdicts come back with syscall evidence, not exit-code guesses.

  • 36 ms p50
  • 8 languages
  • 3 kernel layers
  • syscall evidence
rustbox · submit20 ms wall
$ curl -X POST api.rustbox.sh/api/submit \
-H "X-API-Key: rb_live_..." \
-d '{"language":"python","code":"print(42)"}'
AC · Acceptedpython · 9.1 ms cpu
stdout "42"
exit 0 · normal_exit
isolation seccomp + cgroup_v2 + netns
Product

Two profiles. Judge mode live now.

One API. Two isolation profiles. Your key picks which one.

api.rustbox.sh net off
$ 
Judge
Open Beta

Competitive programming, coding assessments, automated grading.

256 MBMemory7sWall4sCPU10Procs
No network, no loopback, no DNS
Agent
On Request

LLM tool execution, interactive environments, long-running tasks.

2 GBMemory60sWall30sCPU64Procs
Outbound-only via nftables
8 languages supported
Playground

Run code before wiring the API.

Same sandbox, same verdict shape your API will see. Try Python, paste C++, pipe stdin. No signup.

Security

Eight kernel layers between the code and your box.

Fresh sandbox per run. Verdicts backed by syscall trace, not exit-code guesses.

8kernel layers

8 kernel isolation layers

PID, mount, and network namespaces; cgroups v2; seccomp-BPF; capability drop; credential isolation; NO_NEW_PRIVS.

51seccomp rules

Compile-time enforced

Rust typestate chain guarantees order at language level. Skip an isolation configuration and it will refuse to compile.

147adversarial tests

Tested against real attacks

147 adversarial scenarios across all 8 Judge languages cover fork bombs, chroot escapes, ptrace, network attempts, and symlink attacks.

Interactive Threat Simulator

Step through the isolation layers and see which kernel primitive contains each attack vector.

PID NSMount NS + ChrootNetwork NSCgroups v2Seccomp-BPFCapability DropCredential IsolationNO_NEW_PRIVS
Active Audit sequence
REPrivilege Escalation
caught at NO_NEW_PRIVS
pythonPOST /api/submit?wait=true
import os
os.setuid(0)
print(os.getuid())
Cause
re_nonzero_exit
Cgroup
cgroup_v2
Isolation
strict
Controls applied · 6/6
pid_namespacemount_namespacenetwork_namespacememory_limitprocess_limitno_new_privileges
Performance

From 59 ms.

Full kernel isolation, in-region origin. P50 across 15 trials.

n = 500,000
  • Python
    62 ms
    tail 102
  • JavaScript
    59 ms
    tail 100
  • TypeScript
    62 ms
    tail 101
  • C
    102 ms
    tail 142
  • C++
    308 ms
    tail 309
  • Java
    474 ms
    tail 476
15 trials · async + /result?wait=true1 vCPU · 256 MB per task · in-region
API

First result in 60 seconds.

Raw HTTP or our SDK in Python, Node, Go, or Rust. Same structured response.

submit.sh
curl -X POST https://api.rustbox.sh/api/submit?wait=true \
  -H 'x-api-key: rb_live_…' \
  -H 'content-type: application/json' \
  -d '{"language":"python","code":"print(42)"}'
Output · wall 20 ms · cpu 13 ms
AC · Accepted
{
  "id": "02128880-a3a1-4025-ab89-f4d7ef3520de",
  "schema_version": "2.0",
  "language": "python",
  "profile": "judge",
  "status": "completed",
  "result": { "verdict": "AC", "cause": "normal_exit", "actor": "runtime", "exit_code": 0 },
  "output": { "stdout": "42\n", "stderr": "", "integrity": "complete" },
  "metrics": { "cpu_time_secs": 0.013, "wall_time_secs": 0.020, "memory_peak_bytes": 3715072 },
  "evidence": { "isolation": { "…": "…" }, "limits": { "…": "…" }, "teardown": { "…": "…" } }
}

Ship your first request →

Pricing
$0/mo

Judge only. 5,000 runs / mo. No card needed.

Judge
5,000 runs / mo
Hard cap (no overage)
  • 20 req/min burst
  • All 8 languages
  • Kernel-backed evidence
  • Community support
  • Usage dashboard
popular
$9/mo

For hobby projects and side products.

Judge
50,000 runs / mo
+$5 / 25k extra
40 req/min burst
Agent
1,000 CPU-min / mo
+$1 / 1k CPU-min extra
2 req/min burst
  • Everything in Free plus:
  • API keys
  • Email support
$29/mo

Production-ready. Predictable monthly bill.

Judge
150,000 runs / mo
+$5 / 50k extra
60 req/min burst
Agent
5,000 CPU-min / mo
+$1 / 1k CPU-min extra
5 req/min burst · 1 GB memory · 60s wall
  • Everything in Lite plus:
  • Priority queue
  • Sync verdicts
  • Webhook delivery
Larger scale
Scale$129/mo
Start Scale
Judge
1,500,000 runs / mo
+$5 / 50k extra
Agent
50,000 CPU-min / mo
+$1 / 1k CPU-min extra
Larger or custom
Enterprise
Contact sales
Judge
Custom volume
Contract pricing
Agent
Custom CPU-min volume
Contract pricing
Cancel anytime·No card for Free·Kernel-isolated sandbox·36 ms p50

Billing questions

What if I go over my plan?
Auto-billed at your tier's overage rate on the next monthly invoice. Set a monthly spending cap in the dashboard to prevent surprise bills.
Can I cancel anytime?
Yes. Cancel mid-month with no fee. You keep access until the current billing period ends.
What payment methods?
Card via Stripe on Lite / Pro / Scale. Wire transfer or ACH on Enterprise.
Free trial of paid plans?
No separate trial. Free tier is forever free with 5,000 judge runs per month. No card required to start.
FAQ

Questions before you wire it in.

Short answers to the constraints that usually matter when adding sandbox execution to a product.

Need a specific answer?

Send the workload shape, expected volume, language mix, and security requirements through the contact page.