Start a media upload
Reserves an upload slot and returns a presigned PUT URL targeting ShortSync's media storage. The request body is empty — no filename or content type is required at this step. Your PUT may set whatever Content-Type header you want; ShortSync stores whatever bytes arrive.
The URL is valid for 1 hour (see expires_at). If your upload doesn't start within that window, call POST /uploads again to mint a fresh URL — the prior upload_id is harmless and will be garbage collected.
Type validation is deferred to finalize. The first time you call GET /uploads/{upload_id} or POST /posts with this upload_id, ShortSync reads the stored Content-Type and rejects it with 415 UNSUPPORTED_FILE_TYPE if it isn't in the allow-list (video/mp4, video/quicktime, video/webm, video/x-msvideo, video/x-matroska, image/jpeg, image/png, image/webp, image/heic, image/gif). Bad uploads waste the PUT bandwidth, so set the Content-Type header correctly on your PUT.
The same finalize step also validates per-kind size caps (2 GB video, 20 MB image) and the workspace storage quota, then marks the upload ready. There is no explicit "complete" call.
Request
- Base URL: https://api.shortsync.app/v1
- URL: https://api.shortsync.app/v1/uploads
- Auth: HTTP bearer
Request body
Response
Upload reserved. Use presigned_url to PUT the bytes.
Changes
No recorded changes to this operation across all 1 revision of this API.