Xeonr Developer Docs
API SpecificationSandboxes

Tail Sandbox Logs

POST
/containers.api.v1.SandboxService/TailSandboxLogs

Streams the sandbox's retained run log (workload output plus typed lifecycle markers) across its whole life, including suspends. Starts after from_offset (0 = oldest retained), optionally restricted to one run. limit caps history replayed per read (0 = 2000). With follow, stays open and polls for new output about every 2 seconds. sandbox_id is required (InvalidArgument).

Access: namespace VIEWER or above (read)

Authorization

BearerAuth
AuthorizationBearer <token>

A namespace-scoped API key (cpk_…) for machines, or a Xeonr Auth OIDC token for humans. The key's namespace and role are pinned server-side.

In: header

Header Parameters

Connect-Protocol-Version?number

Define the version of the Connect protocol

Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/connect+json

sandboxId?string
Length1 <= length <= 64
fromOffset?string

Resume after this cursor. 0 starts at the oldest retained chunk.

Formatint64
Range0 <= value
follow?boolean

Stay open and stream new output as it arrives. False returns the retained history and ends. validate:skip a bool has no bounds

limit?integer

Cap on history chunks replayed before live output begins. 0 = server default. validate:skip 0 = server default (2000); no upper bound is applied server-side

run?integer

Restrict to a single run. 0 = every run, in order. validate:skip a filter; any run number is accepted (unknown runs return nothing)

[key: string]?never

Response Body

application/connect+json

application/connect+json

curl -X POST "https://containers.xeonr.io/containers.api.v1.SandboxService/TailSandboxLogs" \  -H "Connect-Protocol-Version: 1" \  -H "Connect-Timeout-Ms: 1000" \  -H "Content-Type: application/connect+json" \  -d ''
{
  "chunk": {
    "stderr": true,
    "atUnix": "string",
    "offset": "string",
    "run": 0,
    "data": "string"
  }
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}