The vocabulary a composition is authored in
One record per attribute, CSS variable, declared global and callable primitive in the composition authoring contract.
Each says WHEN its value appears — authored, injected by the worker at resolve, computed by a kernel at mount, or driven per frame off the paused timeline — and what literal NOT to write in its place.
role=knob returns the author-facing vocabulary alone, which is what an author needs. role=machinery returns the rest: worker-stamped kernel version markers, the -done receipts a kernel writes, and published values such as the measured anchor table. None of those are authored, and writing a receipt by hand suppresses the pass it names.
The response carries its own coverage report, including what it does not cover. Free, read-only, and not scene-scoped.
Authorization
bearerAuth Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….
In: header
Query Parameters
Narrow the records returned.
"knob" | "machinery" | "marker" | "receipt" | "published"Restrict to one kernel module, e.g. "tc-text".
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/authoring-contract"{
"data": {
"property1": null,
"property2": null
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}List liked shares GET
The staff "liked shares" collection — every share hearted on a /share/<token> page — as a flat list an ingestion client can enumerate without DB or browser access.
Delete the account POST
Permanently deletes the account behind this key: projects, workspaces, media, voices, API keys and sessions.