Help
Help and reference
Formats, limits, error codes, billing, privacy and fixes for common problems.
Formats and limits
- Reads
- JPEG
- PNG
- WebP
- AVIF
- GIF
- TIFF
- BMP
- SVG
- Writes
- JPEG
- PNG
- WebP
- AVIF
- GIF
- TIFF
Animated GIF and WebP keep their animation when they are only compressed or resized; anything else works on the first frame. HEIC photos from phones are not supported unless they are AVIF-coded. An image may have up to 50 megapixels, or 25 when it is cropped, edited or watermarked.
| Plan | Free | Pro |
|---|---|---|
| Images per batch | 20 | 500 |
| Largest file | 20 MB | 200 MB |
| API requests a month | 1,000 | 20,000 |
| AI requests a month (API) | 100 | 2,000 |
| Requests a minute | 120 | 600 |
| Largest image for upscaling | 1 MP | 2.25 MP |
| Pages per website scan | 5 | 50 |
Error codes
API errors are JSON with a code, a message and a request_id. In the editor the same errors appear as a message next to the image.
- 401unauthorized
- No key, a wrong key, or a revoked one. Check the Authorization header: Bearer followed by the whole key.
- 403forbidden
- The key works but was not given this permission. Create a key with the permission, or use another key.
- 403upgrade_required
- The option is part of Pro: a picture as the background, a logo watermark.
- 429rate_limited
- Too many requests in one minute. Wait for the number of seconds in Retry-After.
- 429quota_exceeded
- This month's API quota is used up. It resets on the 1st, and Pro has more.
- 413file_too_large
- The file is over your plan's size limit.
- 415unsupported_format
- The file is not an image we can read: an unsupported format, a damaged file, or not an image at all.
- 422too_many_pixels
- The image has more pixels than we process, or more than the upscaler takes on your plan. Resize it first.
- 422password_protected
- The file is a PDF that asks for a password before it can be opened. Remove the password in a PDF program and send the file again.
- 400invalid_request
- An option has a value that is not allowed. The message names the option.
- 422fetch_failed
- We could not download the address you gave, or upload to your storage. It must be public, answer within 15 seconds and be under the size limit.
- 503busy
- The server is at capacity, or the feature is switched off for maintenance. Retry after the seconds in Retry-After.
- 507storage_full
- Our result storage is full for the moment. Retry in a minute, or ask for the image itself instead of a link.
- 504timeout
- The image took too long. Very large images in AVIF or with many edits are the usual cause.
- 404not_found
- The file, job or preset does not exist, or has expired. Results and jobs are kept for one hour.
- 409conflict
- A limit on how many of something you can have was reached, such as saved pipelines.
- 500internal
- Our mistake. Retry, and if it happens again send us the request_id.
Billing and quotas
The website is free to use within the limits above, without an account. Pro raises the limits and adds a few options; it is sold as a monthly or a yearly subscription, and you manage or cancel it from your account page.
The API has a monthly quota of requests per account, shared by all its keys and by the MCP server. One request is one credit whatever options it uses; a job counts one per image, and a website scan one per image it converts. Using the website does not count against the API quota. Every API response tells you where you stand in the X-Quota-Used and X-Quota-Limit headers, and your account page shows the last 30 days by endpoint.
A cancelled subscription keeps Pro until the end of the period already paid for. Refunds are described on the refunds page.
Privacy and retention
Your image is uploaded over an encrypted connection and processed on our own servers. We do not keep the upload: it exists as a temporary file only while it is being processed.
A result is stored only when you ask for a link instead of the image itself, for at most one hour, under a random address that cannot be guessed. You can delete it sooner. With deliver_to, the result goes straight to your own storage and is not stored by us at all.
All models (background removal, upscaling, text recognition) run on our servers from files on our own disk. No image, and no text read from one, is sent to another company. Images are never used to train anything.
Camera details and the location are removed from results by default; you can choose to keep them. Our request log records the endpoint, the status and the time taken, never file names or addresses.
Troubleshooting
My file is not accepted.
Check the format list above. Photos from an iPhone are often HEIC: export them as JPEG, or set the camera to "Most compatible".
The result is larger than the original.
This happens when converting an efficient format to a less efficient one (AVIF to PNG), or with lossless mode. Try a lower quality, another format, or smart mode.
The target size was not reached.
We lower the quality and then the dimensions, but stop before the image becomes unusable. The message shows the smallest size we could make. Allow a larger target, or resize the image first.
The colours changed slightly.
Photos in a wide colour space rely on their colour profile. Set Metadata to "Colour profile only" or "Keep all" in the Advanced tab.
The cut-out has rough edges.
Keep "Refine edges" on and raise the edge feather. Low contrast between the subject and the background is the hardest case for the model.
The text recognition is wrong.
Select only the languages that are in the image, and use a sharp, straight, well-lit picture with dark text on a light background. Handwriting is not supported.
A request failed and I want to report it.
Use the contact form and include the request_id from the error, or the X-Request-Id header. It lets us find the exact request.
Still stuck?
Write to us through the contact form. If a request failed, include its request_id.