Bulk Background Remover API
Integrate AI background removal directly into your product, pipeline, or platform. Submit images programmatically, receive transparent PNG outputs, scale to thousands of images per day. Compatible with any stack. No manual steps. Same AI accuracy as the web platform — available via REST API.
How the Bulk Background Remover API Works
The Cutout.Pro background removal API is a REST API. Submit an image file or URL in a POST request, receive a transparent PNG in the response. Every step from authentication to output is handled programmatically — no browser, no manual upload, no human in the loop.
Authentication
API requests are authenticated with an API key tied to your Cutout.Pro account. Include the key in the request header. Generate and manage your API key from the Cutout.Pro developer dashboard after account creation.
Request: submit an image
The API accepts image files as base64-encoded data or as a publicly accessible URL. Supported input formats: JPG, PNG, WEBP, BMP. Maximum resolution: 4096 × 4096 px per image.
Example request — URL input (Python):
import requests
API_KEY = "your_api_key_here"
IMAGE_URL = "https://example.com/your-image.jpg"
response = requests.post(
"https://www.cutout.pro/api/v1/matting", # verify exact endpoint in API docs
headers={
"APIKEY": API_KEY
},
data={
"url": IMAGE_URL
}
)
# Save transparent PNG output
with open("output.png", "wb") as f:
f.write(response.content)Example request — file upload (Python):
import requests
API_KEY = "your_api_key_here"
with open("your-image.jpg", "rb") as image_file:
response = requests.post(
"https://www.cutout.pro/api/v1/matting", # verify exact endpoint in API docs
headers={
"APIKEY": API_KEY
},
files={
"file": image_file
}
)
with open("output.png", "wb") as f:
f.write(response.content)Example request — cURL:
curl -X POST "https://www.cutout.pro/api/v1/matting" \
-H "APIKEY: your_api_key_here" \
-F "url=https://example.com/your-image.jpg" \
--output output.png> ⚠️ Verify endpoints and parameters in the official Cutout.Pro API documentation before implementing. Endpoint paths, parameter names, and header conventions are subject to change. The examples above follow the general API pattern — use the official reference for production implementation.
Response: transparent PNG output
A successful response returns the processed image as a transparent PNG binary. Write the response content directly to a file. No additional decoding step required for standard responses.
Response handling (Python):
if response.status_code == 200:
with open("output_transparent.png", "wb") as f:
f.write(response.content)
print("Background removed successfully")
else:
print(f"Error: {response.status_code}")
print(response.text) # Check error message from APIBatch implementation pattern
The API processes one image per request. For bulk processing — thousands of images per day — implement concurrent requests using a thread pool or async framework. Each request is independent; batches are handled by running multiple requests in parallel.
Concurrent batch example (Python):
import requests
import concurrent.futures
import os
API_KEY = "your_api_key_here"
INPUT_FOLDER = "./input_images"
OUTPUT_FOLDER = "./output_images"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
def remove_background(filename):
filepath = os.path.join(INPUT_FOLDER, filename)
with open(filepath, "rb") as f:
response = requests.post(
"https://www.cutout.pro/api/v1/matting", # verify in API docs
headers={"APIKEY": API_KEY},
files={"file": f}
)
if response.status_code == 200:
output_path = os.path.join(OUTPUT_FOLDER, f"{os.path.splitext(filename)[0]}.png")
with open(output_path, "wb") as out:
out.write(response.content)
return filename, "success"
else:
return filename, f"error {response.status_code}"
image_files = [f for f in os.listdir(INPUT_FOLDER)
if f.lower().endswith(('.jpg', '.jpeg', '.png', '.webp', '.bmp'))]
# Adjust max_workers based on your rate limit and account tier
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
results = list(executor.map(remove_background, image_files))
for filename, status in results:
print(f"{filename}: {status}")> ⚠️ Set max_workers in line with your account's rate limit. See the Rate Limits section below and verify current limits in the official API documentation.
API compatibility
| Platform | Supported |
|---|---|
| iOS | ✅ |
| Android | ✅ |
| Mac | ✅ |
| Windows | ✅ |
| Linux | ✅ |
| Web / server-side | ✅ |
Any environment that can make an HTTPS POST request and handle a binary response can integrate the API.
Bulk Background Remover API: Response Time & Accuracy
Response time
API response time per image depends on:
Image resolution
higher resolution images require more processing time. Images significantly below the 4096 × 4096 px maximum process faster than maximum-resolution inputs
Subject complexity
simple geometric subjects (products on plain backgrounds, logos) process faster than complex subjects with fine hair, fur, or semi-transparent edges
Server load
response time may vary with concurrent request volume
For current published response time benchmarks and SLA information, refer to the official Cutout.Pro API documentation.
Accuracy
The API uses the same AI model as the Cutout.Pro web platform. There is no accuracy degradation from using the API versus the web interface — the model, the segmentation logic, and the output quality are identical.
Accuracy by subject type:
| Subject Type | Typical Accuracy | Notes |
|---|---|---|
| Products on plain backgrounds | Very high | High contrast, defined edges — ideal API input |
| People — full body | High | Strong subject detection on standard portrait/full-body shots |
| People — hair detail | High | Strand-level segmentation; best results from high-resolution source |
| Animals / pets | High | Strong on most subject types |
| Logos and icons | Very high | Hard geometric edges segment cleanly |
| Products — reflective surfaces | Moderate–high | Specular highlights near background create ambiguous edges |
| Low-contrast subject/background | Moderate | Similar tones reduce boundary signal; manual review may help |
| Complex or busy backgrounds | Moderate–high | AI handles varied backgrounds; fine-edge accuracy depends on contrast |
Quality control in bulk pipelines
For high-volume automated pipelines, implement a quality review layer for edge cases:
- Flag API responses where output file size is unusually small (may indicate incorrect segmentation)
- Set a sample review rate — randomly review N% of processed images per batch to catch systematic accuracy issues on a specific image type
- Implement a re-queue mechanism for images that fail or return error codes
Human review of every image in a bulk pipeline is not practical at scale — statistical sampling and automated flag logic are standard production approaches.
Bulk Background Remover API: Rate Limits & Pricing
Rate limits
Rate limits control the maximum number of API requests allowed within a given time window. Operating within your rate limit ensures consistent processing throughput without rejected requests.
For current rate limit tiers, request per minute/hour/day maximums, and enterprise limit options, refer to the official Cutout.Pro API documentation and pricing page. Rate limits vary by account tier and are subject to change.
General implementation guidance:
- Implement exponential backoff and retry logic for rate-limit responses (HTTP 429). Do not immediately re-queue at full concurrency — back off, wait, then retry
- Control
max_workersin concurrent implementations to stay within your account's request-per-minute limit - For very high volume requirements (tens of thousands of images per day), contact the Cutout.Pro team to discuss enterprise access and higher rate limit tiers
Retry pattern (Python):
import time
import requests
def remove_background_with_retry(filepath, api_key, max_retries=3):
for attempt in range(max_retries):
with open(filepath, "rb") as f:
response = requests.post(
"https://www.cutout.pro/api/v1/matting", # verify in API docs
headers={"APIKEY": api_key},
files={"file": f}
)
if response.status_code == 200:
return response.content
elif response.status_code == 429:
wait_time = 2 ** attempt # exponential backoff: 1s, 2s, 4s
print(f"Rate limited. Waiting {wait_time}s before retry {attempt + 1}")
time.sleep(wait_time)
else:
print(f"Error {response.status_code}: {response.text}")
break
return NonePricing
The API uses the same credit model as the web platform.
| Unit | Credit cost |
|---|---|
| 1 image processed via API | 1 credit |
| Minimum credits | Free — 5 credits on account sign-up |
Credits are available in packs. Larger packs deliver a lower per-image cost. For current pack sizes and per-credit pricing, visit the Cutout.Pro pricing page — pricing is subject to change, verify current rates on the official site.
Estimated credit requirements by use case
| Use case | Estimated volume | Credits needed |
|---|---|---|
| Small product catalog | 100–500 images | 100–500 credits |
| Mid-size e-commerce catalog | 1,000–5,000 images | 1,000–5,000 credits |
| Large catalog / marketplace | 10,000+ images | 10,000+ credits |
| Daily production pipeline | Varies by daily image count | 1 credit per image per day |
| One-time library migration | Depends on library size | 1 credit per image |
> Credit estimates assume 1 credit per image. Verify current pricing before planning budget. Volume pack pricing reduces per-image cost at scale.
API key sign-up
Step 1 — Create a free Cutout.Pro account at cutout.pro — email and password only, no credit card
Step 2 — 5 free HD credits are added to your account on sign-up — test the API on real images at no cost
Step 3 — Navigate to the developer dashboard to generate your API key
Step 4 — Add the API key to your request headers and submit your first request
Step 5 — Purchase a credit pack when your free credits are used and you are ready to scale
No approval process. No integration review. No onboarding call required. API access is available immediately after account creation.
For production pipeline planning: test response time on a representative sample of your actual image library before estimating throughput. Do not plan production SLAs based on benchmarks from different image types than your actual inputs.
Common Integration Scenarios
| Platform / Use Case | How the API integrates |
|---|---|
| E-commerce product catalog | Trigger background removal on product image upload; store transparent PNG in CDN |
| Marketplace seller onboarding | Auto-process seller-uploaded product photos at listing creation |
| Print-on-demand platform | Remove background from customer artwork uploads at order time |
| DAM / asset management | Process images on ingest; store transparent version alongside original |
| Design tool | Add one-click background removal as a feature inside a proprietary design app |
| Mobile app | Call API from iOS or Android app; display result in-app without web redirect |
| Headshot / portrait service | Auto-process submitted portraits; return transparent PNG to customer |
| Brand portal | Remove backgrounds from partner logo submissions on upload |
| Marketing automation | Generate transparent product/logo assets as part of co-branded creative pipeline |