Creates a new image processing API job from a remote file_url or a direct multipart upload and returns the first asynchronous tracking payload.
https://api.removit.eu/api/v1/uploadUse this endpoint to create a new asynchronous processing job.
POST/api/v1/uploadRequiredapplication/json or multipart/form-dataapplication/jsonThese fields define the upload input, the processing mode, and the delivery strategy for the result.
| Field | Type | Required | Default | Rules |
|---|---|---|---|---|
| file_url | string | Yes if file is absent | - | Must be a valid http or https URL. |
| file | binary | Yes if file_url is absent | - | Must be a supported image file. |
| mode | string | No | clipping | background, clipping, params |
| params | string | object | null | Yes if mode=params | - | A string parameter set is recommended. |
| delivery_mode | string | No | url | url or final_url |
| output_format | string | No | png | png, jpg, jpeg, psd, tiff, webp |
Most upload errors come from incompatible input shapes or missing parameters.
Direct uploads accept these MIME types in multipart/form-data requests.
This example creates a params job with final URL delivery and a webp output.
{
"file_url": "https://example.com/image.jpg",
"mode": "params",
"params": "Test-Api",
"delivery_mode": "url",
"output_format": "webp"
}A successful upload accepts the job and returns a tracking payload immediately.
{
"job_id": "019cdc54-2673-dc32-b9e5-6e1d36cc9e8a",
"status": "queued",
"mode": "params"
}These API image upload examples cover remote file_url requests, multipart uploads, and common backend integration patterns for a REST API image workflow.
curl -X POST "$BASE_URL/api/v1/upload" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{
"file_url": "https://example.com/image.jpg",
"mode": "params",
"params": "mon_set",
"delivery_mode": "url",
"output_format": "webp"
}'curl -X POST "$BASE_URL/api/v1/upload" \
-H "X-API-Key: $API_KEY" \
-F "file=@/path/to/image.jpg" \
-F "mode=params" \
-F "params=mon_set" \
-F "delivery_mode=final_url"const BASE_URL = "https://api.removit.eu";
const API_KEY = process.env.REMOVIT_API_KEY;
const response = await fetch(`${BASE_URL}/api/v1/upload`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": API_KEY
},
body: JSON.stringify({
file_url: "https://example.com/image.jpg",
mode: "params",
params: "mon_set",
delivery_mode: "url",
output_format: "webp"
})
});
const data = await response.json();$baseUrl = "https://api.removit.eu";
$apiKey = getenv("REMOVIT_API_KEY");
$payload = json_encode([
"file_url" => "https://example.com/image.jpg",
"mode" => "params",
"params" => "mon_set",
"delivery_mode" => "url",
"output_format" => "webp"
]);
$ch = curl_init("{$baseUrl}/api/v1/upload");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: {$apiKey}"
],
CURLOPT_POSTFIELDS => $payload
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);import os
import requests
base_url = "https://api.removit.eu"
api_key = os.environ["REMOVIT_API_KEY"]
response = requests.post(
f"{base_url}/api/v1/upload",
headers={
"Content-Type": "application/json",
"X-API-Key": api_key
},
json={
"file_url": "https://example.com/image.jpg",
"mode": "params",
"params": "mon_set",
"delivery_mode": "url",
"output_format": "webp"
},
)
data = response.json()These HTTP codes cover the most common upload outcomes.
The job was accepted and queued for asynchronous processing.
The request body is malformed, incomplete, or not parseable as expected.
The API key is missing or invalid.
The request cannot be processed because credits are insufficient.
The request shape is understood but fails business validation rules.
A temporary upstream or infrastructure issue prevents job creation.