Skip to main content
POST
/
api
/
v1
/
generate
/
add-vocals
Add Vocals
curl --request POST \
  --url https://api.api.box/api/v1/generate/add-vocals \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "prompt": "A calm and relaxing piano track with soothing vocals",
  "title": "Relaxing Piano with Vocals",
  "negativeTags": "Heavy Metal, Aggressive Vocals",
  "style": "Jazz",
  "vocalGender": "m",
  "styleWeight": 0.61,
  "weirdnessConstraint": 0.72,
  "audioWeight": 0.65,
  "uploadUrl": "https://example.com/instrumental.mp3",
  "callBackUrl": "https://api.example.com/callback",
  "model": "V4_5PLUS"
}'
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "5c79****be8e"
  }
}

Key Capabilities

  • Accepts an existing instrumental via uploadUrl, with optional prompt-based stylistic input.
  • Supports control parameters including:
    • prompt, style, tags, negativeTags (define lyrical content and vocal style)
    • vocalGender, styleWeight, weirdnessConstraint, audioWeight, callBackUrl  .
  • Returns a taskId, supports the same 14-day retention and three-stage callback model as the instrumental endpoint  .

Typical Use Cases

  • Music platforms or tools enabling topline creation and rapid prototyping of lyrical ideas.
  • Collaborative songwriting or co-creation workflows, where lyrics or vocal styles are iteratively tested over instrumental drafts.

Parameter Details

  • Required fields: uploadUrl, callBackUrl, prompt, title, negativeTags, style
  • Upload URL: Must be a valid, publicly accessible audio file URL
  • Style: Describes the overall genre and vocal approach (Jazz, Classical, Electronic, Pop)
  • Negative Tags: Music styles or vocal traits to exclude from generation
  • Title: Used as the title for the generated vocal track

Optional parameters

The following fields are optional controls available for this endpoint:
  • vocalGender (string): Preferred vocal gender. Allowed values: m (male), f (female)
  • styleWeight (number): Style adherence weight in range 0–1 (recommended two decimals)
  • weirdnessConstraint (number): Creativity/novelty constraint in range 0–1 (recommended two decimals)
  • audioWeight (number): Relative weight of audio consistency in range 0–1 (recommended two decimals)
  • model (string): Model version used for generation. Allowed values: V4_5PLUS (default), V5

Developer Notes

  • Callback process has three stages: text (text generation), first (first track complete), complete (all tracks complete)
  • In some cases, text and first stages may be skipped, directly returning complete
  • See Add Vocals Callbacks for detailed callback format
  • Monitor task progress using Get Music Generation Details

Authorizations

Authorization
string
header
required

🔑 API Authentication

All endpoints require authentication using Bearer Token.

Get API Key

  1. Visit the API Key Management Page to obtain your API Key

Usage

Add to request headers:

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 from the management page

Body

application/json
prompt
string
required

Description of the audio content to generate vocals for.

  • Required.
  • Provides context about the desired vocal style and content.
  • The more detailed your prompt, the better the vocal generation will match your vision.
Example:

"A calm and relaxing piano track with soothing vocals"

title
string
required

The title of the music track.

  • Required.
  • This will be used as the title for the generated vocal track.
Example:

"Relaxing Piano with Vocals"

negativeTags
string
required

Music styles or vocal traits to exclude from the generated track.

  • Required.
  • Use to avoid specific vocal styles or characteristics.
    Example: "Heavy Metal, Aggressive Vocals"
Example:

"Heavy Metal, Aggressive Vocals"

style
string
required

The music and vocal style.

  • Required.
  • Examples: "Jazz", "Classical", "Electronic", "Pop".
  • Describes the overall genre and vocal approach.
Example:

"Jazz"

uploadUrl
string<uri>
required

The URL of the uploaded audio file to add vocals to.

  • Required.
  • Must be a valid audio file URL accessible by the system.
  • The uploaded audio should be in a supported format (MP3, WAV, etc.).
Example:

"https://example.com/instrumental.mp3"

callBackUrl
string<uri>
required

The URL to receive task completion notifications when vocal generation is complete. The callback process has three stages: text (text generation), first (first track complete), complete (all tracks complete). Note: In some cases, text and first stages may be skipped, directly returning complete.

For detailed callback format and implementation guide, see Add Vocals Callbacks

  • Alternatively, you can use the Get Music Generation Details interface to poll task status
Example:

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

vocalGender
enum<string>

Preferred vocal gender. Optional. Allowed values: 'm' (male), 'f' (female).

Available options:
m,
f
Example:

"m"

styleWeight
number

Style adherence weight. Optional. Range: 0-1. Two decimal places recommended.

Required range: 0 <= x <= 1Must be a multiple of 0.01
Example:

0.61

weirdnessConstraint
number

Creativity/novelty constraint. Optional. Range: 0-1. Two decimal places recommended.

Required range: 0 <= x <= 1Must be a multiple of 0.01
Example:

0.72

audioWeight
number

Relative weight of audio consistency versus other controls. Optional. Range: 0-1. Two decimal places recommended.

Required range: 0 <= x <= 1Must be a multiple of 0.01
Example:

0.65

model
enum<string>
default:V4_5PLUS

Model version to use for generation. Optional. Default: V4_5PLUS.

Available options:
V4_5PLUS,
V5
Example:

"V4_5PLUS"

Response

Request successful

code
enum<integer>

Status Codes

  • ✅ 200 - Request successful
  • ⚠️ 400 - Invalid parameters
  • ⚠️ 401 - Unauthorized access
  • ⚠️ 404 - Invalid request method or path
  • ⚠️ 405 - Rate limit exceeded
  • ⚠️ 413 - Theme or prompt too long
  • ⚠️ 429 - Insufficient credits
  • ⚠️ 430 - Your call frequency is too high. Please try again later.
  • ⚠️ 455 - System maintenance
  • ❌ 500 - Server error
Available options:
200,
400,
401,
404,
405,
413,
429,
430,
455,
500
Example:

200

msg
string

Error message when code != 200

Example:

"success"

data
object
I