Lips / API v1
Upload local files
Submit a video and audio. Lips processes your render and notifies your webhook when it’s ready.
Use this path when your video or audio is a local file rather than a public HTTPS URL. Upload both files, then submit the same render request using their asset IDs and your webhook URL.
POST /v1/uploads
{"media_type":"video","content_type":"video/mp4","size_bytes":123456}
PUT <returned upload_url> with the returned required_headers
POST /v1/uploads/<asset_id>/completeRepeat for audio with media_type: audio and its actual content type and byte count. Keep both asset_id values and submit them as video.asset_id and audio.asset_id. Validation is asynchronous; the usual webhook flow handles the final outcome.
Media limits
256 MiB · 300 seconds · up to 120 average input FPS · exactly one video stream and at most one accompanying audio stream. Each video side must be 16–1920 pixels, with at most 2,073,600 pixels per frame: 1920 × 1080 landscape or 1080 × 1920 portrait. Audio inputs require one audio stream and no video.
Video: H.264, HEVC, VP8, VP9, AV1, MPEG-4 and ProRes. Audio: AAC, MP3, PCM s16le/s24le/f32le, FLAC, Vorbis and Opus.
Upload signatures expire after 15 minutes. Uploaded assets expire after six days. Public source URLs must use HTTPS on port 443; credentials, private/reserved addresses, unsafe DNS answers and unsafe redirects are rejected.