Get a request
Returns one request with its full phase breakdown: the node's phases (its `Server-Timing` phases, or the final phases of a stream) and the edge's `edge_auth` and `edge_upstream`, which the edge merges in under the same request ID. Use the `x-request-id` of any response, or a problem's `instance`. For a request the edge answered itself (an edge-served operation, or one refused before forwarding), the edge returns its own record: `node` is `null` and only edge phases are listed.
GET
/v1/requests/{request_id}
Returns one request with its full phase breakdown: the node's phases (its `Server-Timing` phases, or the final
phases of a stream) and the edge's `edge_auth` and `edge_upstream`, which the edge merges in under the same
request ID. Use the `x-request-id` of any response, or a problem's `instance`. For a request the edge answered
itself (an edge-served operation, or one refused before forwarding), the edge returns its own record: `node`
is `null` and only edge phases are listed.
Authentication
Bearer Token (b3os_sk_ API key or b3os_pat_ token) API Key (cookie: __Host-b3os_session)
Path Parameters
request_id
string
required
path
Example:
"req_01m5t4yg394wegr3j4y01qb363"Responses
200
The request.
application/jsonid
string
REQUIRED
object
string
REQUIRED
Enum:
requestmethod
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
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).
Enum:
edge, uds, tcp, sandboxsandbox_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
Enum:
edge, nodeduration_ms
number
REQUIRED
trace_id
string | null
REQUIRED
The W3C trace ID from `traceparent`, when sent.
user_agent
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 request record (`request_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/requests/req_01m5t4yg394wegr3j4y01qb363' \ -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/v1/requests/req_01m5t4yg394wegr3j4y01qb363', { 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/requests/req_01m5t4yg394wegr3j4y01qb363', headers=headers)print(response.json())
200
Response
{ "id": "req_01m5t4yg394wegr3j4y01qb363", "object": "request", "method": "POST", "path": "/v1/vision/scrape", "operation_id": "visionScrape", "product": "vision", "status_code": 200, "error_code": null, "org_id": "org_01m5t5hthd29mm5wpza5ndd6mm", "project_id": "prj_01m5t3pf8heewxt65ej3dm577y", "key_id": "key_01m5t5csy2wt4e3er052chyf1x", "node": "n1", "connection": "edge", "sandbox_id": null, "started_at": "2026-10-25T21:30:00.010Z", "duration_ms": 48.9, "request_bytes": 74, "response_bytes": 9120, "phases": [ { "name": "edge_auth", "source": "edge", "duration_ms": 0.4 }, { "name": "edge_upstream", "source": "edge", "duration_ms": 47.8 }, { "name": "fetch", "source": "node", "duration_ms": 41.2 }, { "name": "extract", "source": "node", "duration_ms": 3.9 }, { "name": "total", "source": "node", "duration_ms": 45.8 } ], "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736", "user_agent": "b3os-sdk/0.1.0"}
API Playground
Try this endpoint
GET
/v1/requests/{request_id}