---
title: "Wait for a sandbox to become ready"
method: GET
path: "/sandboxes/{id}/wait"
tags: ["Sandboxes"]
---

# Wait for a sandbox to become ready

`GET /sandboxes/{id}/wait`

## Request

- Base URL: `https://api.thundercompute.com:8443/v1`
- URL: `https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait`
- Auth: API key in header `Authorization`

## Path parameters

- `id` string, required

## Query parameters

- `timeout_seconds` number

## Response `200`

OK

- ThundertypesSandboxGetResponse
  - `created_at` string, required
  - `desired_network_policy_generation` integer: DesiredNetworkPolicyGeneration identifies accepted desired configuration.
  - `expires_at` string
  - `failure` string
  - `failure_code` string: FailureCode and Failure explain a failed sandbox. Without them a caller sees only "failed" and cannot tell a capacity refusal from a broken control plane, which are acted on very differently.
  - `gatedFeatures` object
  - `id` string, required
  - `image_id` string
  - `lifetime` ThundertypesSandboxLifetime, required
    - `enforce_ttl` boolean
    - `max_grace_seconds` integer
    - `max_ttl_seconds` integer
  - `logs` ThundertypesSandboxLog[]
    - `data` ThundertypesSandboxLogData
      - `message` string
      - `node_name` string
      - `phase` string
    - `event` 'created' | 'scheduled' | 'started' | 'ready' | 'finished' | 'failed' | 'info', required
    - `id` string, required
    - `sandbox_id` string, required
    - `timestamp` string, required
  - `name` string, required
  - `network_policy` ThundertypesSandboxNetworkPolicy, required
    - `cidr_allowlist` string[]
    - `domain_allowlist` string[]
    - `internet_access` 'closed' | 'open' | 'restricted', required
  - `network_policy_generation` integer: NetworkPolicyGeneration is the last confirmed enforced generation.
  - `queued` boolean: Queued is true while a queue-admitted sandbox is waiting for placement.
  - `spec` ThundertypesSandboxResourceSpec, required
    - `cpu_count` integer, required
    - `gpu_count` integer
    - `gpu_type` 'A6000' | 'A100' | 'A100XL' | 'H100'
    - `memory_gib` integer, required
    - `storage_gib` integer, required
  - `ssh` ThundertypesSandboxSSHConnection
    - `host` string
    - `port` integer
    - `user` string
  - `status` 'created' | 'ready' | 'finished' | 'failed', required
  - `stopped_at` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `408`: Request Timeout

## Changes

- **2026-11-04** `62bf97c7bba4`: 1 info
  - added the optional property `queued` to the response with the `200` status
- **2026-10-31** `ea9a917bfab8`: 2 info
  - added the optional property `desired_network_policy_generation` to the response with the `200` status
  - added the optional property `network_policy_generation` to the response with the `200` status
- **2026-10-17** `d1b3a22ac150`: 1 info
  - added the optional property `gatedFeatures` to the response with the `200` status
- **2026-09-14** `331d1ab62bd5`: 2 warning
  - added the new `A100XL` enum value to the `spec/gpu_type` response property for the response status `200`
  - added the new `A100XL` enum value to the `spec/gpu_type` response property for the response status `200`
- **2026-09-10** `54488acbedcb`: 1 info
  - added the optional property `image_id` to the response with the `200` status

[Operation history](https://skmtc.dev/thundercompute/apis/thunder-compute-api/changes/sandboxes/:id/wait/get.md)

---

[API](https://skmtc.dev/thundercompute/apis/thunder-compute-api.md) - [All operations](https://skmtc.dev/thundercompute/apis/thunder-compute-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thundercompute/apis/thunder-compute-api/revisions/62bf97c7bba4?raw)
