Background Removal API
Remove image backgrounds programmatically with a single HTTP request. Get a clean, transparent PNG back instantly — up to 100 images per hour, completely free.
Endpoint
https://clearbackdrop.com/api/v1/remove-background
Send one image as multipart/form-data
under the field name image.
By default the API streams the transparent PNG straight back in the response body.
Quick start
cURL — save the result as a PNG
# Returns the transparent PNG directly curl -X POST https://clearbackdrop.com/api/v1/remove-background \ -F "image=@photo.jpg" \ -o result.png
Prefer a JSON response with a hosted URL?
curl -X POST \ "https://clearbackdrop.com/api/v1/remove-background?response=json" \ -F "image=@photo.jpg"
Python
import requests url = "https://clearbackdrop.com/api/v1/remove-background" with open("photo.jpg", "rb") as f: r = requests.post(url, files={"image": f}) with open("result.png", "wb") as out: out.write(r.content)
JSON response
When you pass ?response=json:
{
"success": true,
"result_url": "https://www.clearbackdrop.com/static/images/processed/…png",
"image_size": "1024x768",
"processing_time": 2.41,
"quota": { "limit_per_hour": 100, "remaining": 99 }
}
Rate limits
The free tier allows 100 images per hour per IP address. Every response includes your current usage in these headers:
| X-RateLimit-Limit | Max images per hour |
| X-RateLimit-Remaining | Images left this hour |
| X-RateLimit-Reset | Seconds until the window resets |
Exceeding the limit returns 429 Too Many Requests.
Check your remaining quota any time:
GET https://clearbackdrop.com/api/v1/quota
Errors
| Status | Meaning |
|---|---|
| 400 | No image attached |
| 413 | File exceeds 15MB |
| 415 | Unsupported file type |
| 429 | Hourly rate limit reached |
| 500 | Processing failed |
Just need to remove a few backgrounds?
Skip the code — use the web app. Same engine, drag & drop, batch upload.
Open the app