API referenceProjects

Switch or restyle the theme

Exactly one of slug (switch to an existing theme) or restyle (fork-on-edit).

Exactly one of slug (switch to an existing theme) or restyle (fork-on-edit). A restyle never mutates a shared preset: it copies the current theme into a private user theme with the patch applied and repoints the project at the fork. NOTE: themes are baked into each scene at generation time, so already-generated scenes keep their look until regenerated — the response repeats this in note.

PATCH
/projects/{id}/theme

Authorization

bearerAuth
AuthorizationBearer <token>

Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….

In: header

Path Parameters

id*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/projects/497f6eca-6276-4993-bfeb-53cbbbba6f08/theme" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "slug": "string",
    "name": "string",
    "forked": true,
    "note": "string",
    "edit_version": 0
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "conflict",
    "code": "conflict",
    "message": "string",
    "current_version": 0,
    "expected_version": 0,
    "last_writer": {
      "label": "string",
      "kind": "editor",
      "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
      "at": "string"
    }
  }
}