Endpoints
All four require the file to be visible to the caller’s company and permissions.
List versions
status, message, and data.
data.data for the array. Each version includes:
The current live object is synthesized into the list because it has no separate version row. Use its
versionId, not the synthetic id, when calling version endpoints.
A missing file does not produce an HTTP 404 here. The controller returns HTTP
200 with data.status: 404 and an empty array. Check the inner status on list responses.Download a version
Restore a version
- restoring the already-current version returns an inner
400, - a missing file or version returns an inner
404, - an incomplete key envelope returns an inner
400, - permission failures throw normal HTTP errors.
200 and a message such as “Version restored”.
Delete a version
400 with the instruction to delete the file instead.
A missing file or version returns an inner 404. Permission and ownership checks can throw normal HTTP errors.
Version limits
The number of versions retained depends on the plan.maxVersions reports the cap when available. When a new version exceeds the cap, the platform retires older versions according to its retention policy.
Do not assume that every upload keeps an eternal history. If you need immutable long-term copies, use retention or store an independent copy.
Recommended patterns
- Recovery UI — list versions, show timestamps and sizes, and require confirmation before restore.
- Audit — download the specific version and store its hash alongside the audit record.
- Cleanup — never delete the current version through the version endpoint; use the file delete endpoints.
- Error handling — decode the nested
data.statusbefore treating a response as a failure or success.