Skip to main content
POST
/
api
/
v1
/
vocal-removal
/
generate
Vocal & Instrument Stem Separation
curl --request POST \
  --url https://api.sunoapi.org/api/v1/vocal-removal/generate \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "taskId": "5c79****be8e",
  "audioId": "5c79****be8e",
  "type": "separate_vocal",
  "callBackUrl": "https://api.example.com/callback"
}
'
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "5c79****be8e"
  }
}
Use Suno’s official get-stem capability to split a generated track into clean vocals, instrumental, or detailed per-instrument stems using state-of-the-art source separation.

What it does

  • Vocal/Instrumental (separate_vocal): Outputs isolated vocals and a clean instrumental.
  • Full Stem Split (split_stem): Separates multiple instruments (e.g., drums, bass, guitar, keys, strings, brass, woodwinds, percussion, synth, fx) plus vocals/backing vocals.

Required Parameters

taskId (string)

  • Music generation task ID the track came from.
  • Used along with audioId to pinpoint the exact track.

audioId (string)

  • Specific track ID within the task to separate.
  • Required together with taskId for precise matching.

type (string)

  • Separation mode:
  • separate_vocal (default) — vocals + instrumental
  • split_stem — multi-instrument stems

callBackUrl (string, uri)

  • Your webhook to receive the result URLs when ready.
  • For split_stem, expect multiple file URLs in the callback.

Response Handling

Immediate Response (accepted)

{
  "code": 200,
  "msg": "success",
  "data": { "taskId": "5c79****be8e" }
}

Authorizations

Authorization
string
header
required

🔑 API Authentication

All endpoints require authentication using Bearer Token.

Get API Key

  1. Visit the API Key Management Page to obtain your API Key

Usage

Add to request headers:

Authorization: Bearer YOUR_API_KEY

⚠️ Note:

  • Keep your API Key secure and do not share it with others
  • If you suspect your API Key has been compromised, reset it immediately from the management page

Body

application/json
taskId
string
required

The task ID of the music generation task. Required alongside audioId for accurate track identification.

Example:

"5c79****be8e"

audioId
string
required

The ID of the specific audio track to separate. Required alongside taskId for accurate track identification.

Example:

"5c79****be8e"

callBackUrl
string<uri>
required

URL to receive separation results upon completion. Callback may include URLs for: original audio, isolated vocals, instrumental, and (for split_stem) individual instrument stems.

Example:

"https://api.example.com/callback"

type
enum<string>
default:separate_vocal

Separation type. separate_vocal: split into vocals and instrumental (default). split_stem: split into multiple instrument stems (vocals, backing vocals, drums, bass, guitar, keys, strings, brass, woodwinds, percussion, synth, effects, etc.).

Available options:
separate_vocal,
split_stem
Example:

"separate_vocal"

Response

Request successful

code
enum<integer>

Status code. 200 - Request successful, 400 - Invalid parameters, 401 - Unauthorized access, 404 - Invalid request method or path, 405 - Rate limit exceeded, 413 - Theme or prompt too long, 429 - Insufficient credits, 430 - Call frequency too high, 455 - System maintenance, 500 - Server error

Available options:
200,
400,
401,
404,
405,
413,
429,
430,
455,
500
Example:

200

msg
string

Error message when code != 200

Example:

"success"

data
object