API reference
A fork is a new space made from another space (or one folder of it) without copying bytes: it shares the original's files, data key and bucket. Work in it like any space, list what changed, and apply changes back. Making or applying a fork needs files:write.
4 endpoints · Overview
sidstringrequired200itemsSpace[]requiredidstringrequirednamestringrequiredviewercommentereditormanagerowner_idstringrequiredroot_node_idstringrequiredjournal_seqintegerrequiredstorage_idstringforkobjectfrom_space_idstringrequiredpathstringrequiredat_seqintegerrequiredorg_idstringcurl "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/forks" \
-H "Authorization: Bearer $SIDESPACE_TOKEN"{
"items": [
{
"id": "id",
"name": "A001_C003.mov",
"role": "viewer",
"owner_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"root_node_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"journal_seq": 1,
"created_at": "2026-11-14T09:30:00Z",
"storage_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"fork": {},
"org_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S"
}
]
}Copies every live file and folder (or those under path) as rows that point at the same content; head versions only, with their sidecars and renditions. A token limited to some spaces may also reach the forks it makes.
sidstringrequirednamestringrequiredpathstringcurl -X POST "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/forks" \
-H "Authorization: Bearer $SIDESPACE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"A001_C003.mov"}'{
"id": "id",
"name": "A001_C003.mov",
"role": "viewer",
"owner_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"root_node_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"journal_seq": 1,
"created_at": "2026-11-14T09:30:00Z",
"storage_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"fork": {
"from_space_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"path": "Ep01/Shots/A001_C003.mov",
"at_seq": 1
},
"org_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S"
}sidstringrequired200itemsForkChange[]requiredkindstringrequiredaddedmodifiedmetadatamoveddeletednode_kindstringrequiredfiledirpathstringrequirednode_idstringrequiredorigin_pathstringorigin_node_idstringsidecarsstring[]conflictbooleanwhystringcurl "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/fork/changes" \
-H "Authorization: Bearer $SIDESPACE_TOKEN"{
"items": [
{
"kind": "added",
"node_kind": "file",
"path": "Ep01/Shots/A001_C003.mov",
"node_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"origin_path": "origin_path",
"origin_node_id": "nod_01JD7Q3A5C7E9G1J3K5M7P9R2S",
"sidecars": [],
"conflict": false,
"why": "why"
}
]
}Deletes, then moves, then new folders and files, then edited files and metadata, each on its own. A conflict (the original changed the file since the fork) is skipped unless force, which replaces it; its author is notified as for any save.
sidstringrequiredpathsstring[]forcebooleandry_runboolean200itemsForkApplied[]requiredkindstringrequiredaddedmodifiedmetadatamoveddeletednode_kindstringrequiredfiledirpathstringrequirednode_idstringrequiredorigin_pathstringorigin_node_idstringsidecarsstring[]conflictbooleanwhystringresultstringrequiredappliedskippedwould applyfailederrorstringcurl -X POST "https://side.example.com/v1/spaces/spc_01JD7Q2M8X4V6N0R3T5W9Y1B2C/fork/apply" \
-H "Authorization: Bearer $SIDESPACE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"paths":["Ep01/Shots/A001_C003.mov"],"force":false,"dry_run":false}'{
"items": [
{
"result": "applied",
"error": "error"
}
]
}