POST /videos/remove-subtitles to process a selected area or POST /videos/remove-watermarks to process the full frame. Both endpoints use your API wallet and return the same Job resource as other video operations.
Before you start
Create an organization API key. Upload the source video withPOST /files and complete the multipart upload before submitting a cleaning request. Pass the returned file_id or upload_fields.key as input.video. The file must belong to your workspace. Public URLs and arbitrary storage paths are not accepted.
The cleaner accepts MP4, MOV, AVI, WebM, and MKV videos from 1 to 60 seconds, up to 50 MiB. The upload grant allows larger videos, so keep cleaning inputs within the 50 MiB endpoint limit. The server checks the uploaded file’s actual type, size, duration, and dimensions.
Remove subtitles from a selected area
Passselected_area with normalized coordinates from 0 to 1. The origin (0, 0) is the top-left corner. x and y locate the area’s upper-left corner; width and height define its size. The rectangle must stay within the frame and cover at least one pixel.
Remove a watermark
Pass only the uploaded source video. The operation processes the full frame.Request fields
Both requests accept optionalmetadata and max_cost_usd at the request root. max_cost_usd is a spending cap written as a nonnegative decimal string with up to six decimal places. The request is rejected before charging when its quote exceeds the cap. Neither endpoint accepts a model field or client-supplied duration, dimensions, or file size.
See the API console pricing page for current rates.
Read the job
The endpoint returns HTTP202 with a Job resource directly. A 202 response can already have status: "failed", so inspect the status. While a job is queued or running, wait for Retry-After seconds before polling GET /jobs/{jobId}. On success, download the result from output.files. Signed output URLs expire after about one hour; retrieve the job again for a fresh URL. Outputs are removed 48 hours after completion.
Reuse the same Idempotency-Key and exact request body after a timeout or connection failure. A retry returns the original job without creating another task. If you change the request, use a new key. Reusing a key with a different request returns 409 idempotency_key_reused.
See Jobs and polling for job fields and refunds, and Errors for HTTP error handling.
