Skip to main content

Create a video upload

POST 

/api/video

Creates a video record and returns a presigned PUT URL plus a server-chosen contentType (from the filename extension). Upload the original file with HTTP PUT to uploadUrl, using exactly the returned Content-Type header value. Then call POST /api/video/{id}/complete-upload to verify the object and queue transcoding. Output resolutions are MP4. isPublic controls whether playback URLs are public or time-limited signed URLs.

Request

Header Parameters

    X-API-KEY stringrequired

    Hyperserve api key

Body

required

    filename stringrequired

    Possible values: non-empty and <= 255 characters

    fileSizeBytes integerrequired

    Possible values: <= 5368709120

    resolutions string[]required

    Possible values: [144p, 240p, 360p, 480p, 720p, 1080p, 1440p, 4k, 8k], >= 1

    isPublic booleanrequired
    thumbnail_timestamps_seconds number[]

    custom_user_metadata

    object

    property name* any

Responses

Video record created. Upload the file to the provided URL, then call complete-upload.

Schema

    id uuidrequired

    Video id; use in complete-upload and subsequent API calls

    uploadUrl urirequired

    Presigned PUT URL for the original file (expires after a short time)

    contentType stringrequired

    Exact value to send as the Content-Type header on the presigned PUT (derived from filename extension)

    isPublic booleanrequired

    resolutions

    object

    required

    Per-resolution status; all start as pending_upload until processing completes

    property name*

    object

    status stringrequired

    Possible values: [pending_upload, processing, ready, fail]

Loading...