Bria Extract Object API Documentation

Bria Extract Object API Documentation

Playground

Try it on WaveSpeedAI!

Bria Extract Object isolates a described object from an input image and returns a clean object cutout on a transparent background, ideal for product assets, design workflows, and image compositing. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Bria Extract Object isolates a described object from an input image and returns the cutout on a transparent background. Use a short prompt to identify the target object, then optionally refine the mask or crop the output canvas.


Why Choose This?

  • Prompt-guided object extraction
    Describe the object you want to isolate, such as the red car, main product, or the blue handbag.

  • Transparent cutout output
    Return the selected object as a transparent-background image for compositing, design, and product workflows.

  • Optional background refinement
    Use force_background_removal to refine the cutout alpha and improve background removal.

  • Optional autocrop
    Tighten the output canvas around the extracted object for compact, ready-to-use assets.

  • Standard image output
    Results are returned as image URLs in the standard WaveSpeed prediction response.


Parameters

ParameterRequiredDescription
imageYesInput image containing the object to extract.
promptNoNatural-language description of the object to extract. Default: main object.
force_background_removalNoRun an extra background-removal refinement step to clean up remaining background artifacts and improve edge transparency. Default: false.
autocropNoCrop the result tightly around the extracted object, reducing transparent padding around the subject. Default: false.

How to Use

  1. Upload image — Provide an image containing the object you want to extract.
  2. Describe the object — Use prompt to identify the target object.
  3. Set options optional — Enable force_background_removal for cleaner alpha edges or autocrop for a tighter canvas.
  4. Submit — Generate the extracted object image.
  5. Use the result — Use the returned image URL in your product, design, or compositing workflow.

Pricing

OutputPrice
Per image$0.02

Best Use Cases

  • Object cutouts — Extract a specific object from a source image.
  • Product asset preparation — Prepare transparent product assets for catalogs, ads, and ecommerce pages.
  • Design compositing — Place extracted objects onto new backgrounds, templates, or marketing layouts.
  • Creative editing — Isolate subjects for mockups, visual experiments, and content variations.
  • Ecommerce workflows — Standardize object images for downstream product content and listing assets.

Pro Tips

  • Use clear images where the target object is visible and not heavily occluded.
  • Use a specific prompt when the image contains multiple objects.
  • Use main object or main product for simple product-style images.
  • Enable force_background_removal when you need cleaner alpha edges.
  • Enable autocrop when you want the output canvas cropped around the extracted object.
  • Ensure the input image URL is publicly accessible.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
  "force_background_removal": false,
  "autocrop": false
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/bria/extract-object" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
imagestringYes-Input image containing the object to extract.
promptstringNo-Natural-language description of the object to extract, for example: the red car.
force_background_removalbooleanNofalse-Run an extra background-removal refinement step to clean up remaining background artifacts and improve edge transparency.
autocropbooleanNofalse-Tighten the output canvas to the extracted object.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.