Skip to content

Eraser

Request

Description Initiates an asynchronous object erasure job. Removes objects defined by the mask input and reconstructs the background.

Mask Input

This endpoint requires a mask definition object. You can provide a direct mask_url, or use one of our masking endpoints (mask_by_prompt, mask_by_key_points) to define the mask area.

Response behavior:

  • Returns HTTP 202 with request_id and status_url

  • Check job status by polling status_url or by calling the status endpoint with the request_id until a terminal status is returned

Constraints & Limits:

  • Max Duration: 5 seconds. Videos longer than 5s will be truncated if auto_trim is true, or rejected if false.

  • Max Resolution: 750p. Inputs higher than 750p will be automatically downscaled.

  • Frame Rate: Recommended 24 FPS (preserved in output).

Preservation Rules:

  • Aspect Ratio (within 16:9 constraint)

  • Frame Rate

  • Audio (preserved by default)

Security
api_token
Bodyapplication/jsonrequired
videostringrequired

Publicly accessible URL of the input video.

maskstringrequired

Required. A URL with mask video defining the area to erase.

preserve_audioboolean

Whether to keep the original audio track.

Default:true
auto_trimboolean

If true, videos longer than 5 seconds are trimmed to the first 5 seconds.

Default:false
output_container_and_codecstring

Output container and codec preset.

Default:"mp4_h264"
Enum:"mp4_h264""mp4_h265""webm_vp9""mov_h265""mov_proresks""mkv_h264""mkv_h265""mkv_vp9""gif"
webhook_urlstring, (uri)

Optional URL for receiving the result via webhook when the async job completes. See webhooks.

POST
/erase
from bria_client import BriaSyncClient

client = BriaSyncClient()  # reads BRIA_API_TOKEN

job = client.submit(
    endpoint="video/edit/erase",
    payload={
        "video": "https://bria-test-images.s3.us-east-1.amazonaws.com/videos/eraser/video1_video.mp4",
        "mask": "https://bria-test-images.s3.us-east-1.amazonaws.com/videos/eraser/video1_mask.mp4",
        "output_container_and_codec": "mp4_h264",
    },
)
result = client.poll(job, interval=5, timeout=600)
print(result.result.video_url)

Responses

Accepted

Bodyapplication/json
request_idstringrequired
status_urlstringrequired
Response
{ "request_id": "string", "status_url": "string" }