E2B
DEVELOPER · DEVELOPER
Cloud sandboxes for untrusted code, with their logs and metrics, on their own key.
Connecting E2B in practice
Uninterrupted sandbox runtime is capped at 1 hour on Hobby and 24 hours on Pro, and concurrency is a hard count of running sandboxes — 20 on Hobby, 100 on Pro — so an agent that forgets to kill sandboxes runs out of slots rather than out of budget. Creation is rate limited separately at 1 sandbox per second on Hobby.
Rate limits
- Concurrent sandboxes: Hobby 20, Pro 100 (up to 1,100 with the higher-concurrency add-on), Enterprise 1,100+.
- Sandbox creation rate: Hobby 1 per second, Pro 5 per second.
- API rate limits are counted in "requests per second, per project, per endpoint": 10 per second on Hobby, 20 on Pro and Enterprise for most endpoints.
- Max continuous runtime: 1 hour on Hobby, 24 hours on Pro. Resources: 8 vCPU, 8 GiB memory and 10 GiB disk on Hobby; 20+ GiB disk on Pro.
Worth knowing
- Pause and resume "resets the runtime window, and your sandbox's full state is preserved indefinitely", so a job longer than the plan’s ceiling is a sequence of pauses rather than one long sandbox.
- "Only running sandboxes count toward the concurrency limit and only running sandboxes are billed", so paused sandboxes are free but also invisible to the limit — and to any monitoring built on it.
- Timeout units differ by SDK: milliseconds in JavaScript and TypeScript, seconds in Python. The same integer means a thousandfold difference between two agents in one codebase.
- Billing is per second of running compute based on allocated vCPU and RAM, so an idle-but-running sandbox costs exactly the same as a busy one.
Checked against E2B billing and limits (2026-09-29), E2B sandbox lifecycle (2026-09-29), Do paused sandboxes count toward concurrency? (2026-09-29)
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
Often connected alongside
Put E2B behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.