Init Direct Upload

Start a direct-to-S3 upload: validate, dedup, reserve tokens, and hand the browser a presigned POST it uploads the file with.

Security model: the presigned POST policy carries a content-length-range condition capped at the declared size_bytes — S3 itself rejects a larger body at the wire. No server-side re-verification of the file happens; a garbage upload fails in the pipeline exactly like a corrupt file on the legacy path (task FAILED, tokens refunded).

The browser must call POST /uploads/{project_id}/complete after S3 returns 204 — that's what dispatches the processing pipeline.

post/api/v1/uploads/init

Request

  • Base URL: https://api.clipmaster.app (the document declares no server; this is the origin it was published from)
  • URL: https://api.clipmaster.app/api/v1/uploads/init
  • Auth: HTTP bearer

Request body

filenamestring required
size_bytesinteger required
sha256string required
duration_secnumber required
content_typestring required
tagsstring nullable
querystring nullable
min_durationnumber nullable
include_captionsboolean nullable
karaoke_captionsboolean nullable
karaoke_colorstring nullable
orientationstring nullable
processing_modestring nullable
smart_crop_enabledboolean nullable
gemini_analysisboolean nullable
compilation_formatstring nullable

Response

Successful Response

project_idinteger required
expires_atstring required

Changes

No recorded changes to this operation across all 1 revision of this API.