E2B website screenshot

E2B

E2B (e2b-dev) provides secure, isolated cloud sandboxes for AI agents and AI-generated code, built on a forked Firecracker microVM runtime. The platform ships a REST Sandbox API, JavaScript and Python SDKs, a Code Interpreter SDK, a Desktop Sandbox for computer-use agents, persistent volumes, a custom template build system, and an e2b CLI. The Apache-2.0 licensed core repos — E2B, infra, firecracker, code-interpreter, and desktop — also support self-hosted deployments on AWS, GCP, Azure, or bare Linux. E2B is LLM-agnostic and used by labs and enterprises building code interpreters, deep-research agents, data analysis features, reinforcement-learning environments, and computer-use agents.

7 APIs 17 Features
AIAgentsCode ExecutionCode InterpreterSandboxesFirecrackermicroVMsComputer UseDesktop SandboxTemplatesMCPOpen Source

APIs

E2B Sandbox API

Create, control, and tear down isolated Firecracker microVMs on demand for AI agents. Sandboxes cold-start in under 200ms and run for up to 24 hours, supporting pause/resume/sna...

E2B Template API

Define, build, version, and publish reusable sandbox base images. Templates are built from an e2b.toml or programmatic SDK definition, cache layers across builds, support custom...

E2B Volume API

Provision and manage persistent volumes that can be attached to sandboxes so agent state, datasets, and workspaces survive across sandbox runs. The Volume Content API uses a sho...

E2B Sandbox Events and Webhooks API

REST surface for sandbox lifecycle events. Exposes polling endpoints at /events/sandboxes and /events/sandboxes/{sandboxID} for created, updated, killed, paused, resumed, and ch...

E2B Team and Identity API

Manage E2B team identity, API keys, and CLI access tokens. API keys authenticate SDK and REST traffic via the X-API-Key header. Access tokens authenticate the e2b CLI and CI wor...

E2B Code Interpreter SDK

Higher-level SDK on top of the Sandbox API that exposes a Jupyter-style code interpreter for LLM-driven Python and JavaScript execution. Returns structured execution results inc...

E2B Desktop Sandbox SDK

Sandbox flavor that boots a Linux desktop environment with a noVNC stream and exposes mouse, keyboard, screenshot, and window-management primitives. Built for computer-use agent...

Collections

E2B API

OPEN

E2B API

OPEN

Pricing Plans

E2B Dev Plans Pricing

3 plans

PLANS

Rate Limits

E2B Dev Rate Limits

0 limits

RATE LIMITS

FinOps

Features

Firecracker microVM sandboxes that cold-start in under 200ms in-region and run up to 24 hours on Pro
Pause, resume, and snapshot sandboxes to persist agent state across invocations
Custom sandbox templates built from e2b.toml or programmatic SDK definitions with cached build layers
Persistent volumes attachable to any sandbox with a separate Volume Content API authenticated by short-lived JWTs
Up to 100 concurrent sandboxes on Pro (expandable to 1,100 with purchase) and up to 20 on Hobby
Adjustable per-sandbox CPU and RAM, plus 10-20 GiB of free storage depending on tier
JavaScript/TypeScript and Python SDKs for the Sandbox, Code Interpreter, and Desktop products
Code Interpreter SDK returns Jupyter-style outputs (stdout, charts, images, html, markdown, latex)
Desktop Sandbox boots a Linux desktop with noVNC stream and mouse/keyboard/screenshot primitives for computer-use agents
MCP Gateway and MCP server integrations that expose sandboxes as tools to Claude, ChatGPT, and other MCP clients
LLM-agnostic — works with Anthropic, OpenAI, Mistral, Llama, and any custom model
Built-in integration patterns with LangChain, LlamaIndex, Vercel AI SDK, CrewAI, AutoGen, and Hugging Face
Open-source CLI (`e2b`) for template init, build, list, deploy, sandbox connect, and logs
Apache-2.0 licensed core; the platform is buildable from the e2b-dev/infra Go monorepo for self-hosting on AWS, GCP, Azure, or bare Linux
Enterprise BYOC and on-prem deployments with a forked Firecracker microVM runtime in Rust
Per-second usage-based pricing on CPU, RAM, and storage with a $100 signup credit
Used in production by AI labs, agent startups, and Fortune 100 enterprises; 1B+ sandboxes started and 3.5M+ monthly SDK downloads

