SandboxApi
Python
list
Python
api_key: API key to use for authentication, defaults toE2B_API_KEYenvironment variablequery: Filter the list of sandboxes, e.g. by metadataSandboxQuery(metadata={"key": "value"}), if there are multiple filters they are combined with AND.domain: Domain to use for the request, only relevant for self-hosted environmentsdebug: Enable debug mode, all requested are then sent to localhostrequest_timeout: Timeout for the request in secondsheaders: Additional headers to send with the requestproxy: Proxy to use for the request
Filesystem
Python
read
Python
str.
Arguments:
path: Path to the fileuser: Run the operation as this userformat: Format of the file content—textby defaultrequest_timeout: Timeout for the request in seconds
str
read
Python
bytearray.
Arguments:
path: Path to the fileuser: Run the operation as this userformat: Format of the file content—bytesrequest_timeout: Timeout for the request in seconds
bytearray
read
Python
Iterator[bytes].
Arguments:
path: Path to the fileuser: Run the operation as this userformat: Format of the file content—streamrequest_timeout: Timeout for the request in seconds
Iterator[bytes]
write
Python
path: Path to the filedata: Data to write to the file, can be astr,bytes, orIO.user: Run the operation as this userrequest_timeout: Timeout for the request in seconds
write
Python
files: list of files to writeuser: Run the operation as this userrequest_timeout: Timeout for the request
list
Python
path: Path to the directorydepth: Depth of the directory to listuser: Run the operation as this userrequest_timeout: Timeout for the request in seconds
exists
Python
path: Path to a file or a directoryuser: Run the operation as this userrequest_timeout: Timeout for the request in seconds
True if the file or directory exists, False otherwise
get_info
Python
path: Path to a file or a directoryuser: Run the operation as this userrequest_timeout: Timeout for the request in seconds
remove
Python
path: Path to a file or a directoryuser: Run the operation as this userrequest_timeout: Timeout for the request in seconds
rename
Python
old_path: Path to the file or directory to renamenew_path: New path to the file or directoryuser: Run the operation as this userrequest_timeout: Timeout for the request in seconds
make_dir
Python
path: Path to a new directory. For example ‘/dirA/dirB’ when creating ‘dirB’.user: Run the operation as this userrequest_timeout: Timeout for the request in seconds
True if the directory was created, False if the directory already exists
watch_dir
Python
path: Path to a directory to watchuser: Run the operation as this userrequest_timeout: Timeout for the request in secondsrecursive: Watch directory recursively
WatchHandle object for stopping watching directory
WatchHandle
Python
.stop() to stop watching the directory.
stop
Python
get_new_events
Python
Sandbox
Python
- Access Linux OS
- Create, list, and delete files and directories
- Run commands
- Run isolated code
- Access the internet
Sandbox() to create a new sandbox.
Example:
Python
files
Python
commands
Python
pty
Python
sandbox_id
Python
sandbox_domain
Python
__init__
Python
base sandbox template.
Arguments:
template: Sandbox template name or IDtimeout: Timeout for the sandbox in seconds, default to 300 seconds. Maximum time a sandbox can be kept alive is 24 hours (86_400 seconds) for Pro users and 1 hour (3_600 seconds) for Hobby usersmetadata: Custom metadata for the sandboxenvs: Custom environment variables for the sandboxapi_key: E2B API Key to use for authentication, defaults toE2B_API_KEYenvironment variablerequest_timeout: Timeout for the request in secondsproxy: Proxy to use for the request and for the requests made to the returned sandboxallow_internet_access: Allow sandbox to access the internet, defaults toTrue
is_running
Python
request_timeout: Timeout for the request in seconds
True if the sandbox is running, False otherwise
Example
Python
connect
Python
sandbox_id: Sandbox IDapi_key: E2B API Key to use for authentication, defaults toE2B_API_KEYenvironment variableproxy: Proxy to use for the request and for the requests made to the returned sandbox
Python
kill
Python
request_timeout: Timeout for the request in seconds
True if the sandbox was killed, False if the sandbox was not found
kill
Python
sandbox_id: Sandbox IDapi_key: E2B API Key to use for authentication, defaults toE2B_API_KEYenvironment variablerequest_timeout: Timeout for the request in secondsproxy: Proxy to use for the request
True if the sandbox was killed, False if the sandbox was not found
kill
Python
request_timeout: Timeout for the request
True if the sandbox was killed, False if the sandbox was not found
set_timeout
Python
.set_timeout.
Maximum time a sandbox can be kept alive is 24 hours (86_400 seconds) for Pro users and 1 hour (3_600 seconds) for Hobby users.
Arguments:
timeout: Timeout for the sandbox in secondsrequest_timeout: Timeout for the request in seconds
set_timeout
Python
.set_timeout.
Maximum time a sandbox can be kept alive is 24 hours (86_400 seconds) for Pro users and 1 hour (3_600 seconds) for Hobby users.
Arguments:
sandbox_id: Sandbox IDtimeout: Timeout for the sandbox in secondsapi_key: E2B API Key to use for authentication, defaults toE2B_API_KEYenvironment variablerequest_timeout: Timeout for the request in secondsproxy: Proxy to use for the request
get_info
Python
request_timeout: Timeout for the request in seconds
get_info
Python
sandbox_id: Sandbox IDapi_key: E2B API Key to use for authentication, defaults toE2B_API_KEYenvironment variabledomain: E2B domain to use for authentication, defaults toE2B_DOMAINenvironment variabledebug: Whether to use debug mode, defaults toE2B_DEBUGenvironment variablerequest_timeout: Timeout for the request in secondsheaders: Custom headers to use for the requestproxy: Proxy to use for the request
get_info
Python
request_timeout: Timeout for the request in seconds
get_metrics
Python
start: Start time for the metrics, defaults to the start of the sandboxend: End time for the metrics, defaults to current timerequest_timeout: Timeout for the request in seconds
get_metrics
Python
sandbox_id: Sandbox IDstart: Start time for the metrics, defaults to the start of the sandboxend: End time for the metrics, defaults to current timeapi_key: E2B API Key to use for authentication, defaults toE2B_API_KEYenvironment variablerequest_timeout: Timeout for the request in seconds
get_metrics
Python
start: Start time for the metrics, defaults to the start of the sandboxend: End time for the metrics, defaults to current timerequest_timeout: Timeout for the request in seconds
Pty
Python
kill
Python
pid: Process ID of the PTYrequest_timeout: Timeout for the request in seconds
true if the PTY was killed, false if the PTY was not found
send_stdin
Python
pid: Process ID of the PTYdata: Input data to sendrequest_timeout: Timeout for the request in seconds
create
Python
size: Size of the PTYuser: User to use for the PTYcwd: Working directory for the PTYenvs: Environment variables for the PTYtimeout: Timeout for the PTY in secondsrequest_timeout: Timeout for the request in seconds
resize
Python
pid: Process ID of the PTYsize: New size of the PTYrequest_timeout: Timeout for the request in secondss
Commands
Python
list
Python
request_timeout: Timeout for the request in seconds
kill
Python
SIGKILL signal to kill the command.
Arguments:
pid: Process ID of the command. You can get the list of processes usingsandbox.commands.list()request_timeout: Timeout for the request in seconds
True if the command was killed, False if the command was not found
send_stdin
Python
sandbox.commands.list().
:param data: Data to send to the command
:param request_timeout: Timeout for the request in seconds
run
Python
cmd: Command to executebackground:Falseif the command should be executed in the foreground,Trueif the command should be executed in the backgroundenvs: Environment variables used for the commanduser: User to run the command ascwd: Working directory to run the commandon_stdout: Callback for command stdout outputon_stderr: Callback for command stderr outputtimeout: Timeout for the command connection in seconds. Using0will not limit the command connection timerequest_timeout: Timeout for the request in seconds
CommandResult result of the command execution
run
Python
cmd: Command to executebackground:Falseif the command should be executed in the foreground,Trueif the command should be executed in the backgroundenvs: Environment variables used for the commanduser: User to run the command ascwd: Working directory to run the commandtimeout: Timeout for the command connection in seconds. Using0will not limit the command connection timerequest_timeout: Timeout for the request in seconds
CommandHandle handle to interact with the running command
connect
Python
CommandHandle.wait() to wait for the command to finish and get execution results.
Arguments:
pid: Process ID of the command to connect to. You can get the list of processes usingsandbox.commands.list()timeout: Timeout for the connection in seconds. Using0will not limit the connection timerequest_timeout: Timeout for the request in seconds
CommandHandle handle to interact with the running command
CommandHandle
Python
pid
Python
__iter__
Python
disconnect
Python
sandbox.commands.connect method.
wait
Python
CommandExitException.
Arguments:
on_pty: Callback for pty outputon_stdout: Callback for stdout outputon_stderr: Callback for stderr output
CommandResult result of command execution
kill
Python
SIGKILL signal to kill the command.
Returns:
Whether the command was killed successfully