API Reference

Create remove-object video task inputs

Create inputs for standard video object removal using either mode:

1. Reuse tracking results (recommended): provide both input_video_id and mask_video_id from a completed Video Object Tracking task. The service reuses the stored videos and returns video_path and mask_path; no uploads are needed.
2. Upload your own videos: omit both IDs to receive video_upload_signed_url and mask_upload_signed_url. Upload each video to its corresponding URL using HTTP PUT with Content-Type: application/octet-stream.

Reuse-mode response example:

{
  "task_id": "removal-task-id",
  "status": "CREATED",
  "progress": 0,
  "video_path": "provider__input-bucket__object-key",
  "mask_path": "provider__result-bucket__object-key"
}

Provide both IDs or neither; providing only one returns an error. Source and mask videos must have the same resolution, spatial alignment, and timeline. Signed upload URLs are temporary.

After preparing inputs, submit Create remove-object video task.

post/v1/videos/remove-object/upload

Authorization — This endpoint requires an API key. Pass it in the api-key header on every request. Learn more

Input requirements

Videos

Formats
MP4, MOV
Maximum longest edge
1280 px
Maximum duration
300 seconds (5 minutes)

Source and mask videos must have the same resolution, spatial alignment, and timeline.

View all input requirements

Parameters

NameTypeStatusDescription
input_video_id
stringOptionalSource-video storage ID from object tracking. Supply together with mask_video_id, or omit both to upload videos. Default: null (omitted).
mask_video_id
stringOptionalAligned mask-video storage ID from object tracking. Supply together with input_video_id, or omit both to upload videos. Default: null (omitted).

Responses

Removal inputs created; storage paths in reuse mode, or signed URLs in upload modeRemoveObjectVideoUploadResponse

FieldTypeDescription
task_idstringUnique task identifier.
statusstringUpload task status.
progressintegerTask progress from 0 to 100, when available.
video_pathstringSource-video storage path returned when both tracking IDs are supplied.
mask_pathstringMask-video storage path returned when both tracking IDs are supplied.
video_upload_signed_urlstringTemporary signed upload URL for the source video, returned when both tracking IDs are omitted. Use HTTP PUT.
mask_upload_signed_urlstringTemporary signed upload URL for the aligned mask video, returned when both tracking IDs are omitted. Use HTTP PUT.
curl -X POST "https://api.snapedit.app/v1/videos/remove-object/upload" \
  -H "api-key: YOUR_API_KEY"
Response
{
  "task_id": "removal-task-id",
  "status": "CREATED",
  "video_upload_signed_url": "https://storage-provider.example/video-signed-upload-url",
  "mask_upload_signed_url": "https://storage-provider.example/mask-signed-upload-url"
}