---
title: "List Sandboxes"
method: GET
path: "/api/v1/sandboxes"
tags: ["Sandboxes"]
---

# List Sandboxes

`GET /api/v1/sandboxes`

Lists Fabro-managed sandboxes directly from configured sandbox providers.

## Response `200`

Provider-backed sandbox inventory

- SandboxListResponse — Non-paginated provider-backed sandbox inventory response.
  - `data` SandboxInfo[], required
    - `provider` string, required — Sandbox provider kind. `local`, `docker`, and `daytona` are bundled with the server; any other value names a sandbox-driver plugin configured under `server.sandbox.providers.<kind>`.
    - `status` SandboxStatus, required — What the sandbox driver reports about a sandbox. Only `id` and `state` are always present; every other field is null or empty when the provider does not report it.
      - `id` string, required — The provider's stable identifier for the sandbox.
      - `name` string, nullable — The provider's display name, which is not the stable identifier.
      - `state` 'creating' | 'starting' | 'running' | 'stopping' | 'stopped' | 'pausing' | 'paused' | 'resuming' | 'archiving' | 'archived' | 'restoring' | 'resizing' | 'forking' | 'snapshotting' | 'deleting' | 'deleted' | 'error' | 'unknown', required — The sandbox driver's lifecycle state for a sandbox. The provider's own state string is preserved in `SandboxStatus.provider_state`. A reader must treat a value it does not know as `unknown`.
      - `provider_state` string — The provider's own state string, for display and debugging.
      - `error_reason` string, nullable
      - `resources` SandboxResources — Compute resources of a sandbox, in the units the field names give. A field is null when the provider does not report a value or applies its default.
        - `cpu_cores` integer, nullable
        - `memory_mb` integer, nullable
        - `disk_mb` integer, nullable
        - `gpus` integer, nullable
      - `sandbox_kind` 'container' | 'virtual_machine' | 'unknown' — The kind of isolation a sandbox was provisioned with, as observed by the driver. Not an isolation guarantee.
      - `region` string, nullable — The provider region or target the sandbox runs in.
      - `labels` object — Provider-stored labels, including fabro's ownership labels.
      - `image` string, nullable — The image the sandbox runs, when the provider knows it (a Docker container's image reference).
      - `snapshot` string, nullable — The snapshot the sandbox was created from, when the provider knows it (a Daytona snapshot name).
      - `network` union — The network policy in force for a sandbox. A policy without parameters is its name; an allow list carries its entries.
        - 'provider_default' | 'allow_all' | 'block'
        - object
          - `cidr_allow_list` object, required
            - `cidrs` string[], required
        - object
          - `domain_allow_list` object, required
            - `domains` string[], required
      - `workspace_ownership` 'designated' | 'managed' — Who owns a local sandbox's workspace directory. `designated` is a caller-owned directory that deleting the sandbox never touches; `managed` is a directory the driver created and removes.
      - `web_url` string, nullable — The provider's console page for the sandbox, when it has one.
      - `created_at` string, date-time, nullable
      - `updated_at` string, date-time, nullable — The provider's most recent activity or update timestamp for the sandbox.
  - `meta` SandboxListMeta, required — Metadata for provider-backed sandbox inventory.
    - `provider_errors` SandboxProviderLookupError[], required
      - `provider` string, required — Sandbox provider kind. `local`, `docker`, and `daytona` are bundled with the server; any other value names a sandbox-driver plugin configured under `server.sandbox.providers.<kind>`.
      - `message` string, required

## Changes

- **2026-09-12** `36a829c202f5` — 6 breaking, 7 warning, 1 info
  - removed the required property `data/items/id` from the response with the `200` status
  - removed the required property `data/items/labels` from the response with the `200` status
  - removed the required property `data/items/network` from the response with the `200` status
  - removed the required property `data/items/resources` from the response with the `200` status
  - …10 more
- **2026-09-11** `1aa32dec61aa` — 1 breaking, 13 info
  - removed the required property `data/items/status` from the response with the `200` status
  - added the optional property `data/items/display_name` to the response with the `200` status
  - added the optional property `data/items/image` to the response with the `200` status
  - added the optional property `data/items/native_state` to the response with the `200` status
  - …10 more
- **2026-09-11** `d6093538dc27` — 6 breaking, 7 warning, 1 info
  - removed the required property `data/items/id` from the response with the `200` status
  - removed the required property `data/items/labels` from the response with the `200` status
  - removed the required property `data/items/network` from the response with the `200` status
  - removed the required property `data/items/resources` from the response with the `200` status
  - …10 more
- …earlier changes not shown

[Full history](https://skmtc.dev/fabro-sh/apis/fabro-run-api/changes/api/v1/sandboxes/get.md)

---

[API](https://skmtc.dev/fabro-sh/apis/fabro-run-api.md) · [All operations](https://skmtc.dev/fabro-sh/apis/fabro-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fabro-sh/apis/fabro-run-api/revisions/1258a4cf33df?raw)
