`GET /sandboxes/{id}/logs`

Durable per-sandbox logs (service output + exec activity) that survive the sandbox. Returns 501 when the daemon has no log store configured.

### Authorizations

- `bearerAuth` — HTTP bearer. Daemon API key. Omit on a keyless loopback daemon.

### Path parameters

- `id` string · required — Sandbox ID, e.g. sbx_ab12cd34.

### Query parameters

- `since` integer (int64) · optional — Byte offset to read from; -1 (default) tails the recent log.
- `source` string · optional — Filter by source: service | exec | all (default all).

### Responses

**200** — OK

`application/json`:

- `next_offset` integer (int64) · optional
- `records` array of LogRecord | null · optional
  - `source` string · optional
  - `stream` string · optional
  - `text` string · optional
  - `time_ms` integer (int64) · optional

**400** — Bad Request

`application/json`:

- `error` string · optional

**404** — Not Found

`application/json`:

- `error` string · optional

**501** — Not Implemented

`application/json`:

- `error` string · optional
