Skip to content

Vocal & Instrument Stem Separation

POST

/api/v1/vocal-removal/generate

Separate music into vocal, instrumental, and individual instrument tracks using advanced audio processing technology.

Usage Guide #

Separate a platform‑generated mix into vocal, instrumental, and individual instrument components.

Two processing modes are available:

separate_vocal  -  2‑stem split

split_stem    -  up to 12‑stem split

Ideal for karaoke creation, remixes, sample extraction, or detailed post‑production.

Best results on professionally mixed AI tracks with clear vocal and instrumental layers.

Billing notice: Each call consumes credits; re‑calling the same track is charged again (no server‑side caching).

Pricing: Check current per‑call credit costs at https://kie.ai/pricing.

Separation Mode Details #

Mode (type)Stems ReturnedTypical UseCredit Cost
separate_vocal (default)2 stems - Vocals + InstrumentalQuick vocal removal, karaoke, basic remixes10 Credits
split_stemUp to 12 stems - Vocals, Backing Vocals, Drums, Bass, Guitar, Keyboard, Strings, Brass, Woodwinds, Percussion, Synth, FX/OtherAdvanced mixing, remixing, sound design50 Credits

Parameter Reference #

NameTypeDescription
taskIdstringID of the original music‑generation task
audioIdstringWhich audio variation to process when multiple versions exist
typestringRequired. Separation mode: separate_vocal or split_stem

Developer Notes #

All returned audio‑file URLs remain accessible for 14 days.

Separation quality depends on the complexity and mixing of the original track.

separate_vocal returns 2 stems  -  vocals + instrumental.

split_stem returns up to 12 independent stems  -  vocals, backing vocals, drums, bass, guitar, keyboard, strings, brass, woodwinds, percussion, synth, FX/other.

Billing: Every request is charged. Re‑submitting the same track triggers a new credit deduction (no server‑side caching).

Callbacks

vocalRemovalGenerated

POST

Request

Authorization

Bearer Token

Provide your bearer token in the Authorization header when making requests to protected resources.

Example:

Authorization: Bearer ********************

or

Body Params application/jsonRequired

Generate Code

taskId

string

required

Unique identifier of the music generation task. This should be a taskId returned from either the "Generate Music" or "Extend Music" endpoints.

Example: 5c79****be8e

audioId

string

required

Unique identifier of the specific audio track to process for vocal separation. This ID is returned in the callback data after music generation completes.

Example: e231****-****-****-****-****8cadc7dc

type

enum<string>

optional

Separation type with the following options:

separate_vocal: Separate vocals and accompaniment, generating vocal and instrumental tracks

split_stem: Separate various instrument sounds, generating vocals, backing vocals, drums, bass, guitar, keyboard, strings, brass, woodwinds, percussion, synthesizer, effects, and other tracks

Allowed values: separate_vocalsplit_stem

Default: separate_vocal

Example: separate_vocal

callBackUrl

string<uri>

required

The URL to receive vocal separation task completion updates. Required for all vocal separation requests.

System will POST task status and results to this URL when vocal separation completes

Callback content varies based on the type parameter: separate_vocal returns vocals and accompaniment, split_stem returns multiple instrument tracks

Your callback endpoint should accept POST requests with JSON payload containing separated audio file links

For detailed callback format and implementation guide, see Vocal Separation Callbacks

Alternatively, use the Get Vocal Separation Details endpoint to poll task status

To ensure callback security, see Webhook Verification Guide for signature verification implementation

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

Examples

Responses

🟢200

application/json

Request successful

Bodyapplication/json

Generate Code

code

enum<integer>

optional

Response status code

200: Success - Request has been processed successfully

400: Format Error - The parameter is not in a valid JSON format

401: Unauthorized - Authentication credentials are missing or invalid

402: Insufficient Credits - Account does not have enough credits to perform the operation

404: Not Found - The requested resource or endpoint does not exist

409: Conflict - WAV record already exists

422: Validation Error - The request parameters failed validation checks

429: Rate Limited - Request limit has been exceeded for this resource

455: Service Unavailable - System is currently undergoing maintenance

500: Server Error - An unexpected error occurred while processing the request

Allowed values: 200400401402404409422429455500

msg

string

optional

Error message when code != 200

Example: success

data

object

optional

taskId

string

optional

Task ID for tracking task status

Example: 5c79****be8e

🔴500Error

Request Request Example

Shell

JavaScript

Java

Swift

Go

PHP

Python

HTTP

C

C#

Objective-C

Ruby

OCaml

Dart

R

cURLcURL-WindowsHttpiewgetPowerShell

curl --location 'https://api.kie.ai/api/v1/vocal-removal/generate' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
  "taskId": "5c79****be8e",
  "audioId": "e231****-****-****-****-****8cadc7dc",
  "callBackUrl": "https://api.example.com/callback",
  "type": "separate_vocal"
}'

Response Response Example

200 - Example 1

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

Self-contained reference. Not affiliated with kie.ai.