REST API · Live

Remove Object API

A production Remove Object API that erases unwanted people, logos, wires, stickers and clutter from a photo and reconstructs the background. One HTTP call. $0.012 per image (12 credits). 300 free credits, no credit card.

$0.012 / imagePrompt or mask300 free creditsNo credit cardREST + SDKs
Get an API key (free) Quick start See pricing API docs

Quick start — Remove Object API

Sign up, copy your key, and POST the image. Describe the thing to erase. The endpoint returns a generation id; poll until status=completed, then download the cleaned photo. White in an optional mask is the region to reconstruct.

curl -X POST https://api.pixelapi.dev/v1/image/remove-object \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=@product.jpg" \
  -F "prompt=remove the person in the background"

# Poll
curl https://api.pixelapi.dev/v1/image/GENERATION_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
import requests
r = requests.post(
    "https://api.pixelapi.dev/v1/image/remove-object",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    files={"image": open("product.jpg", "rb")},
    data={"prompt": "remove the person in the background"},
)
job = r.json()
# poll GET /v1/image/{job['id']} until status == "completed"
import fs from "fs";
const form = new FormData();
form.append("image", fs.createReadStream("product.jpg"));
form.append("prompt", "remove the person in the background");
const res = await fetch("https://api.pixelapi.dev/v1/image/remove-object", {
  method: "POST",
  headers: { Authorization: "Bearer " + process.env.PIXELAPI_KEY },
  body: form,
});
const job = await res.json();
$ch = curl_init("https://api.pixelapi.dev/v1/image/remove-object");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ["Authorization: Bearer YOUR_API_KEY"],
  CURLOPT_POSTFIELDS => [
    "image" => new CURLFile("product.jpg"),
    "prompt" => "remove the person in the background",
  ],
  CURLOPT_RETURNTRANSFER => true,
]);
$job = json_decode(curl_exec($ch), true);

What the Remove Object API is for

Catalog teams, marketplaces, and photo apps need a reliable way to delete a photobomber, a stray cable, a price sticker, or a logo without opening a desktop editor. The Remove Object API is a production REST endpoint that inpaints the hole so the surrounding texture, lighting, and perspective continue. You send one image and a short instruction; you get back a cleaned file at the original resolution.

It is not a background-cutout tool and it is not a text-eraser. Background cutouts belong on the Background Removal API. Captions, watermarks, and date stamps belong on the Remove Text API. Mixing those jobs here wastes a round-trip and produces a weaker fill.

Prompt mode

Pass prompt with a concrete noun and location: “remove the power line on the right”, “erase the logo on the bottle”. Vague prompts such as “clean it up” leave the model guessing and often spare the object you wanted gone.

Mask mode

Upload mask as a second image. White = erase, black = keep. Use a mask for jewelry clasps, overlapping people, or any region a sentence cannot name uniquely. Image is required; mask is optional.

Pricing comparison

Live charge is $0.012 per image (12 credits). That is the number /v1/pricing/live returns today — not a list price that drifts from the meter.

VendorWhat you getTypical paid rate
PixelAPI Remove Object APIPrompt or mask inpainting, REST, no desktop seat$0.012 / image
Cleanup.pictures / similar web appsManual brush, per-seat or credit packsOften $0.03–$0.10 / image at volume
Magic Eraser style mobile toolsConsumer UI, weak batch, no server keySubscription, not metered API
Desktop editorsFull control, no HTTPSeat license, not per image

New accounts receive 300 free credits on a 24-hour trial, no card. That is enough to run a real catalog sample before you pay. After the trial, credits are prepaid; failed jobs that never produce an output are not supposed to keep the charge — check the dashboard if a delivery looks empty.

Production notes

Use cases and related pages

Teams wire this into ingest so every SKU is clean before it hits the storefront. Real-estate pipelines drop trash bags and cars. Event photographers drop photobombers. Fashion lookbooks drop clamps and tape.

Browse industry pages: ecommerce, fashion, real estate, photography. How-tos: remove a photobomber, remove people, remove power lines, watermark vs object. Alternatives: Cleanup.pictures, Magic Eraser. Also best inpaint API and AI Image Editor API for instruction-based edits that change a scene rather than erase a region.

After cleanup, many pipelines call the Upscale API so the reconstructed pixels print cleanly, or the Background Removal API for a transparent PNG.

Frequently asked questions

How do I remove an object from an image via API?

POST the photo to https://api.pixelapi.dev/v1/image/remove-object with a Bearer API key. Describe what to erase in prompt, or upload a mask (white = area to remove). Poll GET /v1/image/{id} until status=completed and download output_url.

What does the Remove Object API cost?

$0.012 per image (12 credits). New accounts get 300 free credits on a 24-hour trial with no credit card. Live rates are always on /v1/pricing/live.

Should I use remove-object or remove-text?

Use Remove Object for people, logos, wires, dust, furniture, and other physical things. Use the Remove Text API when the overlay is a caption, date stamp, watermark, or printed lettering. Sending text-only jobs to remove-object is the wrong tool.

Do I have to draw a mask?

No. A short prompt such as 'remove the person on the left' is enough for most product and real-estate photos. A mask is optional when you need pixel-exact control on a busy background.

How long does a job take?

Typical object-removal jobs finish in a few seconds. Poll GET /v1/image/{id}; when status is completed, output_url is a cleaned JPEG or PNG with the background reconstructed.

What is the mask convention?

White pixels mark the region to erase. Black is preserved. If both prompt and mask are sent, the mask is the source of truth for the region and the prompt only describes intent.

Is there a Python or Node SDK?

Yes. pip install pixelapi and npm install pixelapi. cURL, PHP, Ruby, and Go samples are on this page. Auth is a Bearer token from the dashboard.

What about rate limits?

20 requests/minute on the free trial, 60 on Starter, 120 on Pro and 300 on Scale, plus 3/10/20/50 jobs in parallel (see /docs/parallel-processing.html). HTTP 429 includes Retry-After.