Ideogram remove-background 200 with an error body vs Sume errors
Ideogram's remove-background can return HTTP 200 whose body holds error and status_code. Check the body, not just the status. Sume reports failures on the job.

Do not trust a 200 alone on Ideogram's synchronous remove-background call. Its page says that if a synchronous request fails after the response has started streaming, "the HTTP status is already 200; the body contains error and status_code". Check the body for those fields before treating the response as an image. On Sume, failures are read from the job's error metadata.
Ideogram facts are from its remove-background page; Sume facts from Errors and credits, both read 2026-10-01.
What does the Ideogram page say?
The endpoint is POST /v2/image/remove-background/ideogram-1, multipart, with a source image of JPEG, PNG or WebP up to 25MB. A successful synchronous call returns data; a failure after streaming began carries error (message) and status_code (the status it would have returned before streaming). With async you get a generation_id and poll instead.
Where does a failure live on Sume?
Failed jobs expose public error metadata such as category, stage, retryability, retry-after seconds, public reason, and next action. Internal provider payloads are not public API fields. The Sume tool for this task is rmbg_create.
| Signal | Ideogram sync call | Sume job |
|---|---|---|
| Where the error is | Body fields error, status_code | Job error metadata |
| Unsupported input | Check body | generation_rejected: inspect events and fix input |
| Input not reachable | Not stated | image_not_fetchable or input_media_unreachable |
How should my client handle both?
Treat success as "status OK and no error field", not "status OK". For Sume, read the job status and its error category, then follow the documented next action: for generation_rejected, inspect events and fix the input; for unreachable media, check the image is a public HTTPS URL. A Python walk-through is in remove background from an image in Python.
Sources
Related posts
More in Developers
- Ideogram API seed for repeatable results vs Sume's 400
Ideogram endpoints take an optional seed for repeatable results. Sume's image schema has seed, but no model advertises it, so it returns 400.
- Ideogram Topaz Bloom 2 creative upscale prompt vs Sume upscale
Ideogram's Topaz Bloom 2 upscale takes an optional prompt. Sume's image upscale takes image_url and upscale_factor only, with no prompt field. Request shapes.
- Ideogram Topaz Text Refine 8x limit: 8192px math vs Sume upscale
Ideogram rejects a Topaz Text Refine upscale if the output exceeds 8192px on a side. Work out the largest source per factor; Sume's upscaler takes 1 to 4.
- Idempotency-Key draft: 422 reuse vs Sume's 409 conflict
The IETF Idempotency-Key draft expired 18 April 2026 and uses 422 for a reused key; Sume returns 409 idempotency_conflict for a different body.
Written by Sume