Skip to main content

StemSplit API Launch: Build Audio Apps with AI Stem Separation

StemSplit Team
StemSplit Team
StemSplit API Launch: Build Audio Apps with AI Stem Separation
Summarize with AI:

We've shipped something big: the StemSplit API is now publicly available. If you've ever wanted to build a karaoke app, automate stem extraction for your DJ sets, or add vocal removal to your music production pipeline — now you can.

TL;DR: The StemSplit API lets you programmatically separate vocals, drums, bass, and more from any audio file. Simple REST endpoints, webhook notifications, YouTube support, and the same pay-per-use pricing you already know. Get your API key and start building.

Why We Built This

People kept asking us for an API. DJs wanted to automate stem extraction for their music libraries. App developers wanted to build karaoke features. Music educators needed batch processing for teaching materials.

The web interface works great for one-off jobs, but automation needs an API. So we built one.

What You Can Do

Separate Stems from Any Audio

Upload any MP3, WAV, FLAC, or M4A file and extract:

Output TypeWhat You Get
VOCALSJust the vocals (perfect for acapella extraction)
INSTRUMENTALEverything except vocals (great for karaoke)
BOTHVocals + instrumental as separate files
FOUR_STEMSVocals, drums, bass, other
SIX_STEMSVocals, drums, bass, guitar, piano, other

Same AI quality as our vocal remover and stem splitter — just automated.

Process YouTube Videos Directly

No need to download first. Pass a YouTube URL and get separated stems back:

curl -X POST https://stemsplit.io/api/v1/youtube-jobs \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"youtubeUrl": "https://youtube.com/watch?v=dQw4w9WgXcQ"}'

We handle the download, extraction, and processing. You get clean stems.

Get Notified via Webhooks

Don't want to poll for results? Register a webhook and we'll POST to your server when jobs complete:

{
  "event": "job.completed",
  "timestamp": "2026-01-05T12:30:00Z",
  "data": {
    "jobId": "clxxx123...",
    "status": "COMPLETED",
    "outputs": {
      "vocals": { "url": "https://...", "expiresAt": "..." },
      "instrumental": { "url": "https://...", "expiresAt": "..." }
    }
  }
}

Webhooks include HMAC-SHA256 signatures for security.


Ready to start building? Get your API key — new users get 10 free minutes to test.

View API Documentation →


How It Works

The API follows a simple flow:

Step 1: Upload your audio

Either upload directly via presigned URL, or pass a sourceUrl for files already hosted online.

Step 2: Create a job

curl -X POST https://stemsplit.io/api/v1/jobs \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceUrl": "https://example.com/song.mp3",
    "outputType": "BOTH",
    "quality": "BEST"
  }'

Step 3: Get results

Poll the job status or receive a webhook. Once complete, download your stems from the provided URLs.

Processing typically takes 1-3 minutes depending on audio length and quality setting.

Integration Guides

We've written guides for the most common use cases:

PlatformWhat You Can Build
n8nAutomated workflows — process files from cloud storage, send results to Slack
ZapierNo-code automation — connect to 5000+ apps
MakeVisual scenario builder for complex workflows
Discord BotBuild a stem separation bot for your server
White LabelEmbed stem separation in your own product

More guides coming based on what you build.

Pricing: Same Credits, No Extra Cost

The API uses the same credit system as the web app:

  • No API-specific pricing — same cost per minute of audio
  • No subscription required — buy credits when you need them
  • Credits never expire — use them whenever
  • New users get 10 free minutes to test the API

Check pricing for current rates.

Technical Details

Authentication

All requests use Bearer token authentication:

Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxx

Generate API keys in Settings → API Keys. You can create up to 5 keys per account.

Rate Limits

LimitValue
Requests per minute60
Maximum file size50 MB
Maximum audio duration60 minutes
API keys per account5
Webhooks per account5

Supported Formats

Input: MP3, WAV, FLAC, M4A, OGG, WebM

Output: MP3, WAV, FLAC (you choose)

Quality Settings

SettingProcessing TimeBest For
FAST~20s per minuteQuick previews
BALANCED~40s per minuteMost use cases
BEST~60s per minuteMaximum quality, required for 6-stem

Documentation

We've published complete documentation:

  • Getting Started — Quick start guide with code examples in cURL, Python, and JavaScript
  • API Reference — Full endpoint documentation with request/response examples
  • Integration Guides — Step-by-step tutorials for specific platforms

The docs include working code you can copy-paste.

Example: Build a Karaoke App

Here's a complete Python example that turns any song into karaoke:

import requests
import time

API_KEY = "sk_live_xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# Create job from URL
response = requests.post(
    "https://stemsplit.io/api/v1/jobs",
    headers=HEADERS,
    json={
        "sourceUrl": "https://example.com/song.mp3",
        "outputType": "INSTRUMENTAL",  # Karaoke = no vocals
        "quality": "BEST",
        "outputFormat": "MP3"
    }
)
job = response.json()
print(f"Created job: {job['id']}")

# Wait for completion
while True:
    status = requests.get(
        f"https://stemsplit.io/api/v1/jobs/{job['id']}",
        headers=HEADERS
    ).json()
    
    if status["status"] == "COMPLETED":
        print(f"Done! Download: {status['outputs']['instrumental']['url']}")
        break
    elif status["status"] == "FAILED":
        print(f"Error: {status['errorMessage']}")
        break
    
    print(f"Progress: {status['progress']}%")
    time.sleep(5)

That's it — about 30 lines to build a karaoke maker.

What People Are Building

Since the private beta, developers have built:

  • Karaoke apps that let users sing any song
  • DJ tools that batch-process entire music libraries
  • Practice platforms for musicians learning instruments
  • Content creation tools that extract audio for videos
  • Discord bots that process songs on demand

We're excited to see what you create.

FAQ

How is this different from the web app?

Same AI, same quality, same credits — just programmatic access. The API is for automation and integration, while the web app is for one-off processing.

Do I need a subscription?

No. Same pay-per-use model as the web app. Buy credits when you need them, they never expire.

Can I use this for commercial products?

Yes. Build whatever you want. You're paying for processing, and the API is yours to use.

Is there a free tier?

New accounts get 10 free minutes to test. After that, you buy credits as needed.

How do I handle errors?

All errors return consistent JSON with an error code and message. Check the API reference for the full list.

Can I process YouTube videos?

Yes — the /youtube-jobs endpoint handles YouTube URLs directly. We download the audio and process it. Maximum duration is 60 minutes.

Get Started

  1. Create an account if you don't have one
  2. Generate an API key in your dashboard
  3. Read the docs and start building

New accounts get 10 free minutes. No credit card required to try.


Start Building with the StemSplit API

Integrate AI-powered stem separation into your apps today.

  • ✅ Simple REST API with webhooks
  • ✅ YouTube URL support
  • ✅ Same credits as web app — no extra cost
  • ✅ 10 free minutes to test

Get Your API Key →

Read the Documentation →


Tags

#api#developers#stem separation#vocal remover#automation#webhooks#integration