Skip to main content
POST
Build template
Builds the golden snapshot for a version: Orgo boots a computer, runs the build steps and app installs, then captures a paused snapshot. A built template launches in seconds; an unbuilt one cannot launch at all. This call is asynchronous and returns immediately with 202 Accepted. The build is queued for a dedicated build runner. Track progress by polling Get build status. Requests are idempotent while a build is in flight: if a job for the same content is already queued or running, you get that job back instead of a second one. At most 10 of your builds can be queued or running at once.
Building templates requires a Scale plan or higher. You can also build at publish time with POST /templates?auto_build=true. Reading the build status is not gated.
The build is where on_first_boot runs, and it never runs again on a launch. on_every_boot runs during the build and again on any launch that cold-boots, such as one that injects secrets. See hooks.

Path parameters

string
required
Template namespace.
string
required
Template name.
string
required
Version (semver) to build.

Query parameters

string
Build runner to use: standard (2 vCPU, 8 GB), fast (4 vCPU, 16 GB), or turbo (8 vCPU, 32 GB). Omitted, Orgo picks the smallest runner that holds the template’s hardware. Any other value returns 400. A runner smaller than the template’s hardware returns 422.
boolean
default:"false"
Set to true to create a computer from the template as soon as the build is ready. Only the exact string true enables it. The launch goes through the same plan and quota checks as Create computer.
string
Workspace ID for the computer that launch=true creates. You must belong to the workspace, or the call returns 403. Omitted, Orgo picks one of your workspaces.

Response

string
Template ref.
string
Content-addressed digest being built.
string
queued while the job waits for a runner, building once a runner has claimed it.
string
Build job ID.
string
Current job phase, e.g. queued.
string
Build runner tier: standard, fast, or turbo.
integer
Queued jobs across all accounts that will run before this one.
boolean
Whether a computer is created when the build is ready. For a job that was already in flight, this is that job’s setting, not this request’s.
The shape above comes from the build queue. Production runs with the queue on, so this is the shape you get from www.orgo.ai. The queue is off by default in a deployment that does not enable it, and there the call still returns 202, but with the older build-result shape: ref, digest, and status (building, or ready when a golden snapshot for this content already exists), without jobId, phase, tier, ahead, or launchOnReady. The tier, launch, and project query parameters are ignored in that mode.

Example

Response

Cancel a build

Send a DELETE to the same build path to cancel a build that no runner has claimed yet. It returns 202 with { "status": "cancelled" }, and the version’s status reads not_built afterwards. A build a runner has already claimed runs to completion. When nothing is queued, Orgo falls back to cancelling on the template registry host: if that host had a build to cancel, the call returns 202 with { "status": "cancelling" }. Otherwise, including for a build a runner has already claimed, it returns 404 with { "status": "idle" }.

Errors

DELETE (cancel) is not plan-gated and takes no query parameters. Its 404 body is { "status": "idle" }, not an error object.

Authorizations

Authorization
string
header
required

API key authentication. Get your key at orgo.ai/workspaces

Path Parameters

namespace
string
required
name
string
required
version
string
required

Query Parameters

tier
enum<string>

Build runner: standard (2 vCPU, 8 GB), fast (4 vCPU, 16 GB), or turbo (8 vCPU, 32 GB). Omitted, the smallest runner that holds the template's hardware. Any other value returns 400; a runner smaller than the template's hardware returns 422.

Available options:
standard,
fast,
turbo
launch
string
default:false

true creates a computer from the template as soon as the build is ready, with the same plan and quota checks as POST /computers. Only the exact string true enables it.

project
string

Workspace ID for the computer that launch=true creates. You must belong to it, or the call returns 403. Omitted, Orgo picks one of your workspaces.

Response

Build queued, or the in-flight job for the same content

A build queued for a dedicated build runner.

ref
string
Example:

"default/claude-code@1.0.0"

digest
string

Content-addressed digest being built.

status
enum<string>

queued while the job waits for a runner, building once a runner has claimed it.

Available options:
queued,
building
jobId
string

Build job ID.

phase
string

Current job phase, such as queued.

tier
enum<string>

Build runner tier.

Available options:
standard,
fast,
turbo
ahead
integer

Queued jobs across all accounts that will run before this one.

launchOnReady
boolean

Whether a computer is created when the build is ready. For a job already in flight, that job's setting, not this request's.