Timelines
Update project timeline
Replaces a saved project's active timeline with a Kaitoi Timeline Document v1 using optimistic concurrency. Use Idempotency-Key so network retries can replay the saved response. This replaces the whole project timeline; if the project currently has multiple timeline scenes, they are collapsed to the single timeline contained in the document.
put/api/v1/projects/{project_id}/timeline
Request
- Base URL: https://api.studio.kaitoi.io (the document declares no server; this is the origin it was published from)
- URL: https://api.studio.kaitoi.io/api/v1/projects/{project_id}/timeline
- Auth: HTTP bearer
Path parameters
project_idstring required
Headers
Idempotency-Keystring nullable
authorizationstring nullable
Request body
Example request
{
"document": {
"kaitoiType": "timeline",
"name": "Timeline",
"timeline": {
"clips": [
{
"duration": 3,
"filename": "hero.png",
"id": "clip-1",
"name": "Hero",
"opacity": 100,
"startTime": 0,
"storageType": "data",
"trackId": "track-1",
"transform": {
"rotation": 0,
"scale": 100,
"x": 0,
"y": 0
},
"trimEnd": 0,
"trimStart": 0,
"type": "image",
"volume": 100
}
],
"currentTime": 0,
"frameRate": 30,
"playheadPosition": 0,
"projectDuration": 60,
"projectResolution": {
"height": 1080,
"isAutoDetected": true,
"width": 1920
},
"selectedClipIds": [],
"selectedTrackId": "track-1",
"tracks": [
{
"height": 60,
"id": "track-1",
"locked": false,
"mutedAudio": false,
"mutedVideo": false,
"name": "Track 1",
"volume": 1
}
],
"zoom": 100
},
"version": 1
},
"expectedVersion": 7
}Response
Saved project timeline document and summary.
Example response
{
"document": {
"kaitoiType": "timeline",
"name": "Timeline",
"timeline": {
"clips": [
{
"duration": 3,
"filename": "hero.png",
"id": "clip-1",
"name": "Hero",
"opacity": 100,
"startTime": 0,
"storageType": "data",
"trackId": "track-1",
"transform": {
"rotation": 0,
"scale": 100,
"x": 0,
"y": 0
},
"trimEnd": 0,
"trimStart": 0,
"type": "image",
"volume": 100
}
],
"currentTime": 0,
"frameRate": 30,
"playheadPosition": 0,
"projectDuration": 60,
"projectResolution": {
"height": 1080,
"isAutoDetected": true,
"width": 1920
},
"selectedClipIds": [],
"selectedTrackId": "track-1",
"tracks": [
{
"height": 60,
"id": "track-1",
"locked": false,
"mutedAudio": false,
"mutedVideo": false,
"name": "Track 1",
"volume": 1
}
],
"zoom": 100
},
"version": 1
},
"mode": "replace",
"projectId": "proj_123",
"summary": {
"clipCount": 1,
"durationSeconds": 60,
"trackCount": 1
},
"version": 8
}Changes
No recorded changes to this operation across all 1 revision of this API.