Skip to main content

Overview

The sandbox tool lets the model run code during an Agent API request. The agent can execute code in an isolated container, inspect the output, and use the result in its final answer. You don’t supply the code. You enable the tool, and the model writes and runs the code itself based on your prompt and instructions - then reads its own stdout/stderr back and uses it in the answer. The exact code the model ran is returned to you in the response (see Response shape), so you can verify what executed. Enable the tool by adding it to the tools array. The model decides when to call it based on your prompt and instructions.

Use cases

  • Web search
  • Numeric calculations and statistical analysis
  • Data cleaning, parsing, and transformation
  • Code execution to check logic or reproduce an error
  • Structured artifact generation, such as CSV, JSON, or reports
  • Multi-step workflows that need intermediate files or computed state

How the container works

The sandbox is an isolated Linux container. Knowing what it can and can’t do helps you predict when the model will reach for it and what to expect back.

Calling other tools from inside the sandbox

The container ships with a preinstalled Perplexity SDK, so code the model runs inside the sandbox can call Web Search, Fetch URL Content, and People Search directly - without you adding those tools to the request - then compute on what they return. Each such call is billed at its standard per-invocation rate (see Pricing).

Running in the background

For long-running sandbox calls, submit the request with background: true and poll the response by ID until it completes.

Error handling

Sandbox errors are returned through the normal Agent API response.

Limits and quotas

Sandbox runs inside Agent API requests and is subject to Agent API rate limits. See Rate Limits & Usage Tiers for tier-based request limits.

Response shape

When the model calls the sandbox tool, the Agent API response includes a sandbox_results item in its output array alongside any message items. A single response can contain multiple sandbox_results items if the model makes more than one sandbox call. Each sandbox_results item describes one sandbox invocation and nests the per-execution output inside a results array. Each entry in results has the following fields: Example:
For the full request and response schema, see the Agent API reference.

Retrieving generated files

When code in the sandbox writes a file and delivers it with the share_file tool, the response output array includes a share_file item. The file content is not returned inline — retrieve it with the response files endpoints, using the response id. List the files a response produced:
Each entry has the following fields: Download a file’s content by its id. The endpoint returns the raw file bytes (not JSON), with a Content-Type matching the file and a Content-Disposition: attachment header carrying the original filename.

Pricing

sandbox is billed on three axes: Sandbox invocations are counted under usage.tool_calls_details.sandbox.invocation. See Pricing for the full Agent API tool pricing table.