Play, plan, edit or read the status of the project's sound program
The project's score: a JSON score, a Python sound program (code), or the program kept as project files (source: "music": music/main.py, music/voices.py, music/cues/*.py, music/mix.json, written with the fs endpoints).
The project's score: a JSON score, a Python sound program (code), or the program kept as project files (source: "music": music/main.py, music/voices.py, music/cues/*.py, music/mix.json, written with the fs endpoints). edit {path, old, new} patches a music/ file without re-sending it (answers path, bytes, sha, lines; no code echo). plan: true (with source) returns the Plan: a key, its hash and url (stored by hash; gzip JSON of events with t, q, bar, beat, midi, vel, len and numeric params, curves published with publish() sampled at 120 Hz, the beat axis it used, the chord track) and a summary; free, no audio. status: <key> reads a render or plan by key (rendering | planning | failed | done). async: true answers with the key at once. A render lists triggers (default 20, max 400) and a count per track, never the program. dry_run, range, place and apply as before.
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
curl -X PUT "https://example.com/projects/497f6eca-6276-4993-bfeb-53cbbbba6f08/score" \ -H "Content-Type: application/json" \ -d '{}'{
"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"
}
}Write a project file POST
Write one file, routed to the service that already owns it: structure through apply_changes (recorded, undoable), composition.html through PUT /scenes/{id}/composition's gates, the scene source after
Move a scene or chapter POST
Move a scene directory to chapters/<chapter>/<NNN> (within or across chapters; across, it is re-created with a new id) or a chapter directory to chapters/<NN>.