Skip to main content
POST
  1. After submission, a task_id will be returned. If you provided a callback_url, when the task status becomes finished or failed, a POST request will be sent to the callback_url.
  2. Regardless of whether callback_url is provided, you can retrieve the response result through the unified Query Music Detail endpoint.

Usage Guide

Vocal Separation Options:
  • 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 separate
  • title (optional): Title for the separation task
  • model_name (optional): Separation model to use. Default: base
    • base: Standard separation quality
    • enhanced: Higher quality separation with better accuracy
    • instrumental: Optimized for instrumental tracks
  • output_type (optional): Type of output stems to generate. Default: general
    • general: All available stems
    • bass: Bass track only
    • drums: Drums track only
    • other: Other instruments
    • piano: Piano track only
    • guitar: Guitar track only
    • vocals: Vocals track only

Authorizations

Authorization
string
header
required

All API endpoints require Bearer Token authentication.

Create an API key: sign in to PoYo, open Dashboard → API Key at poyo.ai/dashboard/api-key, and click to create a key.

Add it to the request header:

Body

application/json
model
enum<string>
required

API model identifier.

Must be upload-and-separate-vocals for this endpoint.

Available options:
upload-and-separate-vocals
Example:

"upload-and-separate-vocals"

callback_url
string<uri>
required

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
object
required

Input parameters for upload and vocal separation

Response

Task submitted successfully

code
enum<integer>
required

Business status code. 200 means success; any other value means the request failed. Always check this field: some validation errors return HTTP 200 with code: 400 in the body.

  • 200: Success
  • 400: Invalid request parameters
  • 401: Missing or invalid API key
  • 402: Insufficient credits
  • 403: Permission denied
  • 404: Resource not found
  • 408: Request timeout
  • 429: Rate limit exceeded
  • 500: Internal server error
  • 502: Upstream service error
  • 503: Service unavailable

See Error Codes for details.

Available options:
200,
400,
401,
402,
403,
404,
408,
429,
500,
502,
503
Example:

200

data
object
required