Sandboxes

Create a short-lived exec token for WebSocket terminal

Returns a single-use token (TTL 30s) for establishing a WebSocket terminal. WS endpoint: wss://<host>/ws/clusters/{clusterID}/sandboxes/{sandboxId}/terminal?token=<token> The sandbox must be in Running phase.

POST
/sandboxes/{sandboxId}/exec-token

Returns a single-use token (TTL 30s) for establishing a WebSocket terminal. WS endpoint: wss:///ws/clusters/{clusterID}/sandboxes/{sandboxId}/terminal?token= The sandbox must be in Running phase.

Authorization

ApiKeyAuth
AGENTBOX-API-KEY<token>

In: header

Path Parameters

sandboxId*string

Sandbox identifier.

  • Single-cluster: a bare UUID v7 such as 5de15c92-8fb5-440f-a9ea-7f62f734f1b9.
  • Cross-cluster: a {clusterID}.{uuid} composite such as cluster1.5de15c92-8fb5-440f-a9ea-7f62f734f1b9 (dot-separated). The clusterID prefix tells the gateway which Worker cluster owns this sandbox; the server parses it out transparently. Discover valid cluster IDs via GET /clusters.

Because of the composite form, this field is NOT a strict RFC 4122 UUID — clients must treat it as an opaque string. Parsing reference: pkg/utils/cluster/sandbox_id.go::SplitSandboxID.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://sandboxes/5de15c92-8fb5-440f-a9ea-7f62f734f1b9/exec-token"
{  "token": "string"}
{  "error": "string",  "errorCode": "API_KEY_REQUIRED",  "detail": null}
{  "error": "string",  "errorCode": "API_KEY_REQUIRED",  "detail": null}
{  "error": "string",  "errorCode": "API_KEY_REQUIRED",  "detail": null}
{  "error": "string",  "errorCode": "API_KEY_REQUIRED",  "detail": null}