Submit a batch of up to 10,000 videos with individual editing instructions for each. V100 parallelizes across our GPU cluster, manages the queue, and fires webhooks as each job completes. No infrastructure to manage. No workers to scale.
POST an array of jobs to /v1/batch. Each job specifies a source video URL, natural language instructions, and output preferences. You get back a batch ID immediately -- no waiting for validation.
Jobs are distributed across our GPU cluster using a weighted priority queue. Short videos and simple operations get fast-tracked. Large transcoding jobs are routed to high-memory workers. Up to 200 jobs execute concurrently per account (higher limits available on Enterprise).
As each individual job completes, V100 sends a POST to your webhook URL with the job ID, output URL, processing stats, and status. You also receive a final "batch_complete" event when every job in the batch has finished (or failed after retries).
Failed jobs retry up to 3 times with exponential backoff. Common transient failures (source URL timeout, temporary GPU memory pressure) resolve automatically. Permanent failures (corrupt source file, unsupported codec) are flagged with detailed error codes in the webhook payload.
Process 500 meeting recordings overnight: remove silence, add captions, export as MP4.
import { V100 } from 'v100-sdk';
import { listObjects } from './s3-helpers.js';
const v100 = new V100(process.env.V100_API_KEY);
// List all meeting recordings from this week
const videos = await listObjects('meetings-bucket', 'recordings/2026-03/');
// Build batch jobs array
const jobs = videos.map(video => ({
source: `s3://meetings-bucket/${video.key}`,
instructions: 'Remove silence over 1 second, remove filler words, add English captions',
output: { format: 'mp4', resolution: 'source' },
metadata: { original_key: video.key } // passed through to webhook
}));
// Submit entire batch
const batch = await v100.batch.create({
jobs,
webhook: 'https://your-app.com/api/v100/batch-complete',
priority: 'normal' // or 'high' for 2x faster scheduling
});
console.log(`Batch ${batch.id}: ${batch.total_jobs} jobs queued`);
// "Batch batch_8f2c1a: 487 jobs queued"
// Check status anytime
const status = await v100.batch.status(batch.id);
// { completed: 203, processing: 48, queued: 236, failed: 0 }
Media companies with thousands of legacy videos that need captions, format conversion, or remastering. Process your entire back-catalog over a weekend without provisioning a single server.
User-generated content platforms that need to normalize audio levels, add watermarks, generate thumbnails, and create preview clips for every upload -- automatically, at upload time.
Online course platforms with hundreds of lecture recordings that need silence removal, captioning in multiple languages, and chapter markers derived from transcript topics.
Automatically process every recorded sales call: transcribe, remove dead air, extract key moments ("pricing discussion", "objection handling"), and push clips to CRM records.
Free tier includes 60 minutes of processing. Enterprise plans for unlimited batch jobs.
Get API Key — Free Tier