Locks
File locks (exclusive checkout)
Binary Unreal assets can't be merged, so a lock reserves one for editing. GET lists active locks. POST acquires them for a set of `fileIds` (with an optional `note` up to 280 chars) and returns what you got plus what someone else already holds. DELETE releases them — you can always release your own; org owners and admins may pass `force: true` to release a lock held by someone else. Committing a file automatically releases the lock you held on it, and the commit endpoint rejects a commit touching a file locked by anyone else.
/api/v1/projects/{projectId}/locksRequest
{
"fileIds": ["f47ac10b-58cc-4372-a567-0e02b2c3d479"],
"note": "polishing lighting on L3"
}Response
{
"acquired": [
{
"fileId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"path": "Content/Maps/MainLevel.umap",
"userId": "3f1a0c52-9c1e-4f0a-9a1b-7d2e5c8b4a10",
"userName": "Sarah Chen",
"userAvatarUrl": null,
"isMine": true,
"note": "polishing lighting on L3",
"lockedAt": "2026-04-16T14:30:00.000Z"
}
],
"conflicts": []
}Examples
# List active locks
curl -X GET https://usourcecontrol.com/api/v1/projects/7c9e6679-7425-40de-944b-e07fc1f90ae7/locks \
-H "Authorization: Bearer usc_your_project_key"
# Acquire
curl -X POST https://usourcecontrol.com/api/v1/projects/7c9e6679-7425-40de-944b-e07fc1f90ae7/locks \
-H "Authorization: Bearer usc_your_project_key" \
-H "Content-Type: application/json" \
-d '{ "fileIds": ["f47ac10b-58cc-4372-a567-0e02b2c3d479"], "note": "polishing lighting on L3" }'
# Release (add "force": true as an owner/admin to break someone else's lock)
curl -X DELETE https://usourcecontrol.com/api/v1/projects/7c9e6679-7425-40de-944b-e07fc1f90ae7/locks \
-H "Authorization: Bearer usc_your_project_key" \
-H "Content-Type: application/json" \
-d '{ "fileIds": ["f47ac10b-58cc-4372-a567-0e02b2c3d479"] }'Try it
Kept in this tab only, sent straight to the API, and never to our servers. Create one in your project’s settings.
This is a GET · POST · DELETE request against the live API. It will really run, on the real project the key belongs to.