Skip to main content
POST
Request a file upload URL

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
content_type
string
required

MIME type of the file you will upload.

Example:

"video/mp4"

filename
string | null

The file's original name. Sets the stored object's extension and is kept as the asset's display name; without it the asset shows as its uuid key.

Example:

"my-clip.mp4"

duration
number | null

Optional client-probed media duration in seconds — video and audio only; ignored for images, which have no duration. When provided, the asset is immediately usable/listable instead of waiting on server-side metadata extraction; the server probe (when it runs) overrides it.

Example:

12.5

width
integer | null

Optional client-probed pixel width (video or image).

Example:

1920

height
integer | null

Optional client-probed pixel height (video or image).

Example:

1080

Response

Successful Response

Response from POST /v1/uploads.

upload_url
string
required

GCS resumable upload URL. PUT your file bytes here with the correct Content-Type.

Example:

"https://storage.googleapis.com/framelane-prod-user/uploads/ws_01J.../a1b2c3.mp4?upload_id=..."

source_url
string
required

CDN URL for the uploaded file. Pass this as source_url in render/task requests.

Example:

"https://cdn-user.framelane.io/uploads/ws_01J.../a1b2c3.mp4"

expires_at
string<date-time>
required

When the upload_url expires (1 hour from now).