Skip to main content
POST
Start a video or sound upload

Authorizations

x-api-key
string
header
required

Your workspace API key, leap_.... Create one at https://app.tryleap.ai/go/api, and keep it on your server.

Body

application/json
content_type
enum<string>
required

The file's type: MP4, MOV or WebM video; MP3, WAV or M4A audio.

Available options:
video/mp4,
video/quicktime,
video/webm,
audio/mpeg,
audio/mp3,
audio/wav,
audio/x-wav,
audio/wave,
audio/mp4,
audio/x-m4a
bytes
integer
required

The file's exact size in bytes.

Required range: x <= 1073741824
filename
string

A name to keep with the file, such as interview.mp4.

Required string length: 1 - 200

Response

Where and how to send the bytes.

Where to send a video's or a sound's bytes before you complete the upload.

id
string
required

The upload's ID, file_.... Completing it makes a file with the same ID.

object
string
required
Allowed value: "upload"
content_type
string
required

The type you declared.

bytes
integer
required

The size you declared, in bytes.

Required range: x <= 9007199254740991
filename
string | null
required

The name you gave, if any.

upload_url
string
required

Where to send the file's bytes.

upload_method
string
required

The method to send them with.

Allowed value: "PUT"
upload_headers
object
required

Headers to send with the bytes, exactly as given.

expires_at
string<date-time>
required

When upload_url stops working, an hour after it was made.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Last modified on October 4, 2026