The problem: background removal gets expensive fast
If you're building anything that touches product photos — an e-commerce catalog, a marketplace, a print-on-demand tool — you'll eventually need to strip backgrounds programmatically. One image is trivial. The bill arrives when you're doing 10,000 or 100,000 a month.
I call a lot of these APIs, so here's an honest 2026 comparison of the background-removal services I've actually integrated, with current public pricing.
Pricing (public list / volume pricing, June 2026)
| API | Price per image | Free tier |
|---|---|---|
| remove.bg | ~$0.105 (high volume) – $0.23 (standard) | 50 preview-res calls/mo |
| Clipdrop | $0.07–0.09 | limited |
| PhotoRoom | ~$0.02 | trial |
| PixelAPI | $0.009 | 500 credits, no card |
Prices move around and vary by tier and commitment — check each vendor's page before you commit. But the spread is the point: at scale, the gap between $0.105 and $0.009 is real money.
Quick math for 50,000 images/month:
- remove.bg @ $0.105 = $5,250
- PhotoRoom @ $0.02 = $1,000
- PixelAPI @ $0.009 = $450
Same transparent PNG out the other end.
The actual API call
Every one of these is a multipart POST. Here's PixelAPI with curl:
curl -X POST https://api.pixelapi.dev/v1/image/remove-background \
-H "Authorization: Bearer YOUR_KEY" \
-F "image=@product.jpg" \
-o product-nobg.png
You get a transparent PNG back. No async polling, no job queue to babysit for a single image.
Python
In a real pipeline you're looping over a folder or a queue. Here's the requests version:
import requests
API_KEY = "YOUR_KEY"
URL = "https://api.pixelapi.dev/v1/image/remove-background"
def remove_bg(in_path, out_path):
with open(in_path, "rb") as f:
resp = requests.post(
URL,
headers={"Authorization": f"Bearer {API_KEY}"},
files={"image": f},
timeout=60,
)
resp.raise_for_status()
with open(out_path, "wb") as out:
out.write(resp.content)
print(f"saved {out_path} ({len(resp.content)} bytes)")
remove_bg("product.jpg", "product-nobg.png")
Drop that into a ThreadPoolExecutor and you can churn through a catalog in parallel. Output is a transparent PNG, hair-level edges, typically under 3 seconds, up to 50MP source.
When to use which
I'm not going to pretend one API wins everything. Honest take:
- remove.bg — the incumbent, very strong on hair, fur, and tricky edges. If quality on hard subjects is the only thing that matters and volume is low, it's a safe default. You pay for it.
- Clipdrop — convenient if you're already in the Stability ecosystem and want cleanup/relight in the same place.
- PhotoRoom — good middle ground, reasonable price, batch-friendly, strong on e-commerce product shots.
- PixelAPI — cheapest by a wide margin, transparent PNG, up to 50MP, simple bearer-token REST. This is the one I reach for when the workload is high-volume product imagery and per-image cost dominates the decision.
The real decision usually isn't "best edges in the world" — it's "good enough edges at a price that survives 100k images a month." For most catalog and e-commerce work, the cheap option clears the quality bar fine.
Things that bite you in production (any provider)
A few hard-won notes that apply no matter which API you pick:
- Resolution limits. Several APIs silently downscale above a cap, or charge more for full-res output (remove.bg's free tier only returns preview resolution). If you need print-quality output, confirm the max megapixels up front — PixelAPI handles up to 50MP.
- Rate limits and concurrency. Batch jobs hammer the endpoint. Back off on HTTP 429s and cap your thread pool; don't fire 500 concurrent requests and assume it's fine.
- PNG size. Transparent PNGs are big. If you're storing thousands, convert to WebP-with-alpha afterward — your object-storage bill will thank you.
- Edge cases over averages. Test on your worst images, not your prettiest. Flyaway hair, transparent glass, white-on-white, motion blur. The average image looks fine on every provider; the price difference and the quality difference both show up in the tail.
Try it
PixelAPI gives you 500 free credits, no credit card, so you can run your own hardest images through it before believing any of my numbers:
- Docs: https://pixelapi.dev/remove-background-api.html
- Endpoint:
POST https://api.pixelapi.dev/v1/image/remove-background
Grab a key, point the Python snippet above at your ugliest product photo — the one with flyaway hair on a busy background — and compare the PNG against whatever you're paying for now. That's the only benchmark that matters.
Top comments (0)