For Developers

Video Background Remover API

Powerful REST API for programmatic video background removal. The best Unscreen API alternative with simple integration.

Why Developers Choose Our API

Everything you need for professional video processing

Simple REST API

Easy-to-use REST endpoints with clear documentation. Get started in minutes.

Fast Processing

Optimized infrastructure for quick video processing. Priority queue for API users.

Secure & Reliable

HTTPS encryption, secure file handling, and 99.9% uptime SLA.

Global CDN

Fast file uploads and downloads from anywhere in the world.

Scalable

From 100 to 100,000 videos per month. Our infrastructure scales with you.

Webhook Support

Get notified when processing completes. No need to poll for status.

Quick Start

Get started with the API in minutes

TypeScript / JavaScript

Node.js
removeBackground.ts
import axios from 'axios';

// Initialize with your API key
const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://api.unscreen.io/v1';

// Upload and process video
async function removeVideoBackground(videoFile: File) {
  const formData = new FormData();
  formData.append('file', videoFile);
  
  const response = await axios.post(
    `${BASE_URL}/remove-background`,
    formData,
    {
      headers: {
        'Authorization': `Bearer ${API_KEY}`,
        'Content-Type': 'multipart/form-data',
      },
    }
  );
  
  return response.data;
}

// Check processing status
async function checkStatus(videoId: string) {
  const response = await axios.get(
    `${BASE_URL}/status/${videoId}`,
    {
      headers: {
        'Authorization': `Bearer ${API_KEY}`,
      },
    }
  );
  
  return response.data;
}

// Example usage
const video = document.querySelector('input[type="file"]').files[0];
const result = await removeVideoBackground(video);
console.log('Video ID:', result.id);

// Poll for completion
const checkProgress = setInterval(async () => {
  const status = await checkStatus(result.id);
  console.log('Progress:', status.progress + '%');
  
  if (status.status === 'completed') {
    console.log('Download URL:', status.downloadUrl);
    clearInterval(checkProgress);
  }
}, 2000);

Python

Python 3.x
remove_background.py
import requests
import time

API_KEY = 'your_api_key_here'
BASE_URL = 'https://api.unscreen.io/v1'

def remove_video_background(video_path):
    """Upload and process video"""
    headers = {
        'Authorization': f'Bearer {API_KEY}'
    }
    
    with open(video_path, 'rb') as video_file:
        files = {'file': video_file}
        response = requests.post(
            f'{BASE_URL}/remove-background',
            headers=headers,
            files=files
        )
    
    return response.json()

def check_status(video_id):
    """Check processing status"""
    headers = {
        'Authorization': f'Bearer {API_KEY}'
    }
    
    response = requests.get(
        f'{BASE_URL}/status/{video_id}',
        headers=headers
    )
    
    return response.json()

# Example usage
result = remove_video_background('video.mp4')
video_id = result['id']

# Poll for completion
while True:
    status = check_status(video_id)
    print(f"Progress: {status['progress']}%")
    
    if status['status'] == 'completed':
        print(f"Download URL: {status['downloadUrl']}")
        break
    
    time.sleep(2)

cURL

Command Line
api_example.sh
# Upload video for processing
curl -X POST https://api.unscreen.io/v1/remove-background \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@video.mp4"

# Response
{
  "id": "video_abc123",
  "status": "processing",
  "progress": 0
}

# Check status
curl -X GET https://api.unscreen.io/v1/status/video_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

# Response (completed)
{
  "id": "video_abc123",
  "status": "completed",
  "progress": 100,
  "processedUrl": "https://cdn.unscreen.io/processed/video_abc123.mp4",
  "downloadUrl": "https://api.unscreen.io/v1/download/video_abc123"
}

API Endpoints

Complete list of available endpoints

MethodEndpointDescriptionAuth
POST/v1/remove-backgroundUpload and process a videoRequired
GET/v1/status/:idCheck processing statusRequired
GET/v1/download/:idDownload processed videoRequired
POST/v1/webhookRegister webhook URLRequired

API Use Cases

Common scenarios for the video background remover API

SaaS Integration

Add video background removal to your SaaS product. Offer it as a feature to your users.

Example:

Video editing platforms, content creation tools

Automation

Automate video processing workflows. Process videos automatically when uploaded.

Example:

CI/CD pipelines, media management systems

Batch Processing

Process hundreds or thousands of videos programmatically with parallel requests.

Example:

Content migration, bulk video editing

Mobile Apps

Integrate video background removal into your iOS or Android app.

Example:

Social media apps, video editing apps

API Pricing & Rate Limits

Choose the plan that fits your needs

Business

$49/mo

200 videos

  • API access
  • Priority processing
  • Webhook support

Enterprise

Custom

Unlimited

  • Dedicated infrastructure
  • SLA guarantee
  • Custom integration

Rate Limits

Business Plan:10 requests/minute
Enterprise Plan:Custom limits
Max file size:1 GB
Max video length:30 minutes

Migrating from Unscreen API

Easy migration for existing Unscreen API users

If you're currently using the Unscreen API, migration to unscreen.io is straightforward. Our API is designed with similar endpoints and response structures for easy transition.

Key Differences:

  • Base URL: Change from unscreen.com to api.unscreen.io
  • Authentication: Bearer token instead of API key in URL
  • Response format: Nearly identical with minor field name changes
  • Webhooks: Enhanced webhook support with more events

Ready to Get Started?

Sign up now and get your API key. Start with Business plan or contact us for Enterprise.