Overview
Suno AI provides a powerful lyrics generation capability that creates high-quality song lyrics from text descriptions. Using Suno’s API, you can generate original lyrics for any musical style, theme, or mood by simply describing what you want in natural language.
Related Guides: Suno Official Documentation | Lyrics Generation Guide
This endpoint allows you to submit lyrics generation tasks using simple text prompts. The generation is processed asynchronously - you’ll receive a task ID immediately, which you can use to check the status and retrieve the generated lyrics once complete.
Authentication
This endpoint requires authentication using a Bearer token.
Authorization
string
default: "sk-***********"
required
Your API key in the format: Bearer YOUR_API_KEY
Request Body
Description of the lyrics you want to generate. Provide detailed information about the theme, mood, style, and any specific elements you want included in the lyrics.
Request Example
cURL
cURL - Love Song
cURL - Epic Battle Theme
Python
JavaScript
Go
curl --location 'https://gptproto.com/v1/suno/submit/lyrics' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "Write lyrics about a sunrise over the ocean with a hopeful tone"
}'
Response
Successful response {
"code" : "success" ,
"data" : "a8f3d9e2-4b7c-41a8-9f2e-6d5c8e1a7b9f" ,
"message" : ""
}
Status code indicating success or error ("success" or "error")
Task ID for tracking the lyrics generation progress. Use this ID with the Query Task Status endpoint to check completion and retrieve the generated lyrics. Error message if code is "error", empty string if successful
Error Responses
400 - Invalid prompt
401 - Invalid API key
403 - Insufficient balance
429 - Rate limit exceeded
500 - Internal server error
503 - Content policy violation
{
"code" : "error" ,
"data" : null ,
"message" : "Invalid prompt: prompt cannot be empty"
}
Next Steps
After successfully submitting a lyrics generation task, you’ll receive a task ID. Use this ID to:
Check Task Status - Query the Task Status endpoint to monitor progress
Retrieve Generated Lyrics - Once completed, get the lyrics content from the task status response
Use with Music Generation - Combine the generated lyrics with the Text to Audio endpoint to create complete songs
Example Workflow
import requests
import time
# Step 1: Submit lyrics generation task
submit_url = "https://gptproto.com/v1/suno/submit/lyrics"
headers = {
"Authorization" : "Bearer YOUR_API_KEY" ,
"Content-Type" : "application/json"
}
submit_data = {
"prompt" : "Write lyrics about overcoming challenges with themes of resilience and hope"
}
response = requests.post(submit_url, headers = headers, json = submit_data)
result = response.json()
if result[ "code" ] == "success" :
task_id = result[ "data" ]
print ( f "Task submitted: { task_id } " )
# Step 2: Poll for completion
query_url = f "https://gptproto.com/v1/suno/fetch/ { task_id } "
while True :
time.sleep( 5 ) # Wait 5 seconds between checks
query_response = requests.get(query_url, headers = headers)
query_result = query_response.json()
if query_result[ "code" ] == "success" and query_result[ "data" ]:
task = query_result[ "data" ][ 0 ]
if task[ "status" ] == "completed" :
print ( f "Lyrics generated successfully!" )
print ( f " \n Lyrics: \n { task[ 'lyrics' ] } " )
# Step 3: Optionally use lyrics for music generation
music_url = "https://gptproto.com/v1/suno/submit/music"
music_data = {
"prompt" : task[ 'lyrics' ],
"tags" : "inspirational,uplifting,emotional" ,
"mv" : "chirp-v3-5"
}
music_response = requests.post(music_url, headers = headers, json = music_data)
print ( f " \n Music generation started: { music_response.json() } " )
break
elif task[ "status" ] == "failed" :
print ( f "Generation failed: { task.get( 'error_message' , 'Unknown error' ) } " )
break
else :
print ( f "Status: { task[ 'status' ] } ..." )
Best Practices
Writing Effective Prompts
For best results:
Be Specific : Clearly describe the theme, mood, and style you want
Include Context : Mention the genre, intended use, or target audience
Specify Tone : Describe the emotional tone (e.g., hopeful, melancholic, energetic)
Add Details : Include specific imagery, metaphors, or concepts you want
Define Structure : Mention if you want verses, chorus, bridge, etc.
Set Language Style : Specify if you want poetic, conversational, or narrative style
Example Prompts
"Write romantic lyrics about falling in love under the stars, with poetic and emotional language suitable for a slow ballad"
"Create uplifting lyrics about chasing dreams and never giving up, with motivational themes for a pop-rock anthem"
"Generate melancholic lyrics about lost love and memories, using metaphors of rain and autumn for an indie folk song"
"Write energetic rap lyrics about success and overcoming obstacles, with strong rhythm and confident wordplay"
"Create nostalgic lyrics about childhood summers and friendship, with vivid imagery for an acoustic folk song"
Prompt Templates by Genre
Genre Prompt Template Example Pop ”Write lyrics about with language for a pop song" "Write upbeat lyrics about summer romance with catchy, relatable language for a pop song” Rock ”Create lyrics about with for a rock song" "Create powerful lyrics about rebellion with urban imagery for an alternative rock song” R&B/Soul ”Generate lyrics about with phrasing for an R&B track" "Generate passionate lyrics about desire with smooth, sensual phrasing for an R&B track” Hip-Hop ”Write rap lyrics about with and " "Write confident rap lyrics about ambition with clever wordplay and strong flow” Country ”Create lyrics about with for a country song" "Create heartfelt lyrics about small-town life with storytelling elements for a country song” Folk ”Write lyrics about with and narrative style" "Write introspective lyrics about nature with vivid imagery and narrative style”
Use Cases
1. Songwriting Assistance
Generate lyrics as a starting point or inspiration for original songs:
data = {
"prompt" : "Write introspective lyrics about finding yourself after a major life change, with themes of growth and self-discovery"
}
2. Music Production
Create lyrics for instrumental tracks or production projects:
data = {
"prompt" : "Generate energetic club lyrics about dancing and celebration with repetitive hooks perfect for electronic music"
}
3. Content Creation
Generate lyrics for videos, podcasts, or multimedia projects:
data = {
"prompt" : "Write inspiring lyrics about innovation and technology for a corporate video soundtrack"
}
4. Educational Purposes
Create example lyrics for teaching songwriting or music theory:
data = {
"prompt" : "Write simple, clear lyrics about friendship using AABB rhyme scheme suitable for beginner songwriters"
}
5. Creative Exploration
Experiment with different styles and themes:
data = {
"prompt" : "Create surreal, abstract lyrics mixing dreams and reality with unconventional imagery for an experimental art piece"
}
Lyrics Structure Tips
Common Song Structures:
Verse-Chorus-Verse-Chorus-Bridge-Chorus (Most common pop structure)
AABA (Traditional song form)
Verse-Chorus (Simple, repetitive structure)
Free Form (No fixed structure, common in rap/spoken word)
You can specify your desired structure in the prompt:
“Write lyrics with 2 verses, a catchy chorus, and a bridge about “
Integration with Music Generation
Once you have generated lyrics, you can use them to create full songs:
# Step 1: Generate lyrics
lyrics_response = requests.post(
"https://gptproto.com/v1/suno/submit/lyrics" ,
headers = headers,
json = { "prompt" : "Write uplifting lyrics about new beginnings" }
)
lyrics_task_id = lyrics_response.json()[ "data" ]
# Wait for lyrics completion...
# (polling code here)
# Step 2: Use lyrics for music generation
music_response = requests.post(
"https://gptproto.com/v1/suno/submit/music" ,
headers = headers,
json = {
"prompt" : generated_lyrics, # Use the generated lyrics
"tags" : "pop,uplifting,inspirational" ,
"title" : "New Dawn" ,
"mv" : "chirp-v3-5"
}
)
Official Resources
Suno AI Documentation
GPT Proto Resources
Additional Resources