ScenebrewDevelopers
API referenceLibrary

Export Theme

GET
/v1/themes/{theme_id}/export

The theme and everything reachable from it — its designs, their recipes, the assets those slot and the assets those reference — as one self-contained Scenebrew entity container (.sbe, JSON), the file a Unity project or the standalone Architect imports. Each asset's bytes ride inline or as an attachment whose uri is this API's download_asset_file route by digest (/v1/assets/{id}/files/{role}?sha256=), which keeps resolving after the asset's file is replaced; attachments decides which. X-Scenebrew-Content-Hash is the container's hash, the same in every mode. Bytes are exactly what the library wrote — hash the body to verify. A theme in another project is a 404. Requires the read scope.

AuthorizationBearer <token>

First-party API key (sbk_live_…), presented as a Bearer token.

In: header

Path Parameters

theme_id*Theme Id
Formatuuid

Query Parameters

attachments?Attachments

How asset bytes travel: full (every attachment inline), by-size (inline up to the server's threshold, else by digest URI), by-role (inline only the roles and slots named), reference (never bytes — URIs only).

Default"by-size"

Value in

  • "full"
  • "by-size"
  • "by-role"
  • "reference"
roles?array<string>|

by-role: file roles to inline (mask, height, mesh, …).

slots?array<string>|

by-role: glob patterns over recipe slots to inline (mesh:wall_*).

Response Body

application/vnd.scenebrew.entity+json

application/problem+json

curl -X GET "https://example.com/v1/themes/497f6eca-6276-4993-bfeb-53cbbbba6f08/export"
{  "entities": {    "0199a1c0-0000-7000-8000-000000000001": {      "designs": [        {          "kind": "design",          "uuid": "0199a1c0-0000-7000-8000-000000000002"        }      ],      "kind": "theme",      "name": "Default tilemap",      "uuid": "0199a1c0-0000-7000-8000-000000000001"    },    "0199a1c0-0000-7000-8000-000000000002": {      "kind": "design",      "name": "Tilemap terrain",      "recipes": [        {          "kind": "recipe",          "uuid": "0199a1c0-0000-7000-8000-000000000003"        }      ],      "uuid": "0199a1c0-0000-7000-8000-000000000002"    },    "0199a1c0-0000-7000-8000-000000000003": {      "kind": "recipe",      "name": "Blockout tiles",      "operator": "swf::terrain_blockout_tiles",      "parameters": {        "chamfer_corners": 1      },      "uuid": "0199a1c0-0000-7000-8000-000000000003"    }  },  "root": "0199a1c0-0000-7000-8000-000000000001",  "schema_version": "0.1.0"}