Set a project's brand mark and its motion
The pinned brand mark — the corner "bug" — on one project: image, corner, size, opacity, and a MOTION FORMULA.
Before this endpoint the mark was reachable only from the settings panel and the creation wizard, so a film built through the API came out unbranded even for a channel that has a logo configured.
Every field is optional and only what you send changes: branding shares projects.settings with captions, audio and theme, so the write is a merge.
formula is what makes the mark live. none is a static stamp; tick squashes it on every downbeat of the project's own measured grid; ghost rests it low and lifts it on an authored scene cue. The motion compiles against the same bars the composition uses, so it lands with the music rather than near it. Amplitudes are capped and ticks carry a cooldown — a mark cannot be made to strobe. An unknown slug is refused rather than silently rendering static.
Authorization
bearerAuth Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/projects/497f6eca-6276-4993-bfeb-53cbbbba6f08/branding" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"enabled": true,
"url": "string",
"position": "string",
"scale": 0,
"opacity": 0,
"formula": "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": "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"
}
}
}Read a project's brand mark GET
The pinned brand mark — the corner "bug" — on one project: image, corner, size, opacity, and a MOTION FORMULA.
Read the project's grooves GET
A project's GROOVES are synthesized loops, one per scene, that play on the PROJECT's musical clock (its tempo map): bar n is bar n in every scene, so neighbouring grooves stay in phase across a join a