API Reference

Public API v1 Jobs

Authenticated jobs API for external customers.

Endpoints

EndpointMethodDescription
/v1/jobsPOSTCreate job (supports auto_start)
/v1/jobs/{job_id}/startPOSTStart pending job
/v1/jobs/{job_id}GETGet job details
/v1/jobsGETList jobs (limit/offset/status)

Create Job

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",
    "bg_type": "green",
    "output_format": "webm",
    "auto_start": true
  }'

Get Job

curl -X GET https://api.removebgvideo.com/v1/jobs/{job_id} \
  -H "X-Api-Key: YOUR_API_KEY"

Job Response Fields

FieldDescription
idJob identifier
statuscreated | processing | completed | failed
output_urlOutput URL when completed
webhook_urlConfigured callback URL
webhook_eventsPer-event delivery state (sent/failed)

List Jobs

curl -X GET "https://api.removebgvideo.com/v1/jobs?limit=20&offset=0" \
  -H "X-Api-Key: YOUR_API_KEY"

Access Control

  • Each API key can only access jobs created by that same key.
  • Cross-key job access returns not_found behavior.

API Contract Notes

  • All clients should handle non-2xx responses as structured error payloads.
  • Use explicit JSON schema validation for request payloads on your side.
  • Treat output_url as an asynchronous artifact and not an immediate response contract.
  • Persist job lifecycle state transitions for auditing and support.

Integration Verification

CheckHow to Verify
AuthenticationCall endpoint with valid and invalid key, confirm 200 vs 401
Rate limitsBurst test and confirm 429 handling with backoff
IdempotencyRetry same request and verify no duplicate side effects
ObservabilityConfirm request_id/job_id appears in logs and dashboards

Jobs Contract Examples

OperationMinimal Required Fields
Createvideo_url + model/output defaults
Startjob_id + model/background/composition override
Get/ListX-Api-Key + job identifier/filter params