API reference
9 endpoints · Overview
sidstringrequiredpathstringrequiredas_ofstringcurl "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/paths/Ep01/Shots/A001_C003.mov" \
-H "Authorization: Bearer $SIDESPACE_TOKEN"{
"id": "id",
"space_id": "spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C",
"parent_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"name": "A001_C003.mov",
"kind": "file",
"head_version_id": "ver_01JD7Q4B6D8F0H2J4L6N8Q0S3T",
"size": 734003200,
"mime": "video/quicktime",
"meta_rev": 1,
"deleted": false,
"mtime": "2026-11-14T09:30:00Z"
}sidstringrequiredIf-None-Matchstringprecondition_failed*parent_idstringrequirednamestringrequiredfiledirif_existsstringrename creates "name (2).ext"; reuse returns the existing node of the same kind; fail (or If-None-Match: *) answers 412 precondition_failed with the existing node_id. Sync clients use reuse so concurrent creates of one path converge on one file (last save wins, both saves in its history).renamereusefailcurl -X POST "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/nodes" \
-H "Authorization: Bearer $SIDESPACE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"parent_id":"nod_01JD7Q3A5C7E9G1J3K5M7P9R2S","name":"A001_C003.mov","kind":"file"}'{
"id": "id",
"space_id": "spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C",
"parent_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"name": "A001_C003.mov",
"kind": "file",
"head_version_id": "ver_01JD7Q4B6D8F0H2J4L6N8Q0S3T",
"size": 734003200,
"mime": "video/quicktime",
"meta_rev": 1,
"deleted": false,
"mtime": "2026-11-14T09:30:00Z"
}sidstringrequirednidstringrequiredas_ofstringcurl "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/nodes/nod_01JD7Q3A5C7E9G1J3K5M7P9R2S" \
-H "Authorization: Bearer $SIDESPACE_TOKEN"{
"id": "id",
"space_id": "spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C",
"parent_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"name": "A001_C003.mov",
"kind": "file",
"head_version_id": "ver_01JD7Q4B6D8F0H2J4L6N8Q0S3T",
"size": 734003200,
"mime": "video/quicktime",
"meta_rev": 1,
"deleted": false,
"mtime": "2026-11-14T09:30:00Z"
}sidstringrequirednidstringrequiredIf-Matchstringprecondition_failed when it differsnamestringparent_idstringif_version_idstringcurl -X PATCH "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/nodes/nod_01JD7Q3A5C7E9G1J3K5M7P9R2S" \
-H "Authorization: Bearer $SIDESPACE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"A001_C003.mov","parent_id":"nod_01JD7Q3A5C7E9G1J3K5M7P9R2S","if_version_id":"nod_01JD7Q3A5C7E9G1J3K5M7P9R2S"}'{
"id": "id",
"space_id": "spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C",
"parent_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"name": "A001_C003.mov",
"kind": "file",
"head_version_id": "ver_01JD7Q4B6D8F0H2J4L6N8Q0S3T",
"size": 734003200,
"mime": "video/quicktime",
"meta_rev": 1,
"deleted": false,
"mtime": "2026-11-14T09:30:00Z"
}sidstringrequirednidstringrequiredIf-Matchstringprecondition_failed with details.current_version_idcurl -X DELETE "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/nodes/nod_01JD7Q3A5C7E9G1J3K5M7P9R2S" \
-H "Authorization: Bearer $SIDESPACE_TOKEN"{
"id": "id",
"space_id": "spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C",
"parent_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"name": "A001_C003.mov",
"kind": "file",
"head_version_id": "ver_01JD7Q4B6D8F0H2J4L6N8Q0S3T",
"size": 734003200,
"mime": "video/quicktime",
"meta_rev": 1,
"deleted": false,
"mtime": "2026-11-14T09:30:00Z"
}sidstringrequirednidstringrequiredcurl -X POST "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/nodes/nod_01JD7Q3A5C7E9G1J3K5M7P9R2S/restore" \
-H "Authorization: Bearer $SIDESPACE_TOKEN"{
"id": "id",
"space_id": "spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C",
"parent_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"name": "A001_C003.mov",
"kind": "file",
"head_version_id": "ver_01JD7Q4B6D8F0H2J4L6N8Q0S3T",
"size": 734003200,
"mime": "video/quicktime",
"meta_rev": 1,
"deleted": false,
"mtime": "2026-11-14T09:30:00Z"
}Files get their old content back as a new version, deleted files come back, moved or renamed ones go back, and what was not in the folder then goes to the trash. Every step is an ordinary change, so nothing is lost and a rewind can be rewound. With dry_run nothing changes and the answer lists what would.
sidstringrequirednidstringrequiredas_ofstringrequireddry_runbooleancurl -X POST "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/nodes/nod_01JD7Q3A5C7E9G1J3K5M7P9R2S/rewind" \
-H "Authorization: Bearer $SIDESPACE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"as_of":"as_of"}'{
"as_of_seq": 1,
"as_of_time": "2026-11-14T09:30:00Z",
"dry_run": false,
"changes": [
{}
]
}sidstringrequirednidstringrequiredcursorstringlimitintegeras_ofstringcurl "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/nodes/nod_01JD7Q3A5C7E9G1J3K5M7P9R2S/children" \
-H "Authorization: Bearer $SIDESPACE_TOKEN"{
"items": [
{}
],
"next_cursor": "next_cursor"
}sidstringrequirednidstringrequiredcurl "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/nodes/nod_01JD7Q3A5C7E9G1J3K5M7P9R2S/size" \
-H "Authorization: Bearer $SIDESPACE_TOKEN"{
"files": 1,
"folders": 1,
"bytes": 1,
"videos": 1,
"proxy_files": 1,
"proxy_bytes": 1,
"largest": 1
}