API v2 · Video
Video Blur Anything
Blur objects matching a text prompt across a video. Returns an async job ID.
POST
/api/v2/videos/blur-anythingAuthentication
Send your API key as a bearer token on every request.
Header
Authorization: Bearer vba_your_api_keyRequest Body
Send JSON with these fields. Required fields must be present unless marked optional.
| Field | Type | Required | Description |
|---|---|---|---|
| video_url | string URL | Yes | Public or BGBlur-uploaded video URL to process. |
| duration_seconds | number | No | Duration used for credit estimation and processing bounds. Send this when known. |
| blur_strength | number | No | Blur amount from 0 to 1. Default is 0.7. |
| prompt | string | Yes | Text target to blur across frames, for example person, logo, phone, or plate. |
| pixelated | boolean | No | Use pixelation instead of gaussian blur. Default false. |
| pixelation_strength | number | No | Pixelation strength when pixelated is true. Default 180. |
| sam3_batch_size | number | No | Advanced batching control. Default 8. |
| sam3_chunk_size | number | No | Advanced chunking control. Default 128. |
| blur_anything_blur_mode | string | No | gaussian or pixelated. Defaults from pixelated flag. |
⚠
Media must be publicly accessible. Pass a direct URL from a public storage bucket — e.g. AWS S3, Google Cloud Storage, Cloudinary, Cloudflare R2, Backblaze B2, Uploadcare, or any CDN URL. Private, signed, or localhost URLs will fail. Supported formats: MP4, MOV.
JSON
{
"video_url": "https://example.com/street.mp4",
"duration_seconds": 30,
"prompt": "person",
"blur_strength": 0.7,
"pixelated": false,
"sam3_batch_size": 8,
"sam3_chunk_size": 128
}Response
Successful responses use JSON. Video feature endpoints return an async job_id rather than the final processed video immediately.
| Field | Type | Required | Description |
|---|---|---|---|
| success | boolean | Yes | True when the job was accepted. |
| job_id | string | Yes | Use this with GET /api/v2/jobs/{job_id}. |
| status | string | Yes | Initial job status, usually queued. |
| feature | string | No | Feature name submitted for processing. |
| credits_used | number | Yes | Credits reserved or charged for the job. |
| remaining_credits | number | Yes | Credit balance after job creation. |
JSON
{
"success": true,
"job_id": "job_abc123",
"status": "queued",
"feature": "blur-anything",
"credits_used": 12,
"remaining_credits": 488
}Example
curl
curl -X POST https://www.bgblur.com/api/v2/videos/blur-anything \
-H "Authorization: Bearer vba_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://example.com/street.mp4",
"duration_seconds": 30,
"prompt": "person",
"blur_strength": 0.7,
"pixelated": false,
"sam3_batch_size": 8,
"sam3_chunk_size": 128
}'Tips
- Video endpoints are async. Store job_id and poll GET /api/v2/jobs/{job_id}.
- Send duration_seconds when you know it so credit estimation is accurate.
- Use the upload video endpoint for local files before calling a video feature endpoint.
- Use short, concrete prompts like person, logo, license plate, phone screen, address, or document.