https://<your-control-plane-url>/v1. Authenticate with your organisation API key in the X-API-Key header, or an OIDC bearer token in Authorization: Bearer.
Builds are asynchronous. After you start a build with
POST /v1/templates/builds,
poll GET /v1/templates/builds/{buildId} for status and tail output with
GET /v1/templates/builds/{buildId}/logs until the build reaches a terminal state.POST /v1/templates/builds
Starts an asynchronous template build from an OCI image. The image tag is resolved to an immutable digest immediately and is never re-consulted. If you supply an alias, FissionPlane atomically re-points the alias to the new artifact when the build succeeds — sandboxes being created from the alias mid-build continue to resolve to the previous artifact.string
required
OCI image reference, for example
node:22 or
registry.example.com/myapp:v1.2.3. The tag is resolved to a digest when
the build starts.string
Template alias to point at the new artifact when the build succeeds. Must
match
^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$. If the alias already exists
it is re-pointed atomically on success.object[]
Ordered recipe steps executed inside the build VM. Up to 128 steps.
string
Command started at boot before the warm snapshot is captured. The captured
memory image includes this process already running, so sandboxes resume into
a pre-warmed state.
string
Readiness probe that the warm-up phase waits for before capture. The snapshot
is taken only once this command exits zero, so resumed sandboxes start past
this point.
object
Compute shape for sandboxes created from this template.
201 Created
string
required
24-character NanoID for this build. Use it to poll status and read logs.
string
required
Initial status, always
queued. Transitions to building, then succeeded
or failed.string
required
The image reference as you supplied it.
string
The resolved immutable digest, once the builder has resolved it.
string
The alias requested, if any.
string
required
ISO 8601 timestamp.
400 malformed request · 401 unauthenticated · 403 forbidden · 429 rate limited
GET /v1/templates/builds/
Gets the current status of a template build. Poll this endpoint after starting a build to detect when it reaches a terminal state.string
required
The 24-character build NanoID returned by
POST /v1/templates/builds.200 OK
string
required
Build identifier.
string
required
One of
queued, building, succeeded, or failed. queued and building
are in progress; succeeded and failed are terminal.string
The produced template artifact (
sha256:...). Present only once status is
succeeded.string
A description of what failed. Present only when
status is failed.string
ISO 8601 timestamp when the build reached a terminal state.
401 unauthenticated · 404 not found
GET /v1/templates/builds//logs
Returns log entries from a template build starting atoffset. Poll this endpoint alongside GET /v1/templates/builds/{buildId} to tail build output. A call at the current end of the log returns an empty page and is not an error.
string
required
The 24-character build NanoID.
integer
Entry offset from which to start reading. Default
0. Pass the next_offset
from the previous response to read the next page.200 OK
object[]
required
Log entries for this page.
integer
required
Pass as
offset on the next poll to continue reading from where this page
left off.401 unauthenticated · 404 not found
GET /v1/templates
Lists templates visible to your organisation, most recently created first.integer
Page size. Between 1 and 100, default 20.
string
Opaque cursor from a previous page’s
next_cursor. Omit for the first page.200 OK
Template[]
required
Array of template objects.
string
Cursor for the next page. Absent or null on the last page.
GET /v1/templates/
Gets a template by alias or template ID. Because aliases are mutable, reading a template and then creating a sandbox from it can observe different artifacts if the alias is re-pointed between the two calls. Theartifact_id on the sandbox record always reflects what was actually used.
string
required
A template alias (e.g.
node-tools) or a template ID (NanoID).200 OK
string
required
24-character NanoID for this template record.
string
The mutable alias pointing at the current artifact, if one is set.
string
required
The immutable
sha256:... digest the alias currently resolves to.string
Optional human-readable description.
object
Compute shape defined by this template.
string
required
ISO 8601 timestamp.
401 unauthenticated · 404 not found
DELETE /v1/templates/
Deletes the template record and its alias. The underlying artifact bytes are released by the garbage collector once nothing else references them. Existing sandboxes already created from the artifact continue to run unaffected.string
required
A template alias or template ID.
204 No Content
Error codes: 401 unauthenticated · 404 not found · 409 template is referenced by an in-progress build