curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "upload-and-separate-vocals",
"callback_url": "https://your-domain.com/callback",
"input": {
"title": "My Audio Track",
"audio_url": "https://example.com/audio/my-track.mp3",
"model_name": "base",
"output_type": "general"
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}{
"code": 409,
"error": {
"message": "Separation already exists for this audio",
"type": "conflict_error"
}
}Vocal Remover
Upload and Separate Vocals
Upload audio and separate it into multiple stems
POST
/
api
/
generate
/
submit
curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "upload-and-separate-vocals",
"callback_url": "https://your-domain.com/callback",
"input": {
"title": "My Audio Track",
"audio_url": "https://example.com/audio/my-track.mp3",
"model_name": "base",
"output_type": "general"
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}{
"code": 409,
"error": {
"message": "Separation already exists for this audio",
"type": "conflict_error"
}
}- After submission, a
task_idwill be returned. If you provided acallback_url, when the task status becomesfinishedorfailed, a POST request will be sent to thecallback_url. - Regardless of whether
callback_urlis provided, you can retrieve the response result through the unified Query Music Detail endpoint.
Usage Guide
Vocal Separation Options:
- separate-vocals: Does not support uploading audio, 2-stem split, based on Suno
- stem-split: Does not support uploading audio, 12-stem split, based on Suno
- upload-and-separate-vocals: Supports uploading audio, 7-stem split
- This endpoint uploads audio and separates it into multiple stems
- Creates separate tracks for bass, drums, piano, guitar, vocals, and other
- Useful for remixing or isolating specific instruments from uploaded audio
Parameter Details
audio_url(required): URL of the audio file to upload and separatetitle(optional): Title for the separation taskmodel_name(optional): Separation model to use. Default:basebase: Standard separation qualityenhanced: Higher quality separation with better accuracyinstrumental: Optimized for instrumental tracks
output_type(optional): Type of output stems to generate. Default:generalgeneral: All available stemsbass: Bass track onlydrums: Drums track onlyother: Other instrumentspiano: Piano track onlyguitar: Guitar track onlyvocals: Vocals track only
Authorizations
All API endpoints require Bearer Token authentication
Get your API Key:
Visit the API Key Management Page to get your API Key
Add it to the request header:
Authorization: Bearer PoYo_API_KEY
Body
application/json
API model identifier.
Must be upload-and-separate-vocals for this endpoint.
Available options:
upload-and-separate-vocals Example:
"upload-and-separate-vocals"
Webhook callback URL for result notifications.
The endpoint will receive POST requests with separation completion status and download URLs for each track.
Example:
"https://your-domain.com/callback"
Input parameters for upload and vocal separation
Show child attributes
Show child attributes
