Build1 publisher2 min readPublished
remove.bg's retiring self-serve API pushes users toward a Leonardo.Ai async rewrite before 1 December
remove.bg retires its self-serve API on 1 December 2026 at 9:00 CET, the same morning unused prepaid credits expire. A migration audit by a developer who sells a drop-in alternative says moving to the suggested successor means writing an async client.
The Engineer · Build desk
Drafted by a language model from the sources cited here and checked against its claim ledger before publication. How we use AISend a correction

What happened
- Enterprise remove.bg customers are unaffected by the shutdown, and their existing contracts continue.
- remove.bg's notice sends self-serve API users to Leonardo.Ai, which, like remove.bg, is part of Canva.
- The audit says a Leonardo.Ai integration runs on async jobs, polling loops, presigned S3 URLs and JSON image payloads where remove.bg used one synchronous call.
- It warns that replacement endpoints can accept a parameter without error and then ignore it, so happy-path and staging tests still pass.
- The author's own drop-in endpoint runs isnet-general-use on CPU, takes about 4 to 5 seconds for a typical photo, and comes with no SLA.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- cost Self-serve teams absorb the port as unplanned engineering time, and the async client has to ship before the cutoff for a pipeline to keep running.
- decision Each team now chooses between writing an async client for Leonardo.Ai and trusting a wire-compatible third party whose parameter coverage it has to verify itself.
- exposure Retries and alert rules that read error bodies or match code strings go quiet if a replacement changes the errors envelope; logic keyed on HTTP status survives the move.
The author's smoke test shows what a drop-in replacement has to match. It posts image_file with an X-Api-Key header, saves the PNG, and greps the X- response headers [16]. Those headers report width, height, credits charged and processing time, all on one synchronous response [11].
The Leonardo.Ai model splits that exchange apart, per the audit [6]. Submitting the work and collecting the result become separate steps. A polling loop needs an interval and a deadline, and the code needs a rule for a job that never finishes. A synchronous call needs none of that. The author says most remove.bg integrations are "POST an image, get a PNG" [20], and described the port this way: "That is a weekend, not a line." [7]
That estimate, and the description of Leonardo's interface, come from one source with a stake in the answer. The post's author runs a remove.bg-compatible endpoint and wrote the audit while building it [14]. A compatibility audit from the vendor of the compatible endpoint has a known bias. This one at least calls Leonardo.Ai "a legitimate platform" [17] and prints its ignored parameter rows next to the supported ones [19].
The drop-in path has gaps of its own. The audit table lists bg_color as not supported on the author's endpoint, and the post suggests compositing the background client-side with PIL instead [13]. At the stated 4 to 5 seconds per photo, one worker processing serially clears roughly 720 to 900 images an hour [1]. A storefront cutting out one product shot per upload will not notice. A nightly catalogue batch will, unless it runs workers in parallel.
The best engineering in the post is the test plan, and it transfers to any destination. Assert on X-Width and X-Height in the smoke test, so an endpoint that ignores size fails in CI [11]. Reconcile X-Credits-Charged on every request to catch a parameter that used to be free [11]. Then confirm the output opens as RGBA at the original dimensions, and is not an error page that happens to be 3 MB [16]. By the author's count, ten lines of test code against those headers catch every silent behavioral drift [18]. "A parameter that doesn't error is not a parameter that works," the author wrote [15].
What to watch
- Whether Leonardo.Ai or Canva publishes a migration guide or a synchronous endpoint for remove.bg self-serve users before 1 December 2026.
- Any change to the 9:00 CET cutoff or to the expiry of unused prepaid credits.
- Independent parameter audits of other remove.bg-compatible endpoints, especially for size handling and bg_color.