Photoroom API Pricing per Image and a Lower-Cost Alternative
If you are checking Photoroom API pricing, you probably want the cost per image and a clear idea of your options. Photoroom charges $0.02 per image for background removal and $0.10 per image for its Image Editing API. Th
If you are checking Photoroom API pricing, you probably want the cost per image and a clear idea of your options. Photoroom charges $0.02 per image for background removal and $0.10 per image for its Image Editing API. This post covers how those plans work, how they compare, and a drop-in Python function for moving to an API with a lower cost per image.
Want to compare cutouts first? Try the Background Removal API on one of your own product photos.
Photoroom API pricing per image
Prices from Photoroom's pricing page and docs, checked in October 2026:
- Remove Background API (Basic): $0.02 per image
- Image Editing API (Plus): $0.10 per image, adds AI backgrounds, AI shadows and virtual try-on
- Enterprise: contact sales, annual commitment
- Free: 10 Remove Background calls with an account, plus 1,000 watermarked Image Editing sandbox calls a month
Plans are prepaid monthly in fixed amounts, such as $20 for 1,000 images, and unused images do not roll over. At 10,000 images a month, Photoroom Basic comes to $200.
Photoroom vs Clipdrop
- Photoroom Basic: $0.02 per image
- Clipdrop: $0.144 to $0.50 per image in prepaid credit packs
- remove.bg: self-service API closes on 1 December 2026
The AI Engine Background Removal API has a lower cost per image than both Photoroom plans, with flat monthly plans and a free tier. For the full market, see the background removal API comparison.
Request mapping
-
sdk.photoroom.com/v1/segmentbecomesbackground-removal-ai.p.rapidapi.com/remove-background -
x-api-keybecomesx-rapidapi-keyplusx-rapidapi-host -
image_filebecomesimage(or sendimage_url) -
bg_colorbecomes the/color-backgroundendpoint, with R,G,B,A values such as255,255,255,255 -
format,sizeandcropare handled with Pillow on the returned image - Image bytes in the response become JSON with an
image_urlto download
A drop-in segment() function in Python
It takes the same image and returns image bytes, so the code that saves or uploads the result stays the same.
import io
import os
import requests
from PIL import Image
API = "https://background-removal-ai.p.rapidapi.com"
HEADERS = {
"x-rapidapi-host": "background-removal-ai.p.rapidapi.com",
"x-rapidapi-key": os.environ["RAPIDAPI_KEY"],
}
def segment(image_file, output_format="png", bg_color=None):
"""Replaces a Photoroom /v1/segment call and returns image bytes."""
endpoint, data = "/remove-background", {}
if bg_color:
endpoint, data = "/color-background", {"bg_color": bg_color}
with open(image_file, "rb") as f:
resp = requests.post(API + endpoint, headers=HEADERS, data=data,
files={"image": f}, timeout=60)
resp.raise_for_status()
png = requests.get(resp.json()["image_url"], timeout=60).content
if output_format == "png":
return png
image = Image.open(io.BytesIO(png))
out = io.BytesIO()
if output_format == "webp":
image.save(out, "WEBP")
else: # jpeg has no alpha channel, so flatten on white
flat = Image.new("RGB", image.size, (255, 255, 255))
flat.paste(image, mask=image.getchannel("A"))
flat.save(out, "JPEG", quality=92)
return out.getvalue()
The call site becomes:
png = segment("shoes.jpg")
with open("shoes-cutout.png", "wb") as out:
out.write(png)
# Same photo on a white catalog background (R,G,B,A)
white = segment("shoes.jpg", bg_color="255,255,255,255")
On a 1200x1500 sneaker photo, PNG and WebP came back with an alpha channel, JPEG came back flattened on white, and all three kept the input size.
New backgrounds in one call
Each background has its own endpoint, so you can produce catalog and lifestyle versions from the same photo:
Migration checklist
- Search your codebase for
sdk.photoroom.comandx-api-key - List the options you send, especially
format,bg_color,sizeandcrop - Swap the call for
segment()and run it on 20 to 50 of your real images - Convert
bg_colorvalues to R,G,B,A - Move usage monitoring to the
x-ratelimit-requests-remainingheader
Read the full guide with the before and after code and the cost tables on ai-engine.net.
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.