Skip to main content
POST
Create a new source upload (video or image)

Authorizations

Authorization
string
header
required

API key obtained from your Tella account settings

Body

application/json

Create a new source upload (video, audio, or image). Returns a pre-signed S3 URL to PUT the bytes to, plus a sourceId to reference from clips, layouts, overlays, backgrounds, and sound effects.

duration
number

Duration in seconds. Required for video and audio; ignored for image.

Required range: x > 0
height
integer

Height in pixels. Required for video and image; omit for audio.

Required range: x <= 9007199254740991
kind
enum<string>

Source kind: video (default), audio (e.g. sound effects), or image.

Available options:
video,
audio,
image
width
integer

Width in pixels. Required for video and image; omit for audio.

Required range: x <= 9007199254740991

Response

OK

expiresAt
string<date-time>
required

ISO-8601 timestamp at which uploadUrl stops accepting uploads.

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))$
sourceId
string
required

ID of the new source.

uploadUrl
string<uri>
required

Pre-signed S3 URL. PUT the file bytes here (single PUT, max ~5GB). Upload the file as-is: any common container is accepted (MP4, MOV, WebM, MP3, WAV, M4A, …) — the .mp4 in the URL path is just the storage key, not a container requirement.