Generate lyrics (free)
June 3, 2026
Table of contents
Generate [Verse]/[Chorus]-structured lyrics from a prompt, without producing audio (no credits burned).
Flow Music has no dedicated lyrics-only model β this endpoint drives the song agent to write lyrics (and a matching
sound_prompt) without generating audio. It reads the agentβs structuredlyrics__createresult, so lyrics come back reliably even when the agentβs chat reply is conversational; a422only happens when the agent produced no lyrics at all. For lyrics bound to an actual track, use POST /music β every generated clip returnsclip.lyrics.
https://api.useapi.net/v1/flowmusic/music/lyrics
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
API tokenis required, see Setup useapi.net for details.
Request Body
{
"prompt": "a nostalgic song about a long road trip home",
"structure": "Verse 1 / Chorus / Verse 2 / Chorus / Bridge / Outro"
}
emailis optional, which configured account to use.promptis required, the song concept. 1β2,000 characters.structureis optional, a free-text section scaffold to shape the layout. β€2,000 characters.
Responses
-
{ "email": "[email protected]", "title": "Road Home", "lyrics": "[Verse 1]\nHighway humming under the wheels\n[Chorus]\nTaking the long way home", "sound_prompt": "Indie folk, warm acoustic guitar, 80 BPM, intimate male vocal", "source": "lyrics-create", "audio_create_song_fired": false, "credits_burned": 0 } -
401 Unauthorized β invalid API token.
-
422 β rare: the agent produced no lyrics at all (no structured result and no tagged text block). Retry, or use POST /music and read
clip.lyrics.{ "email": "[email protected]", "error": { "code": "no_lyrics", "message": "..." }, "agent_text": "..." } -
596 Account Error
The account targeted by
emailis in an error state and canβt be used β re-add it via POST /accounts. Theerrorfield returns whatever reason was recorded for the account.{ "error": "Account [email protected] in error state: refresh token rejected", "code": 596 }
Model
{
email: string
title: string | null
lyrics: string // [Verse]/[Chorus]-tagged
sound_prompt: string | null // a matching style/production prompt, when the agent wrote one
source: string // 'lyrics-create' (agent's structured result) | 'text-part-fallback'
audio_create_song_fired: boolean // true only if the agent also kicked off a render (normally false)
credits_burned: number | null // 0 (free); null if a song render unexpectedly fired
}
Examples
-
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -X POST "https://api.useapi.net/v1/flowmusic/music/lyrics" \ -d '{ "prompt": "a nostalgic song about a long road trip home" }' -
import requests response = requests.post( 'https://api.useapi.net/v1/flowmusic/music/lyrics', headers={'Authorization': 'Bearer YOUR_API_TOKEN'}, json={'prompt': 'a nostalgic song about a long road trip home'} ) print(response.status_code, response.json())