Start a resumable upload
Open an S3 multipart upload for an existing image row and return presigned
part URLs. PUT each part directly to its URL, then call /complete. Gates
ownership and the org image cap before any bytes are stored (402 when the
storage cap is reached).
Shortcut: POST /image with resumable: true creates the record and returns
this same presigned plan in one call — this endpoint is only needed when the
record was created separately (or to re-issue URLs for a retry).
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Total size of the image in bytes.
104857600
Response
Successful Response
The presigned multipart plan: PUT each chunk of the file to its url
(in part order), then call /complete — no body needed, the server
verifies the uploaded parts with storage directly.
The internal S3 object key is deliberately not exposed: the presigned urls
already encode everything the client needs, and the key layout is a
server-side implementation detail we keep off the public contract.