remove.bg is being sunset as a standalone product. Its own site banner says the standalone website will no longer be available from 1 December 2026 at 9:00am CET, and the API documentation says background removal "moves to Leonardo.Ai, also part of Canva" on the same date. If your product or your daily workflow relies on remove.bg, it has to move somewhere before it stops working. This post covers what is changing, what your options cost, and how to switch to Poof with the smallest possible change.
Short version
Poof is a plug-and-play replacement. Switch the domain from api.remove.bg to api.poof.bg, use a Poof key, and your existing integration keeps working. If you used the remove.bg website instead, Studio in the Poof dashboard does the same job in the browser. Prices start from $0.002 per image and every account gets 100 free credits a month. Developers will find the technical details at the end of this post and in the migration guide on docs.poof.bg.
What is changing at remove.bg
- Website: the standalone remove.bg website closes on 1 December 2026 at 9:00am CET. Background removal moves into Canva.
- API: per remove.bg's API page, "Starting December 1, 2026, background removal moves to Leonardo.Ai, also part of Canva."
- Keys and credits: remove.bg API keys stop working with the standalone API, and remove.bg credits cannot be moved to Poof. You will need a new key wherever you go.
Your two options
Option 1: Canva's successor service (Leonardo.Ai)
remove.bg points API customers to Leonardo.Ai, another Canva company. It is a different API with a different way of sending images and receiving results, so moving there means rewriting the part of your code that talks to remove.bg. Its published rate is $0.1047 per image.
Option 2: Poof
Poof accepts the same kind of request remove.bg did and returns the finished image directly, so an existing integration keeps working once it points at the new domain. Pricing starts from $0.002 per image on the Giga plan and the Free plan includes 100 credits every month, so most teams validate the switch before paying anything. Non-developers get Studio, a browser tool for uploading, processing and downloading images, plus ready-made steps for n8n, Zapier and Make.
remove.bg vs Poof: Side-by-Side Comparison
| Feature | remove.bg | Poof |
|---|---|---|
| Status | Standalone service ends 1 Dec 2026 | Active, developer-first |
| Works with your existing remove.bg integration | — | Yes, switch the domain and key |
| Price per image | $0.20 (standard rate) | From $0.002 |
| 10,000 images/month cost | $2,000 | $29 (Mega plan) |
| 200,000 images/month cost | $40,000 | $299 (Giga plan) |
| Accuracy | 99.5% | 99.8% |
| Free tier | 50 API calls/month | 100 full-resolution images/month |
| Browser tool | remove.bg website (until 1 Dec 2026) | Studio in the dashboard |
| No-code automations | Yes | n8n, Zapier, Make, MCP |
| Output formats | PNG, JPG, WebP, ZIP | PNG, JPG, WebP |
| GDPR compliant | Yes | Yes |
How to Migrate from remove.bg to Poof
For most teams the whole migration fits in an afternoon, and for a typical integration the code change is two lines. Here is the plan:
- Create a Poof account. Sign up at dash.poof.bg, no credit card required, and copy your API key. The Free plan's 100 monthly credits cover the test run.
- Switch the domain and the key. Wherever your code calls remove.bg, point it at Poof and use the new key. Poof accepts the same requests, including file uploads, image links and base64 images, and returns the image the same way.
- Check a couple of options. A few remove.bg extras (shadows, background images and region of interest) are not supported, and some remove.bg size names are translated rather than identical. If you never touched those settings, there is nothing to do.
- Test, then flip. Run your usual test images through Poof, compare the results, and move production traffic before 1 December 2026.
Not a developer? Open Studio in the Poof dashboard: upload your images, process them, select and download the results. If your remove.bg workflow ran inside Zapier, Make or n8n, swap the remove.bg step for the Poof step and keep the rest of the automation.
Pricing Breakdown: What Does remove.bg Actually Cost?
remove.bg's pricing is credit-based. One credit = one image. Credits cost $0.20 each at standard rates, with higher-volume plans reducing the effective per-image cost. Poof uses a subscription model:
| Monthly Volume | remove.bg | Poof |
|---|---|---|
| 100 images | $20 | $0 (Free plan) |
| 2,000 images | $400 | $9 (Pro) |
| 10,000 images | $2,000 | $29 (Mega) |
| 50,000 images | $10,000 | $99 (Ultra) |
| 200,000 images | $40,000 | $299 (Giga) |
Why Developers Switch to Poof
1. Cost at Scale
At 10,000 images/month, which is normal for an e-commerce app or a SaaS with a background removal feature, remove.bg's standard rate is $2,000/month. Poof's Mega plan covers the same 10,000 images for $29/month. Over a year that is roughly $23,650 saved on a single product.
2. No rewrite
The successor service remove.bg points to means new authentication and a new way of sending and receiving images. Poof keeps what you already have, so the diff in your codebase is a domain and a key.
3. Full resolution on every plan
remove.bg's free tier returns low-resolution previews. Poof returns full resolution on every plan, including Free, accepts inputs up to 36 megapixels, and processes an image in under 2 seconds.
Getting Started with Poof
- Sign up at dash.poof.bg, no credit card required
- Grab your API key from the dashboard, or open Studio if you prefer the browser
- Point your integration at Poof with the new key
- Run your test suite: the output is the same kind of image you got before
The free plan includes 100 full-resolution images per month. Most teams complete their migration and validation within the free tier, well before 1 December 2026.
Technical Migration Guide for Developers
This section is for the people who own the code. The complete reference, with every remove.bg parameter, header and error mapped to its Poof equivalent, lives in the migration guide on docs.poof.bg. The essentials:
- Endpoint and key. Replace
api.remove.bgwithapi.poof.bgand send your Poof key in the API key header you already use; header names are case-insensitive, so an existingX-Api-Keyheader keeps working. The remove.bg path/v1.0/removebgis served on api.poof.bg exactly like Poof's canonical/v1/remove, so the domain swap alone is enough. - Inputs.
image_file,image_urlandimage_file_b64are all accepted, with the same precedence as remove.bg. sizevalues. Poof's own values arepreview,medium,hdandfull(the default). remove.bg'sauto,small,regular,4kand50MPare translated by the remove.bg compatibility layer.- Other options.
crop_marginmaps to Poof'spadding(percentages only).type,type_levelandsemitransparencyare accepted and ignored. Shadows (add_shadow,shadow_type),roiand background images (bg_image_url,bg_image_file) have no equivalent; composite those client-side from the transparent PNG.
cURL
# remove.bg (old)
curl -H 'X-Api-Key: YOUR_REMOVEBG_KEY' \
-F 'image_file=@image.jpg' \
-o no-bg.png \
https://api.remove.bg/v1.0/removebg
# Poof (new)
curl -H 'X-Api-Key: YOUR_POOF_KEY' \
-F 'image_file=@image.jpg' \
-o no-bg.png \
https://api.poof.bg/v1/removePython
import requests
# remove.bg (old)
response = requests.post(
'https://api.remove.bg/v1.0/removebg',
files={'image_file': open('image.jpg', 'rb')},
headers={'X-Api-Key': 'YOUR_REMOVEBG_KEY'},
)
# Poof (new) - only 2 things change
response = requests.post(
'https://api.poof.bg/v1/remove', # 1. new URL
files={'image_file': open('image.jpg', 'rb')},
headers={'X-Api-Key': 'YOUR_POOF_KEY'}, # 2. new key
)
with open('no-bg.png', 'wb') as f:
f.write(response.content)Node.js
const axios = require('axios');
const fs = require('fs');
const FormData = require('form-data');
// remove.bg (old)
const oldForm = new FormData();
oldForm.append('image_file', fs.createReadStream('image.jpg'));
await axios.post('https://api.remove.bg/v1.0/removebg', oldForm, {
headers: { ...oldForm.getHeaders(), 'X-Api-Key': 'YOUR_REMOVEBG_KEY' },
responseType: 'arraybuffer',
});
// Poof (new)
const form = new FormData();
form.append('image_file', fs.createReadStream('image.jpg'));
const response = await axios.post('https://api.poof.bg/v1/remove', form, {
headers: { ...form.getHeaders(), 'X-Api-Key': 'YOUR_POOF_KEY' },
responseType: 'arraybuffer',
});
fs.writeFileSync('no-bg.png', response.data);Prefer an SDK? Poof publishes Python and TypeScript clients, plus n8n, Zapier, Make and MCP integrations.
Response format
Both APIs return the image directly in the response body. No JSON parsing, no extra download step: write response.content (Python) or response.data (Node) to a file. Poof adds X-Image-Width, X-Image-Height, X-Request-ID and X-Processing-Time-Ms headers. remove.bg's X-Width, X-Height and X-Credits-Charged are not sent: read X-Image-Width and X-Image-Height instead, and every successful request costs exactly one credit.
Errors
On error, remove.bg returned {"errors": [{"title": ..., "code": ...}]}. Poof returns a flat JSON body with a machine-readable code, a human-readable message, optional details, and a request_id (also sent as the X-Request-ID header). Failed requests never cost credits:
// 401 Unauthorized
{
"code": "authentication_error",
"message": "Missing or invalid API key.",
"request_id": "req_...",
"doc_url": "https://docs.poof.bg/errors/authentication-error"
}
// 400 Bad Request
{
"code": "validation_error",
"message": "Invalid parameters.",
"details": { "size": ["must be one of: preview, medium, hd, full"] },
"request_id": "req_...",
"doc_url": "https://docs.poof.bg/errors/validation-error"
}
// 429 Too Many Requests
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Upgrade your plan for a higher per-minute limit.",
"request_id": "req_...",
"doc_url": "https://docs.poof.bg/errors/rate-limit-exceeded"
}Frequently Asked Questions
Is remove.bg shutting down?
Yes. The standalone remove.bg website will no longer be available from 1 December 2026 at 9:00am CET, and the API is discontinued in favour of another Canva service on the same date, according to remove.bg's own site and API documentation.
Will my existing remove.bg integration work with Poof?
For most integrations, yes. Switch the domain and the key and the requests you already send keep working. A few remove.bg extras (shadows, background images, region of interest) are not supported. The migration guide lists everything that stays the same and the handful of things that differ.
Can I send an image link or a base64 image instead of a file?
Yes. Poof accepts file uploads, links to images and base64-encoded images, the same three ways remove.bg did.
Can I move my remove.bg credits to Poof?
No. remove.bg credits cannot be transferred to Poof. Poof gives every account 100 free credits a month, which covers a migration test for most teams.
Can I use Poof for commercial projects?
Yes. All Poof plans, including the free tier, allow commercial use with no attribution requirements.
What happens to images after processing?
Images are processed in memory and deleted immediately after the API response is sent. Nothing is stored on disk. Poof is an EU company and GDPR compliant.
See also the remove.bg alternative overview.