ScenebrewDevelopers

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:

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.

On this page