Getting Started
Public API Workflow
End-to-end /v1 workflow: create job, start processing, poll status, and download output.
Getting Started
End-to-end /v1 workflow: create job, start processing, poll status, and download output.
| Step | Endpoint | Purpose |
|---|---|---|
| 1 | POST /v1/jobs | Create a job and receive job_id |
| 2 | POST /v1/jobs/{job_id}/start | Start processing with model and composition config |
| 3 | GET /v1/jobs/{job_id} | Poll until completed or failed |
| 4 | Use output_url | Download or relay output to your users |
Create a draft job first when you need to configure model/composition separately at start time.
curl -X POST https://api.removebgvideo.com/v1/jobs \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://cdn.example.com/input.mp4",
"model": "original",
"output_format": "webm",
"background": { "type": "transparent" },
"auto_start": false
}'Use the returned job_id from step 1.
This is the most common place to pass model, text_prompt, background, and composition.
curl -X POST https://api.removebgvideo.com/v1/jobs/{JOB_ID}/start \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pro",
"text_prompt": "person, clothing accessories, glowing ring",
"background": { "type": "transparent" },
"composition": {
"canvas": { "width": 1920, "height": 1080 },
"foreground": {
"anchor": "center",
"scale": 1,
"offset": { "x": 0, "y": 0 }
}
}
}'Poll every 2-5 seconds. Add exponential backoff on 429 or transient 5xx errors.
curl -X GET https://api.removebgvideo.com/v1/jobs/{job_id} \
-H "X-Api-Key: YOUR_API_KEY"| State | Meaning | Next |
|---|---|---|
| created | Job exists but not started | processing / failed |
| processing | Worker is running segmentation/composition | completed / failed |
| completed | Output generated and ready | terminal |
| failed | Processing stopped due to error | terminal (retry by new start flow) |