Semantic Vocabularies

E2B Dev Context

20 classes · 11 properties

JSON-LD

Example Payloads

E2B Create Sandbox Example

2 fields

EXAMPLE

E2B List Templates Example

2 fields

EXAMPLE

Resources

🌐
Portal
Portal
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🔗
APIReference
APIReference
🔑
Authentication
Authentication
🔗
Documentation
Documentation
🌐
Portal
Portal
🔑
Authentication
Authentication
📝
Signup
Signup
📰
Blog
Blog
📄
ChangeLog
ChangeLog
💬
Support
Support
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
TrustCenter
TrustCenter
🔗
Twitter
Twitter
🔗
LinkedIn
LinkedIn
🔗
Forums
Forums
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
💻
CodeExamples
CodeExamples
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
👥
GitHubRepository
GitHubRepository
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔗
CLI
CLI
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: E2B API
  version: 0.1.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: volumes
    type: folder
  items:
  - info:
      name: GET /volumecontent/{volumeID}/path
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/volumecontent/:volumeID/path'
      params:
      - name: volumeID
        value: ''
        type: path
      - name: path
        value: ''
        type: query
    docs: Get path information
  - info:
      name: PATCH /volumecontent/{volumeID}/path
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/volumecontent/:volumeID/path'
      params:
      - name: volumeID
        value: ''
        type: path
      - name: path
        value: ''
        type: query
      body:
        type: json
        data: '{}'
    docs: Update path metadata
  - info:
      name: DELETE /volumecontent/{volumeID}/path
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/volumecontent/:volumeID/path'
      params:
      - name: volumeID
        value: ''
        type: path
      - name: path
        value: ''
        type: query
    docs: Delete a path
  - info:
      name: GET /volumecontent/{volumeID}/dir
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/volumecontent/:volumeID/dir'
      params:
      - name: volumeID
        value: ''
        type: path
      - name: path
        value: ''
        type: query
      - name: depth
        value: ''
        type: query
        description: Number of layers deep to recurse into the directory
    docs: List directory contents
  - info:
      name: POST /volumecontent/{volumeID}/dir
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/volumecontent/:volumeID/dir'
      params:
      - name: volumeID
        value: ''
        type: path
      - name: path
        value: ''
        type: query
      - name: uid
        value: ''
        type: query
        description: User ID of the created directory
      - name: gid
        value: ''
        type: query
        description: Group ID of the created directory
      - name: mode
        value: ''
        type: query
        description: Mode of the created directory
      - name: force
        value: ''
        type: query
        description: Create the parents of a directory if they don't exist
    docs: Create a directory
  - info:
      name: GET /volumecontent/{volumeID}/file
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/volumecontent/:volumeID/file'
      params:
      - name: volumeID
        value: ''
        type: path
      - name: path
        value: ''
        type: query
    docs: Download file
  - info:
      name: PUT /volumecontent/{volumeID}/file
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/volumecontent/:volumeID/file'
      params:
      - name: volumeID
        value: ''
        type: path
      - name: path
        value: ''
        type: query
      - name: uid
        value: ''
        type: query
        description: User ID of the uploaded file
      - name: gid
        value: ''
        type: query
        description: Group ID of the uploaded file
      - name: mode
        value: ''
        type: query
        description: Mode of the uploaded file
      - name: force
        value: ''
        type: query
        description: Force overwrite of an existing file
    docs: Upload file
bundled: true