---
title: "Build a sandbox's active version (or return the build already running)"
method: POST
path: "/sandbox-templates/{templateId}/builds"
tags: ["sandbox-templates"]
---

# Build a sandbox's active version (or return the build already running)

`POST /sandbox-templates/{templateId}/builds`

## Request

- Base URL: `https://api.letsship.ai/v1`
- URL: `https://api.letsship.ai/v1/sandbox-templates/{templateId}/builds`
- Auth: none declared

## Path parameters

- `templateId` string, required

## Response `202`

Build queued, or the one already running

- SandboxTemplateBuild
  - `id` string, required
  - `templateId` string, required
  - `versionId` string, required
  - `version` integer, nullable, required
  - `status` 'queued' | 'building' | 'ready' | 'failed', required
  - `phase` 'validate' | 'run-steps' | 'snapshot' | 'warm', required
  - `trigger` 'save' | 'base-change' | 'repo-file' | 'expiry' | 'manual' | 'rollback', required
  - `queuedAt` string, required
  - `startedAt` string, nullable, required
  - `finishedAt` string, nullable, required
  - `durationMs` integer, nullable, required
  - `stepsMs` integer, nullable, required
  - `snapshotBytes` integer, nullable, required
  - `warmMs` integer, nullable, required
  - `failure` object, nullable, required
    - `phase` 'validate' | 'run-steps' | 'snapshot' | 'warm', required
    - `reason` string, required
    - `message` string, required

## Other responses

- `403`: Role insufficient
- `404`: Not found
- `503`: Builds unavailable

---

[API](https://skmtc.dev/letsship/apis/ship-api.md) · [All operations](https://skmtc.dev/letsship/apis/ship-api/llms.txt) · [OpenAPI document](https://skmtc.dev/letsship/apis/ship-api/revisions/e6eac1bcadd4?raw)
