GPT Image 2.5 is live — OpenAI's newest image model, targeted edits that leave the rest of the frame alone
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