GET /api/v1/status

Retrieve File Status

Returns the current job status, the simplified client state, and the final result URLs when the asynchronous API job is complete.

https://api.removit.eu/api/v1/status

Status contract

Call this endpoint with the job_id returned by /upload.

MethodGET
Path/api/v1/status
AuthRequired
Query parameterjob_id
Required fieldjob_id from the upload response
Pending job

Response while processing is still running

Pending responses expose both a detailed workflow step and a simplified client-facing state.

{
  "job_id": "019cdc54-2673-dc32-b9e5-6e1d36cc9e8a",
  "status": "pending_compose",
  "state": "pending",
  "mode": "params",
  "progress": 33,
  "final_url": null
}
Completed job

Response when a single final asset is ready

If delivery_mode=final_url, the API returns a single resolved final_url when the state is done.

{
  "job_id": "019cdc54-2673-dc32-b9e5-6e1d36cc9e8a",
  "status": "done",
  "state": "done",
  "mode": "params",
  "progress": 100,
  "final_url": "https://cdn.example.com/.../clipping.webp"
}
Multiple variations

Response when multiple URLs are returned

If delivery_mode=url, the API may return final_urls with multiple named outputs.

{
  "job_id": "019cdc54-2673-dc32-b9e5-6e1d36cc9e8a",
  "status": "done",
  "state": "done",
  "mode": "params",
  "progress": 100,
  "final_urls": {
    "background": "https://cdn.example.com/.../background.webp",
    "compose": "https://cdn.example.com/.../compose.webp",
    "shadowTop": "https://cdn.example.com/.../shadowTop.webp",
    "clipping": "https://cdn.example.com/.../clipping.webp"
  },
  "warnings": {
    "shadow_wall": ["params not provided"]
  },
  "ignored_variations": ["shadow_wall"]
}

Multi-language status examples

These job status API examples show how to call GET /api/v1/status with authentication and a required job_id from backend code or command-line tools.

cURLJavaScriptPHPPython
curl -X GET "$BASE_URL/api/v1/status?job_id=$JOB_ID" \
  -H "X-API-Key: $API_KEY"
const BASE_URL = "https://api.removit.eu";
const API_KEY = process.env.REMOVIT_API_KEY;
const jobId = "019cdc54-2673-dc32-b9e5-6e1d36cc9e8a";

const response = await fetch(
  `${BASE_URL}/api/v1/status?job_id=${encodeURIComponent(jobId)}`,
  {
    headers: {
      "X-API-Key": API_KEY,
    },
  },
);

const data = await response.json();
$baseUrl = "https://api.removit.eu";
$apiKey = getenv("REMOVIT_API_KEY");
$jobId = "019cdc54-2673-dc32-b9e5-6e1d36cc9e8a";

$ch = curl_init("{$baseUrl}/api/v1/status?job_id=" . rawurlencode($jobId));
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "X-API-Key: {$apiKey}",
    ],
]);

$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"]
job_id = "019cdc54-2673-dc32-b9e5-6e1d36cc9e8a"

response = requests.get(
    f"{base_url}/api/v1/status",
    headers={"X-API-Key": api_key},
    params={"job_id": job_id},
)

data = response.json()

Important status fields

These fields are the ones most clients map into internal orchestration or UI logic.

Detailed workflow stepstatus

Represents the current internal stage of the job.

Client summary statestate

A simplified pending or done state for polling logic.

Progressprogress

An approximate numeric progress indicator.

Single asset outputfinal_url

The resolved output when a single final asset is requested.

Multiple asset outputsfinal_urls

A map of generated variations returned for more advanced workflows.

Warningswarnings

Optional non-blocking information that should still be logged or reviewed.

Ignored variationsignored_variations

Variations intentionally skipped during processing.

Main error and status outcomes

These are the high-level status endpoint situations to handle in client code.

401 Unauthorized

Returned when the API key is missing or invalid on a status request.

404 Not Found

Returned when the requested job_id cannot be found.

422 Unprocessable Entity

Returned when job_id is missing or malformed.

5xx Errors

Returned when the job fails terminally or the service is unavailable.