Skip to main content
POST
/
api
/
v1
/
vocal-removal
/
generate
Separate Vocals from Music
curl --request POST \
  --url 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",
  "type": "separate_vocal",
  "callBackUrl": "https://api.example.com/callback"
}'
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "5c79****be8e"
  }
}

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/billing.

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).

Authorizations

Authorization
string
header
required

All APIs require authentication via Bearer Token.

Get API Key:

  1. Visit API Key Management Page to get your API Key

Usage: Add to request header: 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 in the management page

Body

application/json
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"

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
Example:

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

type
enum<string>
default:separate_vocal

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
Available options:
separate_vocal,
split_stem
Example:

"separate_vocal"

Response

Request successful

code
enum<integer>

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
Available options:
200,
400,
401,
402,
404,
409,
422,
429,
455,
500
msg
string

Error message when code != 200

Example:

"success"

data
object
I