Create a new source upload (video or image)
Returns a sourceId and a pre-signed S3 URL. PUT the file bytes to uploadUrl, then reference sourceId from clips, layouts (b-roll media), overlays, or backgrounds. Use kind: "image" for images (no duration); Tella hosts the bytes for rendering, so you never deal with raw image URLs.
Authorizations
API key obtained from your Tella account settings
Body
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 in seconds. Required for video and audio; ignored for image.
x > 0Height in pixels. Required for video and image; omit for audio.
x <= 9007199254740991Source kind: video (default), audio (e.g. sound effects), or image.
video, audio, image Width in pixels. Required for video and image; omit for audio.
x <= 9007199254740991Response
OK
ISO-8601 timestamp at which uploadUrl stops accepting uploads.
^(?:(?:\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))$ID of the new source.
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.