Skip to main content
POST
Generate song from lyrics and reference audio

Overview

The Song Generator API lets you create complete, production-quality songs by combining your lyrics with a reference audio file that defines the style, mood, and instrumentation. You can also skip writing lyrics entirely and let the model generate them automatically from a prompt.
1

Write your lyrics and style

Provide your lyrics directly or enable auto-generation with a prompt. Supply a caption describing the musical style : genre, instruments, vocal type, and mood.
2

Configure audio and duration

Optionally attach a reference audio via init_audio to influence the style further. Set the duration between 30 and 480 seconds.
3

Receive your song

The API returns a hosted audio URL once generation is complete, or fires a webhook to your endpoint if provided.

Request

Make a POST request to the endpoint below and pass the required parameters as a JSON body.
curl

Body Parameters

string
required
Your API key.
boolean
default:"false"
Set to true to auto-generate lyrics from prompt. When false, provide lyrics directly.
string
Song lyrics with section tags like [Verse 1], [Chorus], [Bridge]. Required if lyrics_generation is false.
string
Topic or description for auto lyrics generation. Required if lyrics_generation is true.
string
Musical style descriptor : genre, instruments, vocal type, tempo, mood. E.g. "female vocal, pop, piano, slow, emotional".
string
URL to a reference audio file (MP3/WAV) to influence the song’s style.
integer
Song length in seconds. Range: 30–480 (0.5–8 minutes).
string
Language code for lyrics and vocals. Defaults to auto-detection. See table below.
boolean
default:"false"
Set to true to generate a vocals-free instrumental track.
string
URL to receive a POST callback when generation completes.
integer
Custom ID sent with the webhook payload for request correlation.

Example Requests

  • Song duration must be between 30 and 480 seconds (0.5–8 minutes)
  • If you don’t have lyrics, set lyrics_generation: true and provide a prompt and caption instead
  • Set instrumental: true to generate a vocals-free track
  • 50+ languages are supported : see the table below
With manual lyrics (lyrics_generation: false)
json
With auto lyrics generation (lyrics_generation: true)
json

Supported Languages

Body

application/json
lyrics_generation
enum<boolean>
required

Pass true to generate lyrics automatically

Available options:
true
key
string
required

API key for authentication

prompt
string
required

Topic for lyrics generation. Required if lyrics_generation is true

caption
string | null
required

Caption for the song describe styles, female or male voice or loops and more.

lyrics
string

Lyrics in LRC format (timestamp + lyrics). Required if lyrics_generation is false

init_audio
string<uri>

URL to reference audio file to influence style

duration
integer | null

Duration of the generated song in seconds (30-480 seconds / 0.5-8 minutes)

language
enum<string> | null

Language for the generated song

Available options:
ar,
az,
bg,
bn,
ca,
cs,
da,
de,
el,
en,
es,
fa,
fi,
fr,
he,
hi,
hr,
ht,
hu,
id,
is,
it,
ja,
ko,
la,
lt,
ms,
ne,
nl,
no,
pa,
pl,
pt,
ro,
ru,
sa,
sk,
sr,
sv,
sw,
ta,
te,
th,
tl,
tr,
uk,
ur,
vi,
yue,
zh,
null
instrumental
boolean | null

Whether to generate an instrumental version without vocals

webhook
string<uri>

URL to receive POST notification upon completion

track_id
integer

ID for webhook identification

Response

Song generation response

status
enum<string>

Status of the voice generation

Available options:
success,
processing,
error
generationTime
number

Time taken to generate the audio in seconds

id
integer

Unique identifier for the voice generation

output
string<uri>[]

Array of generated audio URLs

Array of proxy audio URLs

Array of future audio URLs for queued requests

Array of audio URLs (voice cover response)

meta
object

Metadata about the audio generation including all parameters used

eta
integer

Estimated time for completion in seconds (processing status)

message
string

Status message or additional information

tip
string

Additional information or tips for the user

fetch_result
string<uri>

URL to fetch the result when processing

audio_time
number

Duration of the generated audio in seconds