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.

Get Free API Credits

5 free credits on sign-up, no card required

Bulk Background Remover API

How the Bulk Background Remover API Works

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 API

Batch 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

PlatformSupported
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

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 TypeTypical AccuracyNotes
Products on plain backgroundsVery highHigh contrast, defined edges — ideal API input
People — full bodyHighStrong subject detection on standard portrait/full-body shots
People — hair detailHighStrand-level segmentation; best results from high-resolution source
Animals / petsHighStrong on most subject types
Logos and iconsVery highHard geometric edges segment cleanly
Products — reflective surfacesModerate–highSpecular highlights near background create ambiguous edges
Low-contrast subject/backgroundModerateSimilar tones reduce boundary signal; manual review may help
Complex or busy backgroundsModerate–highAI 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:

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_workers in 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 None

Pricing

The API uses the same credit model as the web platform.

UnitCredit cost
1 image processed via API1 credit
Minimum creditsFree — 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 caseEstimated volumeCredits needed
Small product catalog100–500 images100–500 credits
Mid-size e-commerce catalog1,000–5,000 images1,000–5,000 credits
Large catalog / marketplace10,000+ images10,000+ credits
Daily production pipelineVaries by daily image count1 credit per image per day
One-time library migrationDepends on library size1 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

Common Integration Scenarios
Platform / Use CaseHow the API integrates
E-commerce product catalogTrigger background removal on product image upload; store transparent PNG in CDN
Marketplace seller onboardingAuto-process seller-uploaded product photos at listing creation
Print-on-demand platformRemove background from customer artwork uploads at order time
DAM / asset managementProcess images on ingest; store transparent version alongside original
Design toolAdd one-click background removal as a feature inside a proprietary design app
Mobile appCall API from iOS or Android app; display result in-app without web redirect
Headshot / portrait serviceAuto-process submitted portraits; return transparent PNG to customer
Brand portalRemove backgrounds from partner logo submissions on upload
Marketing automationGenerate transparent product/logo assets as part of co-branded creative pipeline

Frequently Asked Questions

Is there a free tier for the API?
Yes. Create a free account — no credit card required — and receive 5 HD credits. Each credit processes one image via API. Test the integration and evaluate output quality at no cost before purchasing a credit pack.
How many images can I process per day?
Throughput depends on your account's rate limit tier and the number of concurrent requests you run. For current rate limit maximums and enterprise options, refer to the official Cutout.Pro API documentation.
What is the cost per image via API?
1 credit per image — the same rate as manual web processing. For current credit pack pricing, visit the Cutout.Pro pricing page.
What input formats does the API accept?
JPG, PNG, WEBP, and BMP. Maximum resolution 4096 × 4096 px per image.
What does the API return?
A transparent PNG binary in the response body. Write the response content directly to a file. No additional decoding step required for standard responses.
Can I submit image URLs instead of uploading files?
Yes. The API accepts publicly accessible image URLs as an alternative to file upload. The image must be accessible without authentication.
What happens if I exceed my rate limit?
The API returns an HTTP 429 response. Implement exponential backoff and retry logic in your client code — do not immediately retry at full concurrency. See the retry pattern example in the Rate Limits section above.
Does using the API produce different quality results than the web platform?
No. The API and web platform use the same AI model. There is no accuracy difference between API and manual processing.
What programming languages can I use?
Any language that can make HTTPS POST requests — Python, Node.js, PHP, Ruby, Java, Go, C#, and others. The code examples on this page use Python; the same HTTP request pattern applies in any language.
Is there a sandbox or test environment?
For current sandbox availability, refer to the official API documentation. Your 5 free sign-up credits can be used to test the production API without cost.
What is the refund policy for credits purchased for API use?
A 14-day refund guarantee applies to main platform credit purchases. Purchases made through the Shopify App are non-refundable.