GET /v1/sandboxes/{sandbox_id}/requests
Lists the requests code inside this sandbox made to B3OS in the last 7 days (its model calls, scrapes, searches and calls to other sandboxes), newest first, from the node's request log. These are the records GET /v1/requests?sandbox_id= lists, for a caller that may read the sandbox: it needs only sandboxes:read, not platform:read, and never returns another sandbox's records. It takes the same paging and the product, operation_id, status, trace_id and since filters; any other query parameter is 400 invalid_request. Requests made to the sandbox's public ports are not listed. A sandbox stopped more than 7 days ago is not found.

Authentication

Bearer Token (b3os_sk_ API key or b3os_pat_ token)

Path Parameters

sandbox_id string required path
The sandbox ID (sbx_…).
Pattern ^sbx_[0-9a-hjkmnp-tv-z]{26}$
Example: "sbx_01m5t68q1b590rj801nbzsqzkk"

Query Parameters

limit integer optional query
Page size, from 1 to 100.
Default 20Min 1Max 100
cursor string optional query
Opaque cursor from the previous page's next_cursor. Omit it for the first page.
Max length 512
product string optional query
Max length 32
operation_id string optional query
Max length 64
status string optional query
Only requests that succeeded (2xx) or failed (4xx, 5xx).
Values "2xx" "4xx" "5xx"
trace_id string optional query
Only requests of this W3C trace (the trace id of their traceparent).
Pattern ^[0-9a-f]{32}$
since string (date-time) optional query

Responses

200 A page of the sandbox's requests.
application/json
object string REQUIRED
Values list
data object[] REQUIRED
Array of:
id string REQUIRED
object string REQUIRED
Values request
method string REQUIRED
path string REQUIRED
The path without the query string.
operation_id string | null REQUIRED
product string | null REQUIRED
status_code integer REQUIRED
error_code string | null REQUIRED
error_detail string | null
Why a 4xx or 5xx answer failed, in the server's own words: the first 200 characters of its problem's detail (or a compatibility surface's message). null for a success, or when the server recorded none; absent from records written before it was recorded.
org_id string REQUIRED
project_id string REQUIRED
key_id string | null REQUIRED
The API key behind the request (for sandbox calls, the key that created the sandbox).
node string | null REQUIRED
The node that served it; null for a request the edge answered itself.
connection string REQUIRED
How the request reached B3OS: edge (through beta-api.b3os.org or the dashboard; forwarded to the node, or answered by the edge itself), uds (the node's Unix socket), tcp (the node's loopback TCP listener) or sandbox (from inside a sandbox, over vsock).
Values edge uds tcp sandbox
sandbox_id string | null REQUIRED
The calling sandbox, for sandbox connections; otherwise null.
started_at string (date-time) REQUIRED
duration_ms number REQUIRED
From the first request byte read to the last response byte written, measured on the node (at the edge for a request the edge answered itself); for streams, until the stream ended.
request_bytes integer REQUIRED
response_bytes integer REQUIRED
phases object[] REQUIRED
The node's phases (source: node) and the edge's edge_* phases (source: edge), in order.
Array of:
name string REQUIRED
source string REQUIRED
Values edge node
duration_ms number REQUIRED
trace_id string | null REQUIRED
The W3C trace ID from traceparent, when sent.
user_agent string | null REQUIRED
source string REQUIRED
Who made the request: api_key (an API key), cli_token (the CLI's device-login token), dashboard (a signed-in dashboard session; its successful reads are not logged, its changes and errors are), sandbox (code inside a sandbox, as its creating key), routine (a routine run, as the key that published its version), local (a host-local caller on the node's Unix socket), public (no credential: a webhook or signed callback to a public route, or a request refused before authentication), address (a visitor of an app address, <label>.b3os.io) or preview (a visitor of a sandbox port preview). address and preview records belong to the sandbox's project; their path is the app's path, without the query, cut at 1,024 bytes.
Values api_key cli_token dashboard sandbox routine local public address preview
next_cursor string | null REQUIRED
400 The request failed validation (invalid_request, invalid_url).
401 Missing, malformed, expired or revoked credentials (unauthorized).
403 Authenticated but not allowed (forbidden, egress_denied).
404 No such sandbox in this project (sandbox_not_found).
429 A rate, concurrency or quota limit applies (rate_limited, concurrency_limited, quota_exceeded).
500 Something failed inside B3OS (internal). Retry with backoff.
503 The node or the product is not available right now (node_unavailable, product_unavailable, capacity_unavailable).
curl -X GET 'https://beta-api.b3os.org/v1/sandboxes/sbx_01m5t68q1b590rj801nbzsqzkk/requests' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/v1/sandboxes/sbx_01m5t68q1b590rj801nbzsqzkk/requests', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/v1/sandboxes/sbx_01m5t68q1b590rj801nbzsqzkk/requests', headers=headers)print(response.json())
200 Response
{  "object": "list",  "data": [    {      "id": "req_01m5t6d8ksbzrfxhqhzge06mqn",      "object": "request",      "method": "POST",      "path": "/v1/infer/chat/completions",      "operation_id": "inferCreateChatCompletion",      "product": "infer",      "status_code": 200,      "error_code": null,      "org_id": "org_01m5t5hthd29mm5wpza5ndd6mm",      "project_id": "prj_01m5t3pf8heewxt65ej3dm577y",      "key_id": "key_01m5t5csy2wt4e3er052chyf1x",      "node": "n1",      "connection": "sandbox",      "sandbox_id": "sbx_01m5t68q1b590rj801nbzsqzkk",      "started_at": "2026-10-25T21:29:58.204Z",      "duration_ms": 812.4,      "request_bytes": 1830,      "response_bytes": 2210,      "phases": [],      "trace_id": null,      "user_agent": "openai-python/2.6.0",      "source": "sandbox"    }  ],  "next_cursor": null}
Ask a question... ⌘I