Appearance
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 Returned | Typical Use | Credit Cost |
|---|---|---|---|
separate_vocal (default) | 2 stems - Vocals + Instrumental | Quick vocal removal, karaoke, basic remixes | 10 Credits |
split_stem | Up to 12 stems - Vocals, Backing Vocals, Drums, Bass, Guitar, Keyboard, Strings, Brass, Woodwinds, Percussion, Synth, FX/Other | Advanced mixing, remixing, sound design | 50 Credits |
Parameter Reference #
| Name | Type | Description |
|---|---|---|
taskId | string | ID of the original music‑generation task |
audioId | string | Which audio variation to process when multiple versions exist |
type | string | Required. 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"
}
}