The best inpaint API for developers who need to remove objects, erase watermarks, strip logos, or clean up unwanted elements from images — all via a single HTTP call. Describe what to remove in plain English, POST your image, and get back a seamlessly inpainted result. $0.001 per call — 50× cheaper than cleanup.pictures ($0.05). 500 free credits, no credit card.
Sign up, copy your key from the dashboard, POST your image with a plain-English removal prompt. The endpoint returns a generation id; poll until status=completed, then download the inpainted image from output_url. The mask field is optional — send it when you need pixel-precise control over which region to erase.
curl -X POST https://api.pixelapi.dev/v1/image/remove-object \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]" \ -F "prompt=remove the watermark in the bottom-right corner" # Response: {"generation_id": "uuid", "status": "queued", ...} # Optional: add a mask PNG (white pixels = erase area) # -F "[email protected]" # Poll until completed curl https://api.pixelapi.dev/v1/image/UUID \ -H "Authorization: Bearer YOUR_API_KEY" # Response: {"status": "completed", "output_url": "https://..."}
pip install pixelapi
---
from pixelapi import PixelAPI
client = PixelAPI(api_key="YOUR_API_KEY")
result = client.remove_object(
image="product.jpg",
prompt="remove the watermark in the bottom-right corner"
# mask="mask.png" # optional
)
result.save("product_clean.jpg")
npm install pixelapi
---
import { PixelAPI } from "pixelapi";
const client = new PixelAPI({ apiKey: process.env.PIXELAPI_KEY });
const result = await client.removeObject({
image: "./product.jpg",
prompt: "remove the watermark in the bottom-right corner",
// mask: "./mask.png" // optional
});
await result.save("product_clean.jpg");
composer require pixelapi/pixelapi
---
<?php
use PixelAPI\Client;
$client = new Client(getenv("PIXELAPI_KEY"));
$result = $client->removeObject([
"image" => "product.jpg",
"prompt" => "remove the watermark in the bottom-right corner"
]);
file_put_contents("product_clean.jpg", $result->getBody());
gem install pixelapi
---
require "pixelapi"
client = PixelAPI::Client.new(api_key: ENV["PIXELAPI_KEY"])
result = client.remove_object(
image: "product.jpg",
prompt: "remove the watermark in the bottom-right corner"
)
File.binwrite("product_clean.jpg", result.body)
go get github.com/pixelapi/pixelapi-go
---
import "github.com/pixelapi/pixelapi-go"
client := pixelapi.New("YOUR_API_KEY")
result, err := client.RemoveObject(pixelapi.RemoveObjectParams{
Image: "product.jpg",
Prompt: "remove the watermark in the bottom-right corner",
})
if err != nil { panic(err) }
result.Save("product_clean.jpg")
Per Om's pricing principle, PixelAPI is set at exactly 50× cheaper than the nearest API competitor (cleanup.pictures, $0.05). Here is how we compare against the main inpaint and object-removal services:
| Provider | Free tier | Per-call API price | Prompt-based | Mask support |
|---|---|---|---|---|
| PixelAPI | 500 credits, no card | $0.001 | ✓ | ✓ optional |
| cleanup.pictures | limited free web tool | ~$0.05 (see cleanup.pictures/pricing) | ✓ | ✓ |
| Magic Eraser | web tool, limited | see magicstudio.com/pricing | ✓ | ✓ brush |
| Snapedit | limited free tier | see snapedit.app/pricing | ✓ | ✓ |
| watermarkremover.io | 3 credits/month | $0.01–$0.12/image (plan-dependent) | limited | auto-detect |
cleanup.pictures pricing verified from internal competitive audit (March 2026); ~$0.05/call for API access. watermarkremover.io pricing verified from watermarkremover.io/pricing (May 2026). Magic Eraser and Snapedit API pricing not publicly listed — see their pricing pages. PixelAPI's per-call price is set at roughly 50× cheaper than the cheapest commercial API competitor (cleanup.pictures, ~$0.05) per our pricing principle.
The API returns a PNG or JPEG at the same pixel dimensions as your input. The erased region is filled with contextually plausible background — no blurry halos, no smearing.
Output is always the same width and height as the input image. No cropping, no padding, no resolution loss. Drop the result straight back into your layout.
Upload any common format as multipart/form-data. Max 20 MB per file. The API processes at native resolution — no internal downsampling.
Attach a mask PNG (white = erase area, black = keep). Useful when the object is hard to describe uniquely in text or sits against a complex background.
Consumer "magic eraser" tools are click-to-erase web apps — great for one-off edits, not for processing thousands of images per day. PixelAPI's inpaint API is built for developers:
The inpaint API is production-ready for these use cases. Each links to a setup guide:
Strip watermarks, stickers, and competitor logos from imported product images at catalog ingestion time.
Remove for-sale signs, cars, and personal items from MLS listing photos in bulk before publication.
Automate dust-spot removal, sensor dirt cleanup, and background distraction erasure on RAW exports.
Clean up user-generated content before publishing — remove timestamps, handles, and frame artifacts.
Remove mannequin stands, size clips, and background distractions from product photos before upload.
Batch-process client assets — remove watermarks from stock images, strip dated logos, clean mockups.
More use-case guides: all industries →
Remove watermarks from imported product images via webhook on upload.
No-code object removal triggered from Google Drive, Dropbox, or Airtable.
Drag-and-drop inpainting in Make scenarios — chain with other image steps.
Auto-clean CMS images before they appear on product or portfolio pages.
Catalog-wide watermark removal on product image sync.
Adobe Commerce / Magento 2 plugin pattern for bulk image cleanup.
Both are prompt + mask APIs. PixelAPI is ~50× cheaper and offers SDKs in 6 languages vs Cleanup's raw REST only.
Magic Eraser is primarily a consumer web app. PixelAPI provides a production REST API with SLA, invoicing, and bulk pricing.
Firefly Remove requires a Creative Cloud subscription. PixelAPI is pay-per-call — no subscription, no seat minimums.
Need to remove the entire background? Use the Remove Background API instead — it returns a transparent PNG cutout.
Default 60 requests/minute on the free tier, 600 on paid tiers. Exceeding the limit returns HTTP 429 with a Retry-After header. Recommended: exponential backoff starting at 2 s, doubling up to 30 s. The Python and Node SDKs handle this automatically.
# Python SDK auto-retries 429 with backoff
from pixelapi import PixelAPI
client = PixelAPI(api_key="...", max_retries=4)
result = client.remove_object(
image="batch_item.jpg",
prompt="remove the logo"
) # auto-retries on 429
Image processing failures are auto-detected by an output-quality QC layer. If a result would be blank or visibly corrupted, the job is rejected and credits are automatically refunded — you never pay for a broken inpainting result.
| Parameter | Type | Required | Description |
|---|---|---|---|
image | file | yes | Input image (JPEG, PNG, or WebP, max 20 MB) |
prompt | string | yes | Plain-English description of what to remove, e.g. "remove the watermark" |
mask | file | optional | Mask PNG — white pixels mark the area to erase, black pixels are preserved |
Endpoint: POST https://api.pixelapi.dev/v1/image/remove-object
Auth: Authorization: Bearer YOUR_API_KEY
Content-Type: multipart/form-data
An inpaint API accepts an image and a description of what to remove (plus an optional mask region), then fills the erased area with contextually plausible pixels. The result looks like the object was never there. PixelAPI's inpaint API is reachable at POST /v1/image/remove-object.
POST your image and a text prompt to https://api.pixelapi.dev/v1/image/remove-object with Authorization: Bearer YOUR_API_KEY. Include an optional mask PNG (white pixels mark the area to erase). The response contains a generation_id; poll GET /v1/image/{id} until status=completed, then download the cleaned image from output_url. See the Quick Start section above for code in 6 languages.
$0.001 per call — that is 1 credit at $0.001 each. New accounts receive 500 free credits (20 free calls) with no credit card required. Our nearest API competitor, cleanup.pictures, charges approximately $0.05 per call, making PixelAPI 50× cheaper.
No. The mask parameter is optional. When you omit it, the API uses the prompt alone to locate the object you want removed. Supply a mask PNG (white = erase area) when you need pixel-precise control over which region is targeted — useful for small logos or watermarks in specific corners.
Any unwanted object described in natural language: watermarks, logos, text overlays, people in the background, power lines, cars, signs, timestamps, dust spots, and more. The prompt can be as specific as "remove the clock on the wall" or as broad as "remove all text overlays".
Most requests complete in 3–8 seconds depending on image resolution. Capacity is kept warm 24/7 — there are no cold-start delays, so the first call is as fast as the thousandth. Bulk concurrent requests are processed in parallel.
JPEG, PNG, and WebP as multipart/form-data uploads. Maximum file size is 20 MB. Images are processed at native resolution — no internal downsampling or forced resize.
The API returns a PNG or JPEG image at the same pixel dimensions as your input, with the target object seamlessly erased and the background filled in. The download URL is in the output_url field of the completed polling response.
Yes. Set the prompt to something like "remove the watermark in the bottom-right corner" and optionally provide a mask PNG over the watermark region. The API fills the area with surrounding texture so the result looks clean and print-ready.
Yes — pip install pixelapi. SDKs are also available for Node.js (npm install pixelapi), PHP (Composer), Ruby (gem install pixelapi), Go (go get github.com/pixelapi/pixelapi-go), and a Java/Kotlin client. All SDKs handle authentication, polling, retry-on-429, and binary file return automatically.
Default 60 requests/minute on the free tier, 600 requests/minute on paid tiers. Higher limits are available for bulk batch processing — email [email protected] with your expected volume. Exceeding the limit returns HTTP 429 with a Retry-After header.
Yes. Describe multiple targets in a single prompt — for example: "remove the logo, the timestamp, and the person in the background". You can also provide a mask that covers all target regions at once. For completely separate erasure operations that need independent quality control, chain multiple calls.
Yes. PixelAPI is a registered Indian business. We issue GST invoices — 18% IGST for international clients, CGST/SGST for domestic. Invoice download is built into the dashboard with no extra steps.