Skip to main content

Overview

Remove the background from a video in your media library to get an overlay-ready clip. Perfect for product demos, presentations, and social media content. Videos can be up to 10 minutes long; a longer one answers 400. Anything over 60 seconds is split into pieces, processed, and joined back together for you. The output keeps the source video’s aspect ratio.

Basic Background Removal

media is the ID of one video in your library (a single string).
The create call answers with the projectId. Poll GET /v1/project/{projectId} or pass a webhook to get the finished video.

With Captions and a Webhook

Captions are off by default here. Turn them on with videoSettings.caption.

Parameters

Managed teams pay 8 credits plus 5 per started 30 seconds of the video, charged when processing starts. Teams in bring-your-own-keys mode are not charged credits for generation, but need their own OpenRouter and Bria keys in Settings → AI keys. Without them the call answers 402 with code: "missing_credentials" and the missingProviders list, before anything is created or charged. To retry a create call after a timeout or 5xx, send it with an Idempotency-Key: the same key never creates or charges twice.
To cut out the background of a single image instead, use POST /v1/image/remove-background.

Tips for Background Removal

Use good lighting: Videos with clear, even lighting produce the best results
Clear separation: Ensure good contrast between subject and background
Avoid motion blur: Sharper videos work better for background removal
High quality source: Start with the highest quality video possible
Test different videos: Some videos work better than others - experiment!

Common Use Cases

  • E-commerce: Create clean product videos without distracting backgrounds
  • Education: Professional-looking instructor videos
  • Marketing: Eye-catching social media content
  • Corporate: Professional presentations and announcements
  • Content Creation: Overlay creators on custom backgrounds

Handling the Webhook Response

Webhooks are signed: check the Hooked-Signature header as shown in Webhooks.