Add vocal API

Updated 2026-09-18 · Suno-API team

Endpoint description

Add vocal generates, rewrites or completes vocals on an existing song or instrumental source.

Endpoint: POST /api/music/add-vocal

Billing: Paid, billed by the requested model; the amount actually charged follows the back-office price configuration.

Max Mode / Variety: this endpoint supports the optional parameters max_mode and variety (0-4). With max_mode on, this call is billed at 2× the price; variety costs nothing extra. What they mean and how to send them is in the "Advanced parameters" section of the New API overview.

Recommended model: suno-v6. suno-v6, suno-v6-wild and suno-v6-mini are available.

Wait times and timeouts (important): this is a synchronous endpoint — the order is only accepted and handed to generation when the response arrives. Measured, most requests return in 1-3 seconds, about 10% take longer than 30 seconds, and the longest is about 230 seconds. Set your client timeout to 300 seconds or more; no response does not mean nothing was generated, and do not retry immediately after a timeout (that duplicates the order and charges again). If the connection dropped, confirm later with GET /api/music/songs. See "Wait times and timeout settings" in the New API overview.

Authentication

Parameter Type Required Notes
Authorization string yes Bearer YOUR_API_KEY
Content-Type string yes application/json

Request parameters

Parameter Type Required Default Notes
model string yes - Customer-facing model name: suno-v6, suno-v6-wild or suno-v6-mini
source_clip_id string yes - The real song_id of the source song; it must be completed and accessible to the current API key
lyrics string no - Lyrics for the added or replaced vocals
style_tags string no - Vocal style, singing approach or harmony requirements
song_title string no - Title of the result
negative_tags string no - Negative style tags
instrumental boolean no false Whether the result is instrumental; in the add-vocal case this normally stays false
wait_completion boolean no false Whether to wait a long time before responding

Request example

curl -X POST https://www.suno-api.io/api/music/add-vocal \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "source_clip_id": "source_song_id",
    "lyrics": "[Verse]\nNight falls outside the window\n[Chorus]\nWe walk towards the light",
    "style_tags": "warm male vocal, mandopop, intimate",
    "song_title": "Enhanced vocal version",
    "instrumental": false,
    "wait_completion": false
  }'

Response

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "result_song_id",
        "song_title": "Enhanced vocal version",
        "status": "pending"
      },
      {
        "song_id": "result_song_id_2",
        "song_title": "Enhanced vocal version",
        "status": "pending"
      }
    ]
  }
}

One call returns 2 results (billed as 2 songs); the example shows 2. Judge by the length of the clips array and do not hard-code a fixed count. Save clips[].song_id and poll the song query API until completed.

Notes

NextAdd stem API

Get an API key

Create an API key in the console after signing up. ¥0.6 per run returns 2 tracks, downloads are unlimited, and no phone number is required.

Get API key Back to overview