Reserve a direct upload
Reserve a direct upload
/api/v1/attachment-uploadsAtomically reserves the declared byte count against the Workspace's pooled storage entitlement and returns a short-lived presigned URL bound to one method, one object key, and the reserved length. File bytes never pass through the Assign API.
The reservation expires if it is not completed. Expired, cancelled, and abandoned reservations release their quota.
Associating a completed attachment with a parent Task, comment, or Document is deliberately not part of this contract: attachment parent cardinality is an open decision and will be contracted with it rather than inferred from an implementation.
Header Parameters
Request Body
application/jsonstring <uuid>Opaque Assign-owned UUIDv7 identifier. Clients must not derive meaning from it.
string·min 1·max 255Display filename, at most 255 UTF-8 bytes after NFC normalization.
It must not contain a path separator, null, or control character,
must not be . or .., and must not begin or end with whitespace or
a dot. A violating filename is rejected rather than rewritten.
Filenames never contribute to the server-generated object key.
integer·min 1·max 52428800Exact byte count to reserve. The free tier allows 50 MiB per object.
string·max 255Advisory only. The stored content type is detected from the object's leading bytes at completion and may differ.
Responses
string <uuid>Opaque Assign-owned UUIDv7 identifier. Clients must not derive meaning from it.
string <uri>Short-lived presigned URL bound to one method, one object key, and the reserved length. Treat it as a credential: never log it, store it, or share it.
string·const no-storePrevents storage of error responses by clients and intermediaries.
string·min 1·max 200Correlation identifier for the request.
string·const nosniffPrevents user agents from MIME-sniffing the response.
integer·min 0Delay in seconds before retrying, when an expected maintenance end is known.
string·const no-storePrevents storage of error responses by clients and intermediaries.
string·min 1·max 200Correlation identifier for the request.
string·const nosniffPrevents user agents from MIME-sniffing the response.