Getting Started With These 3 Easy Steps
Step 1
Get your API key
You have 10 free preview credits per month by default. Check our pricing to get more.
Step 2
Copy the sample codes
Refer and use the following code samples for your programming language to get started.
Step 3
Review our documentation
Check and review our parameters reference to adjust the request.
Integrate and Customize Easily
Source images
Direct uploads or URL reference
Result images
Reference URL of the image file or Base64 encoded data output
Resolution
up to 25 megapixels

import requests | |
url = "https://api.removal.ai/3.0/remove" | |
payload={'image_url': 'url_to_image'} | |
files=[ | |
('image_file',('(JPEG Image, 1000 × 666 pixels).jpg',open('@path/to/image','rb'),'image/jpeg')) | |
] | |
headers = { | |
'Rm-Token': 'Your-Token' | |
} | |
response = requests.request("POST", url, headers=headers, data=payload, files=files) | |
print(response.text) |
var client = new RestClient("https://api.removal.ai/3.0/remove"); | |
client.Timeout = -1; | |
var request = new RestRequest(Method.POST); | |
request.AddHeader("Rm-Token", "Your-Token"); | |
request.AddFile("image_file", "@path/to/image"); | |
request.AddParameter("image_url", "url_to_image"); | |
IRestResponse response = client.Execute(request); | |
Console.WriteLine(response.Content); |
var axios = require('axios'); | |
var FormData = require('form-data'); | |
var fs = require('fs'); | |
var data = new FormData(); | |
data.append('image_file', fs.createReadStream('Your_Image_Path')); | |
var config = { | |
method: 'post', | |
url: 'https://api.removal.ai/3.0/remove', | |
headers: { | |
'Rm-Token': 'Your-Token', | |
...data.getHeaders() | |
}, | |
data : data | |
}; | |
axios(config) | |
.then(function (response) { | |
console.log(JSON.stringify(response.data)); | |
}) | |
.catch(function (error) { | |
console.log(error); | |
}); |
<?php | |
require_once 'HTTP/Request2.php'; | |
$request = new HTTP_Request2(); | |
$request->setUrl('https://api.removal.ai/3.0/remove'); | |
$request->setMethod(HTTP_Request2::METHOD_POST); | |
$request->setConfig(array( | |
'follow_redirects' => TRUE | |
)); | |
$request->setHeader(array( | |
'Rm-Token' => 'Your-Token' | |
)); | |
$request->addPostParameter(array( | |
'image_url' => 'url_to_image' | |
)); | |
$request->addUpload('image_file', '@path/to/image', '@path/to/image', '<Content-Type Header>'); | |
try { | |
$response = $request->send(); | |
if ($response->getStatus() == 200) { | |
echo $response->getBody(); | |
} | |
else { | |
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' . | |
$response->getReasonPhrase(); | |
} | |
} | |
catch(HTTP_Request2_Exception $e) { | |
echo 'Error: ' . $e->getMessage(); | |
} |
var data = new FormData(); | |
data.append("image_file", fileInput.files[0], "@path/to/image"); | |
data.append("image_url", "url_to_image"); | |
var xhr = new XMLHttpRequest(); | |
xhr.withCredentials = true; | |
xhr.addEventListener("readystatechange", function() { | |
if(this.readyState === 4) { | |
console.log(this.responseText); | |
} | |
}); | |
xhr.open("POST", "https://api.removal.ai/3.0/remove"); | |
xhr.setRequestHeader("Rm-Token", "Your Token"); | |
xhr.send(data); |
High Suitability
Our API is built for flexibility and ease of use. We support a wide range of programming languages to make the integration easy and hassle-free.
Rare Cases
We actively keep an eye on different rare error cases reported by our great community. We will keep updating rare cases error here and possible fixes.