Create Video Upload
Mint a presigned PUT URL the browser can upload a video directly to.
Flow (PR B3): dashboard calls this → gets {upload_url, s3_key} → PUTs the file straight to S3 over XHR (with onprogress for the upload progress bar) → then POSTs /v1/video-jobs with source_kind='upload' + the same s3_key. Backend never streams the video through itself — 2 GB through a Python uvicorn worker would pin it for minutes.
The S3 key shape is owned by video_upload_s3_prefix in the service module so this minter and the job-create validator both agree on the namespace (review-fixup contract from PR #756).
Filename gets sanitized to prevent path-traversal / weird-char surprises in S3 listings — the original filename is also stored in the job row as part of the slug.
Request
- Base URLhttps://api.roxels.ai (the document declares no server; this is the origin it was published from)
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Request body
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.