Skip to main content
remove.bg shuts down on 1 December 2026. Poof is a plug-and-play replacement: for most integrations you switch the domain from api.remove.bg to api.poof.bg, put your Poof key in the same header, and everything else keeps working. Same upload, same options, same image back.
Plug and play: change the domain, keep the rest. api.poof.bg serves the remove.bg path, so POST https://api.poof.bg/v1.0/removebg behaves exactly like POST https://api.poof.bg/v1/remove. It is a route alias, not an HTTP redirect, so POST bodies and headers arrive untouched. X-Api-Key works in any casing. A remove.bg client that only swaps the domain and the key value keeps working.
Pick the path that fits you:
  1. No code. Sign in at dash.poof.bg and open Studio: upload images, process them on your account, select and download the results. For automations, connect Poof in n8n, Zapier or Make, or give your AI assistant the MCP server.
  2. An existing remove.bg integration. Change the domain and the key as described above. Then skim section 2 for the handful of parameters that differ.
  3. A full mapping. Sections 1 to 6 below cover every endpoint, parameter, header and error, plus the Python and TypeScript SDKs and a migration checklist.
The shutdown date comes from the remove.bg API documentation; the standalone website closes on the same day at 9:00am CET.

1. Endpoint and authentication

HTTP header names are case-insensitive, so code that already sends X-Api-Key works as-is once the value is a Poof key. Get a key at dash.poof.bg.
Sticking with /v1.0/removebg on api.poof.bg is fine. Use /v1/remove in new code; it is the canonical path.

2. Request parameters

Poof’s validator ignores fields it does not know, so leftover remove.bg parameters never cause a rejection. The one exception is size: Poof validates its value, and remove.bg’s auto, small, regular, 4k and 50MP are only accepted through the remove.bg compatibility layer described below.
remove.bg compatibility layer. Rows marked Mapped are accepted by a compatibility layer on /v1/remove, which also answers on the legacy path /v1.0/removebg. It exists so an existing remove.bg client can switch by changing the hostname and key. In new code prefer Poof’s native parameters: one of the four size values, padding instead of crop_margin, and image_file uploads.

3. Response headers

4. Error handling

remove.bg returned errors as an array:
remove.bg
Poof returns a flat object with a machine-readable code, a message, optional details, a request_id and a doc_url. Update any code that reads errors[0].title:
Poof
Check the status code first and then code; remove.bg used different status codes for some of these cases, so do not rely on the old mapping. The full list is in the error reference.

5. Using the SDKs instead

If you would rather not hand-roll multipart requests, the official SDKs expose the same parameters as typed options.
See the Python SDK and TypeScript SDK pages for the full option list, and the integrations overview for n8n, Zapier, Make and MCP.

6. Checklist

1

Create a Poof account and key

Sign up at dash.poof.bg. The Free plan includes 100 credits every month, enough to validate the migration.
2

Swap the hostname and key

Replace api.remove.bg with api.poof.bg and set your Poof key in the API key header. The remove.bg path /v1.0/removebg keeps working on Poof, so these two edits are the minimum; switch to the canonical /v1/remove when convenient.
3

Audit your parameters

Fix size values, replace crop_margin with padding, and remove any dependence on shadows, roi or background images.
4

Update error handling

Read code and message from the flat error body instead of errors[0], and log request_id.
5

Run your test suite

The success response is the same binary image, so existing assertions on output should pass unchanged.
Pricing for the volume you process is on poof.bg/pricing. For a shorter overview of why teams pick Poof after remove.bg, see poof.bg/alternative/remove-bg.