Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
rreAPI Docs

Music Extractor API

Extract the music bed from mixed audio using the async reAPI audio endpoint.

Music Extractor API

Use audio-music-extractor to extract the background music (instrumental bed) from a public source audio URL — the inverse of a vocal remover's "vocals" output. Typical uses: karaoke tracks, sampling, replacing a vocal take while keeping the original arrangement, and preparing beds for video.

Endpoint

POST /api/v1/audio/generations

Poll completion with:

GET /api/v1/tasks/{id}

Example

curl https://reapi.ai/api/v1/audio/generations \
  -H "Authorization: Bearer $REAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "audio-music-extractor",
    "audio_url": "https://cdn.example.com/mix.wav",
    "encoder_format": "mp3"
  }'
import requests

resp = requests.post(
    "https://reapi.ai/api/v1/audio/generations",
    headers={
        "Authorization": "Bearer rk_live_xxx",
        "Content-Type": "application/json",
    },
    json={
        "model": "audio-music-extractor",
        "audio_url": "https://cdn.example.com/mix.wav",
        "encoder_format": "mp3",
    },
    timeout=30,
)
print(resp.json())
const r = await fetch("https://reapi.ai/api/v1/audio/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer rk_live_xxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "audio-music-extractor",
    audio_url: "https://cdn.example.com/mix.wav",
    encoder_format: "mp3",
  }),
});
console.log(await r.json());
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    body, _ := json.Marshal(map[string]any{
        "model":          "audio-music-extractor",
        "audio_url":      "https://cdn.example.com/mix.wav",
        "encoder_format": "mp3",
    })
    req, _ := http.NewRequest("POST",
        "https://reapi.ai/api/v1/audio/generations", bytes.NewReader(body))
    req.Header.Set("Authorization", "Bearer rk_live_xxx")
    req.Header.Set("Content-Type", "application/json")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    out, _ := io.ReadAll(resp.Body)
    fmt.Println(string(out))
}

Parameters

FieldTypeRequiredNotes
modelstringyesUse audio-music-extractor.
audio_urlURLyesPublic HTTP(S) source audio URL. Base64 / data: URIs are rejected platform-wide.
splitterenumnoauto, andromeda, perseus, orion, phoenix, lyra, or lynx. auto is omitted upstream so the default engine is used.
dereverb_enabledbooleannoEnable dereverb cleanup.
encoder_formatenumnomp3, wav, flac, aac, or ogg.

Requests are strictly validated: unknown fields are rejected with 400 rather than ignored.

Output

Completed tasks return output.audio_urls and, when available, labeled output.tracks (each with type, label, and url):

{
  "id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
  "status": "completed",
  "output": {
    "audio_urls": ["https://cdn.reapi.ai/.../music.mp3"]
  }
}

Billing

Audio jobs are billed per rounded-up source minute — a 2:30 source bills as 3 minutes. Failed jobs refund automatically. See the current per-minute rate on the Music Extractor model page.

Which audio model do I need?

GoalModelDocs
Keep the music, drop the vocalsaudio-music-extractorthis page
Keep the vocals, drop the musicaudio-stem-separator with stem: "vocals"Vocal Remover
Split several instruments at onceaudio-multistemMultistem Splitter
Denoise / de-reverb speechaudio-voice-cleanVoice Cleaner
Convert vocals to another voiceaudio-voice-changeVoice Changer

Table of Contents