Remove background API: transparent PNG cutouts with Sume RMBG 1.0
Send a public HTTPS image URL to POST /v1/rmbg-1.0/remove and get back a PNG with an alpha channel, at one price per image whatever its size.

To remove the background from an image with the Sume API, send a public HTTPS image_url to POST /v1/rmbg-1.0/remove. Sume RMBG 1.0 (sume/rmbg-1.0) runs it as a job, and the completed result is a Sume-hosted PNG with an alpha channel, so the removed background is transparent.
RMBG 1.0 is specified in the OpenAPI document behind the Sume API reference. The API reference and Core concepts docs pages cover jobs, results, and billing. All were read on 2026-09-26.
How do I call the remove background API?
Send JSON with the image's URL. image_url is the only required field. There is no model field: Sume selects the model. The same body also works at POST /v1/models/sume/rmbg-1.0/runs.
| Field | Required | What it does |
|---|---|---|
image_url | Yes | Public HTTPS image URL to remove the background from. |
mode | No | async (the default), sync, subscribe, or webhook. |
wait_timeout_seconds | No | Blocking wait for sync or subscribe, 0–30 seconds. |
webhook_url | No | Public HTTPS callback URL, up to 2,048 characters. |
metadata | No | Your own object, stored with the job request. |
curl -X POST https://api.sume.com/v1/rmbg-1.0/remove \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: rmbg-portrait-001" \
-d '{
"image_url": "https://example.com/inputs/portrait.png",
"mode": "async"
}'What does the result contain?
A completed job exposes PNG artifacts with alpha, mirrored to Sume. Fetch GET /v1/jobs/:id/result once result_ready is true; until then it answers 409 job_not_completed. Video API media inputs and outputs explains the same URL-in, Sume-URL-out pattern for other jobs.
- Each artifact has an opaque
id, atype, aurlundermedia.sume.com, and acontent_type.width,height, andsize_bytescan also be set. - The artifact path is opaque. Store the URL, but do not parse it for ids.
What happens if I cut out an image that is already transparent?
When the input already has substantial fully transparent pixels, as in a typical re-cutout, Sume first flattens it onto mid-gray #808080 so the edges stay clean. It is still one billed removal. Opaque inputs are unchanged.
Should I wait for the cutout or poll for it?
Every mode returns the job id in the first response.
syncorsubscribeholds the request for up towait_timeout_seconds. If the job is not done by then, the response is still 2xx with the current job state and polling URLs: pollstatus_urlrather than resubmitting.asyncreturns at once withstatus_url,result_url,events_url, andcancel_url.webhookreturns at once and sends a signed callback when the job completes, fails, or is canceled. There are no progress callbacks.POST /v1/jobs/:id/cancelworks before generation starts. After that it returns409 job_generation_already_started.
How much does background removal cost?
API pricing lists background removal at $0.0225 per image, plus a 5.5% agent fee by default. The pricing basis in the public catalog, GET /v1/catalog, adds that the price does not vary by image size.
Sume reserves the estimate when you submit, captures it when the job succeeds, and refunds a job that fails or is canceled before capture. If the balance cannot cover the estimate, the submit returns 402 and no job starts.
What does RMBG 1.0 not do?
It works on one image you already have. Generating a new image is a different endpoint, covered in Image generation API with reference images. Other limits:
- No model choice. Model ids are not accepted in the request.
- No output format option. The result is a PNG with alpha.
- One image per job:
image_urlis a single URL. - No file bytes. Sume fetches the URL, and localhost, private-network, non-HTTPS, and non-image responses are rejected before generation submission.
- No progress callbacks. Webhooks fire only on
job.completed,job.failed, andjob.canceled.
Sources
Related posts
Written by Sume