---
title: "Remove Background"
method: POST
path: "/remove_background"
tags: ["Editing Endpoints"]
---

# Remove Background

`POST /remove_background`

[**Try out this capability in Bria's sandbox**](https://platform.bria.ai/video-editing/video-remove-background)


**Description**
Initiates an asynchronous background removal job for a video.

> **Need real-time / low-latency background removal?** See [Streaming Background Removal](#tag/Streaming-Endpoints) for the WebSocket-based variant.


Response behavior:

- Returns HTTP 202 with `request_id` and `status_url`

- Check job status by polling `status_url` or by calling the [Status Service](https://docs.bria.ai/status) with the `request_id` until a terminal status is returned


Supported input containers:

- .mp4, .mov, .webm, .avi, .gif


Supported input codecs:

- H.264, H.265 (HEVC), VP9, AV1, PhotoJPEG


Input attributes preserved in output:

- Aspect Ratio and resolution (unless `auto_zoom` is enabled - see Auto Zoom below)

- Frame Rate

- Audio if present


Limits:

- Max input duration: 60 seconds

- Resolutions: Input resolution up to 16000x16000 (16K). Inputs larger than this return 413 Payload Too Large. Output resolution matches the input resolution. When `auto_zoom` is enabled, the output is cropped to the foreground subject and may be smaller than the input.


Background and transparency control:

- `background_color` must be one of the predefined string values listed below. Hex values are not supported. Default is `Transparent`.

- If `background_color` is `Transparent`, the selected output preset must support alpha. Otherwise the server responds with 422 Unprocessable Entity.


Output transparency support by preset:

- Alpha supported: `webm_vp9`, `mov_proresks`, `mkv_vp9`, `mkv_raw`, `gif`, `mov_h265` when encoded as HEVC with Alpha

- Alpha not supported: `mp4_h264`, `mp4_h265`, `mkv_h264`, `mkv_h265`, `avi_h264`

Auto Zoom:

- Set `auto_zoom` to `true` to automatically crop the output video to the foreground subject, creating a zoom-in effect.

- The crop is calculated once for the entire video - the smallest rectangle that contains the subject across all frames - so the framing is stable throughout, with no per-frame movement.

- If the subject moves across a large portion of the frame, the crop is minimal and the output may match the input framing.

- When cropping is applied, the output resolution and aspect ratio differ from the input.

- Enabling this option increases processing time.

## Headers

- `api_token` string, required

## Request body

- object
  - `video` string, required — Publicly accessible URL of the input video. Input resolution supported up to 16000x16000 (16K)
  - `background_color` 'Transparent' | 'Black' | 'White' | 'Gray' | 'Red' | 'Green' | 'Blue' | 'Yellow' | 'Cyan' | 'Magenta' | 'Orange' — Predefined string only - one of the enum values below. Hex values are not supported
  - `auto_zoom` boolean — When set to `true`, the output video is automatically cropped to the foreground subject, creating a zoom-in effect. The crop is fixed for the entire video (the smallest rectangle containing the subject in all frames), so the framing is stable with no per-frame movement. If the subject moves across most of the frame, little or no cropping is applied. When cropping occurs, output resolution and aspect ratio may differ from the input. Enabling this option increases processing time.
  - `output_container_and_codec` 'mp4_h264' | 'mp4_h265' | 'webm_vp9' | 'mov_h265' | 'mov_proresks' | 'mkv_h264' | 'mkv_h265' | 'mkv_vp9' | 'gif' — Output container and codec preset
  - `preserve_audio` boolean
  - `webhook_url` string, uri — Optional URL for receiving the result via webhook when the async job completes. See [Webhooks](https://docs.bria.ai/webhooks).

## Response `202`

Accepted

- AsyncInitialResponse
  - `request_id` string, required
  - `status_url` string, required

## Other responses

- `400` — Bad request
- `403` — Forbidden
- `405` — Method not allowed
- `413` — Payload Too Large
- `422` — Unprocessable entity
- `429` — Too many requests
- `500` — Internal server error

---

[API](https://skmtc.net/bria-ai/apis/video-api-reference.md) · [All operations](https://skmtc.net/bria-ai/apis/video-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bria-ai/video-api-reference/revisions/fa6d2efc9689/schema)
