Getting started
Create an API key and walk the read endpoints with curl — identity, credits, projects, scenes, artifacts, download.
Everything below runs verbatim against production. You need a Scenebrew
account and curl; jq makes the JSON easier to read but is optional.
Create an API key
In the app, open Settings → API Keys and choose Create key. Give it a name you will recognise in the last used column later, and pick a scope:
- Read-only is enough for this walkthrough.
- Read & write is what you need to generate scenes and to connect the MCP server.
The key is shown once. It starts with sbk_live_; copy it into an
environment variable and never into a repository — see
Authentication for scopes and key hygiene.
export SCENEBREW_API_KEY="sbk_live_…"Who am I?
GET /v1/me answers with the workspace, user and key behind the token —
the first call to make from any new environment.
curl -s https://api.scenebrew.com/v1/me \
-H "Authorization: Bearer $SCENEBREW_API_KEY"{
"tenant": { "slug": "acme-games", "name": "Acme Games" },
"user": { "email": "you@example.com", "name": "You" },
"key": { "name": "Laptop", "prefix": "sbk_live_a1b2c3" },
"scopes": ["read"],
"plan": "Solo"
}A 401 here means the header is missing or the key is invalid or revoked;
see Errors.
GET /v1/me/credits is the balance and the most recent ledger entries, each
naming the operation that charged it — the number to compare before and
after an AI step:
curl -s https://api.scenebrew.com/v1/me/credits \
-H "Authorization: Bearer $SCENEBREW_API_KEY" | jq '{balance, plan}'List your projects
Scenes live in projects. Collections are cursor-paginated:
pass a limit up to 100 and follow next_cursor until it is null.
curl -s "https://api.scenebrew.com/v1/projects?limit=20" \
-H "Authorization: Bearer $SCENEBREW_API_KEY" | jq{
"items": [
{
"id": "0192a7c4-3f5e-7c8a-9b1d-2e3f4a5b6c7d",
"slug": "forest-outpost",
"name": "Forest outpost",
"description": null,
"status": "active",
"created_at": "2026-08-30T09:12:44Z",
"updated_at": "2026-09-01T16:03:10Z"
}
],
"next_cursor": null
}Keep a project id for the next step:
export PROJECT_ID=$(curl -s "https://api.scenebrew.com/v1/projects" \
-H "Authorization: Bearer $SCENEBREW_API_KEY" | jq -r '.items[0].id')With a Read & write key you can also create one — POST /v1/projects
with {"name": "…"} — as long as your plan has room for another project;
otherwise the answer is 402 with code quota_exceeded_projects.
List a project's scenes
curl -s "https://api.scenebrew.com/v1/projects/$PROJECT_ID/scenes" \
-H "Authorization: Bearer $SCENEBREW_API_KEY" | jq '.items[] | {id, name, status, asset_count}'Each scene reports its workflow, status, triangle and asset counts. Pick
one:
export SCENE_ID=$(curl -s "https://api.scenebrew.com/v1/projects/$PROJECT_ID/scenes" \
-H "Authorization: Bearer $SCENEBREW_API_KEY" | jq -r '.items[0].id')GET /v1/scenes/$SCENE_ID is the scene with its current artifacts, and
GET /v1/operations?target_id=$SCENE_ID is its step history, newest first —
see Operations.
Artifacts and download
A scene's artifacts are the files each pipeline step produced: the design
(sdd), the graph (peg), the blueprint (a swfbpx package), the model
(a GLB), plus a layout_preview and a thumbnail. Every listing carries a
short-lived presigned URL per artifact; download before download_expires_at
and re-list for a fresh one.
curl -s "https://api.scenebrew.com/v1/scenes/$SCENE_ID/artifacts" \
-H "Authorization: Bearer $SCENEBREW_API_KEY" \
| jq '.items[] | {kind, version, is_current, size_bytes, download_expires_at}'One artifact at a time is GET /v1/scenes/{scene_id}/artifacts/{kind};
with ?inline=true the text of an SDD or PEG travels in the record, which is
what a host agent wants to read. The bytes themselves are one call:
curl -sL -o scene.glb "https://api.scenebrew.com/v1/scenes/$SCENE_ID/artifacts/model/content" \
-H "Authorization: Bearer $SCENEBREW_API_KEY"…/content answers 307 to the presigned object, so -L follows it and
the download itself needs no Authorization header. The file is a standard
binary glTF; the first four bytes read glTF.
Next
- Generate a scene — run the pipeline with a Read & write key.
- Operations — how the slow calls are waited on, polled and canceled.
- API reference — every operation, with a playground that uses your key from the browser.
- MCP server — the same operations as tools for a coding agent.