Bria Product Dimensions API Documentation

Bria Product Dimensions API Documentation

Playground

Try it on WaveSpeedAI!

Bria Product Dimensions creates marketplace-ready product images from product photos and real-world measurements, adding dimension callouts, labels, optional titles, and product facts for e-commerce listings and catalog visuals. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Bria Product Dimensions turns a single product photo and real-world measurements into a clean product dimension image. The model preserves the product, removes the background inside the pipeline, and renders dimension callouts with labels.


Why Choose This?

  • Product dimension images Create marketplace-ready dimension visuals from one product photo and measurement values.

  • No generative redraw The product is preserved while callout lines and labels are rendered around it.

  • Flexible callouts Add height, top width, and bottom width labels with metric or imperial units.

  • Style options Choose default, childlike, or elegant callout styling.

  • Optional product facts Add a title, weight readout, or capacity readout when needed.

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


Parameters

ParameterRequiredDescription
imageYesSource product photo. JPEG, JPG, PNG, and WEBP are supported.
dimensionsYesDimension callouts to render. Each item includes name, value, unit, and optional position.
styleYesRendering style: default, childlike, or elegant.
units_displayNoLabel display mode: single, dual_bullet, dual_slash, or dual_parens. Default: single.
backgroundNoCanvas background. Use white, cream, charcoal, or a hex color. Default: white.
titleNoOptional headline above the product. Maximum 80 characters.
title_positionNoTitle placement: top_left, top_center, or top_right. Default: top_center.
weight_valueNoOptional product weight value. Use together with weight_unit.
weight_unitNoOptional product weight unit: lb, oz, g, or kg.
weight_labelNoOptional weight label: Weight or Net Weight.
capacity_valueNoOptional product capacity value. Use together with capacity_unit.
capacity_unitNoOptional product capacity unit: fl_oz, ml, l, qt, gal, or cups.
proportional_linesNoScale callout line length to the measurement value. Default: true.

How to Use

  1. Upload product photo - Provide a clear product image.
  2. Add dimensions - Enter at least one measurement such as height or bottom width.
  3. Choose style - Select the callout visual style.
  4. Adjust optional display settings - Add a title, background, weight, or capacity if needed.
  5. Submit - Generate the dimension image and retrieve the output URL.

Pricing

OutputPrice
Per image$0.04

Best Use Cases

  • Ecommerce product pages - Generate clear dimension images for listings.
  • Marketplace assets - Create product visuals for catalogs and online stores.
  • Packaging and product content - Show height, width, weight, or capacity in a polished visual.
  • Product marketing - Create clean comparison or specification images.
  • SKU workflows - Standardize product dimension visuals across many items.

Pro Tips

  • Use a clean product photo with the full product visible.
  • Use height, width_bottom, and width_top for the clearest callout layout.
  • Use dual_parens when you want labels such as 10 in (25.4 cm).
  • Keep titles short so they do not crowd the product.
  • Use a simple background color for marketplace-style assets.
  • Ensure the input image URL is publicly accessible.

Notes

  • image, dimensions, and style are required.
  • Output format is fixed to PNG.
  • The backend output size defaults to 2200 pixels.
  • Synchronous mode, webhook callbacks, and moderation switches are handled by backend defaults.

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",
  "dimensions": [],
  "style": "default",
  "units_display": "single",
  "background": "white",
  "title_position": "top_center",
  "weight_unit": "lb",
  "weight_label": "Weight",
  "capacity_unit": "fl_oz",
  "proportional_lines": true
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/bria/product-dimensions" \
  -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-Source product photo. JPEG, JPG, PNG, and WEBP are supported.
dimensionsarray<object>Yes-0 ~ 6 itemsDimension callouts to render on the product image.
stylestringYesdefaultdefault, childlike, elegantRendering style for callout lines and typography.
units_displaystringNosinglesingle, dual_bullet, dual_slash, dual_parensHow primary and secondary units are displayed on labels.
backgroundstringNowhite-Canvas background. Use white, cream, charcoal, or a hex color such as #0F766E.
titlestringNo--Optional headline rendered above the product.
title_positionstringNotop_centertop_left, top_center, top_rightPlacement of the title along the top.
weight_valuenumberNo-0 ~ ∞Optional product weight value. Fill this together with Weight Unit.
weight_unitstringNo-lb, oz, g, kgOptional product weight unit. Fill this together with Weight Value.
weight_labelstringNo-Weight, Net WeightOptional label for the weight readout.
capacity_valuenumberNo-0 ~ ∞Optional product capacity value. Fill this together with Capacity Unit.
capacity_unitstringNo-fl_oz, ml, l, qt, gal, cupsOptional product capacity unit. Fill this together with Capacity Value.
proportional_linesbooleanNotrue-Scale callout line length to the measurement value.

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.