What the caption API does
Each job runs the same pipeline as the web editor: speech is transcribed automatically (the language is detected automatically), words are grouped into short caption chunks, and the selected animated style is rendered frame by frame into the video. The result is an MP4 with open captions that look the same on every platform.
Styles, position and customization
Pass style with any id from GET /api/v1/styles (for example beast, punch, neon or nova). Pass position as top, middle or bottom, or as {"x": 50, "y": 80}. The customization object accepts font_size, font_family, primary_color, highlight_color, active_word_color, uppercase, stroke and background colours, animation (pop, fade, zoom, slide-up, slide-down, none) and an AI keyword highlighter.
Two ways to send the video
For videos already online, send source_url and the job is queued immediately. For local files, send filename and file_size: the response contains a presigned upload URL, you PUT the bytes, then call POST /api/v1/jobs/{id}/start. Either way, nothing has to be streamed through your own servers.
Built for automation and batch workflows
Typical uses are content pipelines that caption every clip before scheduling, SaaS products that offer captions to their own users, and agencies captioning many client videos with a consistent saved theme (theme_id). Errors are returned as JSON with a code and message, and limits follow your plan.
