Introduction
The Pix Experts API exposes a single endpoint that removes the background from any image you upload. Source images can be sent as a binary file or as a public URL; the result can be returned as raw PNG bytes, a temporary CDN URL, or a base64-encoded string. Images up to 25 megapixels are supported.
Quickstart
Three steps and you're shipping cutouts.
Get your API key
Sign up for a Pix Experts account and grab your API key from the dashboard. New accounts get 10 free preview credits each month.
Copy a sample request
Pick the language of your choice from the snippets below and drop your API key in. One call, one image, one second.
Read the reference
Tune the request: output format, image source, resolution, and base64 vs. URL response — all covered in the parameter list.
Authentication
Every request must include your API key in the Rm-Token header. Treat the key like a password — never expose it in client-side code.
Rm-Token: YOUR_API_KEY
Remove the background of any image with one API call.
curl -X POST "https://api.pixexperts.com/3.0/remove" \ -H "Rm-Token: YOUR_API_KEY" \ -F "image_file=@/path/to/your/image.jpg" \ -F "get_file=true" \ --output result.png
Request parameters
Send as multipart/form-data. Either image_file or image_url is required.
| Name | Type | Required | Description |
|---|---|---|---|
| image_file | file | required* | Binary file upload. Use multipart/form-data. |
| image_url | string | required* | Publicly accessible URL of the source image. Provide this OR image_file. |
| get_file | boolean | optional | When true, returns the raw PNG bytes. When false (default), returns JSON with a result_url. |
| output_format | string | optional | png (default) or jpg. JPG output gets a white background. |
| crop | boolean | optional | Tight-crop to the detected subject before returning. |
* Provide either image_file OR image_url, never both.
Response
When get_file=true the body is the raw PNG. Otherwise you get JSON:
{
"result_url": "https://cdn.pixexperts.com/r/9f3...png",
"credits_charged": 1,
"credits_remaining": 248
}| Field | Type | Description |
|---|---|---|
| result_url | string | CDN URL to the processed image. Expires after 1 hour. |
| result_b64 | string | Base64-encoded PNG (only when get_file=false and the b64 flag is set). |
| credits_charged | number | Number of credits this request consumed. |
| credits_remaining | number | Credits remaining on the account after the call. |
Rate limits
- Up to 500 images / minute on the standard plan.
- Limits scale down with image size — the 25 MP ceiling caps out around 20 images / minute.
- Hit the limit and you'll get a
429response with aRetry-Afterheader.
Errors
Standard HTTP status codes. Every error response includes a JSON body with error and message.
- 400
Bad request
Missing image_file / image_url, or both provided at once.
- 401
Unauthorized
Missing or invalid Rm-Token header.
- 402
Payment required
Account is out of credits. Top up to continue.
- 413
Payload too large
Image exceeds 25 megapixels. Resize before uploading.
- 429
Rate limited
Per-minute or per-second limit exceeded. Retry after the Retry-After header.
- 500
Server error
Unexpected error on our side. Retry with backoff or contact support.
Ready to ship?
Grab your API key and start cutting backgrounds.