Create a theme
Author a private theme owned by your account — a palette (colours keyed by role) and an optional type pairing.
Reference the returned slug as themeSlug when creating a project. Only the safe design fields are settable here; image-generation routing and prompt directives are managed by the system.
Authorization
bearerAuth Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/themes" \ -H "Content-Type: application/json" \ -d '{ "name": "Acme Brand", "colors": { "bg": "#0b1020", "ink": "#e8ecff", "accent": "#5b8cff" } }'{
"data": {
"slug": "string",
"name": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}Render real frames of a draft composition POST
Real pixel frames, exactly as the final MP4 shows them: the same document, on the same GPU renderer, through the same capture pipeline.
List every look you can pick or author GET
Brand-mark motion (built-ins marked built_in, active authored rows, your own held drafts) and caption motion (the published catalog plus your own private ones).