Lyrics generation API

Updated 2026-09-18 · Suno-API team

Endpoint description

Lyrics generation creates or rewrites lyrics from a theme, existing lyric context and style requirements. The endpoint has been upgraded to the latest lyrics generation contract and can be used directly for advanced-mode generation.

Endpoint: POST /api/lyrics/generate

Billing: Free within the quota (at most 10 calls per minute and 300 per day per user); above the free quota it costs 0.1 CNY per call.

Detecting over-limit: when the free quota is exceeded the request still runs normally, and the response headers carry X-Suno-Helper-Free: false and X-Suno-Helper-Over-Limit: minute (or day), so the client can tell the user that this call was charged.

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

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
instruction string yes - Lyrics theme or generation requirement
style string no - Style requirement
title string no - Song title or title constraint
selected string no "" The selected text to be rewritten
context_before string no "" Context before
context_after string no "" Context after
mode string no apply_user_request Lyrics generation mode
references array no [] List of reference material
num_variants integer no null Desired number of lyric variants
lyricist_id string no null A specific lyricist ID (the lyricist list has been retired; new integrations are not recommended)
metadata object no - Extended parameters; supports lyrics_model and enable_thinking
lyrics_project_id string no null An existing lyrics project ID (the lyrics project series has been retired; new integrations are not recommended)

instruction also accepts the legacy theme and prompt. metadata.lyrics_model defaults to default and metadata.enable_thinking defaults to false.

Language control

The endpoint has no separate language request field. The lyrics language is decided by the content of instruction; style can only play a supporting role.

To generate Chinese lyrics, state the target language explicitly in instruction, for example:

{
  "model": "suno-v6",
  "instruction": "请用中文写歌词,主题是夏夜海边重逢",
  "style": "Mandopop, 中文流行"
}

You can also write "Write the lyrics in Chinese about ...". To generate English lyrics, write "请用英文写歌词" or "Write the lyrics in English". If you pass only an English theme without stating the target language, the result may be English.

Request example

curl -X POST https://www.suno-api.io/api/lyrics/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "instruction": "An English lyric about the graduation season and starting over",
    "style": "pop rock, sincere, memorable chorus",
    "title": "Starting over",
    "metadata": {
      "lyrics_model": "default",
      "enable_thinking": false
    }
  }'

Response

{
  "code": 200,
  "message": "success",
  "data": {
    "lyrics": "[Verse]\nWind across the playground\nWe wave goodbye to yesterday",
    "edited_lyrics": "[Verse]\nWind across the playground\nWe wave goodbye to yesterday",
    "lyrics_id": "lyrics_id",
    "lyrics_request_id": "lyrics_request_id"
  }
}

edited_lyrics is the complete lyric that should be written into the lyrics box. lyrics_id and lyrics_request_id are for tracing and may be empty depending on what the endpoint returns; do not treat them as song IDs.

Compatibility notes

NextVoice clone and generate-with-voice API (not recommended)

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