---
title: "Retrieve Sandbox"
method: GET
path: "/api/v1/sandboxes/{id}"
tags: ["Sandboxes"]
---

# Retrieve Sandbox

`GET /api/v1/sandboxes/{id}`

Retrieves a Fabro-managed sandbox by provider-native id by searching all configured sandbox providers.

## Path parameters

- `id` string, required

## Response `200`

Sandbox found

- SandboxInfo — Provider-backed inventory record for a Fabro-managed sandbox.
  - `provider` 'local' | 'docker' | 'daytona', required — Sandbox provider discriminator.
  - `id` string, required — Provider-native sandbox id.
  - `display_name` string, nullable — Provider display name when distinct from the native id.
  - `state` 'unknown' | 'provisioning' | 'starting' | 'running' | 'stopping' | 'stopped' | 'paused' | 'deleting' | 'deleted' | 'archived' | 'restoring' | 'resizing' | 'error', required — Normalized sandbox lifecycle state used by the control plane and UI. The original provider-specific state string is preserved in `native_state`.
  - `native_state` string, nullable — Original provider state string before normalization. Display/debugging only; UI behavior keys off `state`.
  - `image` string, nullable — Provider image when surfaced by the sandbox provider.
  - `snapshot` string, nullable — Provider snapshot when surfaced by the sandbox provider.
  - `region` string, nullable — Provider region or target. Null for local-style providers.
  - `web_url` string, nullable — Provider dashboard URL for this sandbox when available.
  - `working_directory` string, nullable — Provider-reported or Fabro-default working directory when available.
  - `resources` SandboxResources, required — Resource configuration for a sandbox. Fields are nullable when the provider does not surface a value or no limit is configured.
    - `cpu_cores` number, double — Configured CPU cores. Null when unavailable.
    - `memory_bytes` integer — Memory limit in bytes. Null when unavailable or unlimited.
    - `disk_bytes` integer — Disk size in bytes. Null when unavailable.
  - `network` SandboxNetwork, required — Provider-neutral public-network policy for sandbox egress and ingress.
    - `egress` SandboxNetworkPolicy, required — Public-network policy for one direction.
      - `mode` 'unknown' | 'open' | 'blocked' | 'cidr_allow_list' | 'essentials_only', required — Provider-neutral public-network policy for one direction.
      - `cidrs` string[], required — CIDR entries when `mode` is `cidr_allow_list`; empty for other modes.
    - `ingress` SandboxNetworkPolicy, required — Public-network policy for one direction.
      - `mode` 'unknown' | 'open' | 'blocked' | 'cidr_allow_list' | 'essentials_only', required — Provider-neutral public-network policy for one direction.
      - `cidrs` string[], required — CIDR entries when `mode` is `cidr_allow_list`; empty for other modes.
  - `labels` object, required — Provider-reported labels.
  - `timestamps` SandboxTimestamps, required — Lifecycle timestamps for a sandbox. Fields are nullable when the provider does not surface a value.
    - `created_at` string, date-time — When the sandbox was created.
    - `last_activity_at` string, date-time — Most recent activity timestamp reported by the provider.

## Other responses

- `404` — No provider found a Fabro-managed sandbox with this id
- `409` — More than one provider matched this sandbox id
- `502` — Provider lookup failed before a definitive result could be determined

---

[API](https://skmtc.net/fabro-sh/apis/fabro-run-api.md) · [All operations](https://skmtc.net/fabro-sh/apis/fabro-run-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fabro-sh/fabro-run-api/versions/bee030053823/schema)
