Audio Separation API
Split any audio or video into clean, isolated tracks — dialogue, music, and effects, or individual instrument, vocal, and speech stems — for dubbing, localization, post-production, karaoke, and speech-to-text pre-processing.
Smart hybrid upload
Files up to 100 MiB upload in a single PUT; larger files use resumable multipart. You can also pass a remote URL and skip uploading entirely.
DME & stem separation
Extract clean dialogue, a music bed, and effects — or split a song into instrument, vocal, and speech stems. Request several tracks in one job and download each separately.
Webhooks or polling
Get a callback as each track finishes, or poll the job until it's done. Built for long-running media without blocking your app.
Simple, predictable API
One API key header, flat JSON, standard HTTP status codes, and structured error objects you can branch on.
How it works
Separation runs as an asynchronous job. You upload your media once as an asset, create a jobthat lists the tracks you want, and collect the results when they're ready. A single job can produce multiple tracks, each finishing independently.
- 1
Upload an asset
POST /assets starts the upload and returns an assetId. The response tells you whether to do a single upload or multipart upload for files over 100 MiB.
- 2
Create a job
POST /jobs with that assetId and a list of targets — the model and output formats you want.
- 3
Wait for results
Receive a webhook as each target completes, or poll GET /jobs/{jobId} (about every 10 seconds).
- 4
Download the tracks
Each target exposes download links under output[stem][format]. Links are valid for 48 hours.
Core concepts
- Asset
- A piece of source media you've uploaded. Identified by an assetId and retained for 72 hours. One asset can be reused across multiple jobs.
- Job
- A separation request for one asset. Contains one or more targets and has an aggregate status.
- Target
- A single output within a job — one model rendered into one or more formats. Targets run and complete independently.
- Model
- The algorithm that produces a track, referenced by a family-prefixed alias such as dme_dialogue_v1, stem_vocal_v1, or karaoke_vocal_v1. DME models accept model-specific processing tiers; non-DME models each produce one output track. See the models list in the API reference.
