/v2/timestamped-lyricsPOST /v2/timestamped-lyrics
Retrieve word-level lyric timestamps, waveform data, and alignment insights for a generated track.
https://udioapi.pro/api/v2/timestamped-lyricstips
Call this endpoint once a generation task completes so you can pair finished audio with perfectly timed lyrics in your player UI.
Key Identifiers
audio_id: Returned by the /v2/feed polling API or the webhook callback. Each generation typically yields two audio assets—pass the specificidyou want timing data for.task_id: The generation request identifier (a.k.aworkId) returned by /v2/generate or /v2/extend. It anchors the lyric alignment job.
Tip: cache the timing payload alongside your audio file so subsequent playbacks feel instant.
requestHeaders
| name | required | description |
|---|---|---|
nameAuthorization | requiredyes | descriptionBearer token containing the user's API key. Format: "Bearer YOUR_API_KEY". |
nameContent-Type | requiredyes | descriptionapplication/json |
requestBody
Provide both identifiers so the service can locate the precise audio asset and its generation context.
commonParams
| paramName | paramType | required | description | example |
|---|---|---|---|---|
paramNameaudio_id | paramTypestring | requiredyes | descriptionThe audio asset ID obtained from /v2/feed or the callback payload. Identifies which song (of the pair) to align. | examplefc490335-ad97-4444-ac64-0fb21c0d4308 |
paramNametask_id | paramTypestring | requiredyes | descriptionGeneration task identifier (workId/data.task_id) returned by /v2/generate or /v2/extend. | examplegen2b9bb36e6c0cc44567aa34fbcff3afa64bksv |
Response payload
Use these tables to inspect the structure returned after a successful or failed timestamped lyrics request.
Top-level envelope
Standard wrapper letting you catch transport-level issues while keeping the payload predictable.
| field | paramType | description | example |
|---|---|---|---|
fieldcode | paramTypenumber | descriptionApplication-level status indicator. 200 means the alignment job succeeded. | example200 |
fieldmessage | paramTypestring | descriptionHuman-readable status string accompanying the code. | examplesuccess |
fielddata | paramTypeobject | descriptionContainer holding lyric alignment metrics and waveform data for the requested audio. | example |
data fields
Use these fields to build lyric karaoke views, waveform scrubbing, or downstream analytics.
| field | paramType | description | example |
|---|---|---|---|
fielddata.lyricAlignment | paramTypeobject | descriptionAlignment payload mapping lyrics back to precise audio timings. | example |
fielddata.lyricAlignment.words | paramTypeArray<LyricWord> | descriptionOrdered list of lyric fragments (words, markers, or labels) annotated with timing metadata. | example |
fielddata.audioWaveform | paramTypenumber[] | descriptionNormalised amplitude samples that let you render lightweight waveform visualisations without re-analysing audio. | example[0.00006,0,0.0339] |
fielddata.alignmentScore | paramTypenumber | descriptionGlobal accuracy score (lower is better) derived from CER-style metrics. | example0.175 |
fielddata.isStreaming | paramTypeboolean | descriptionFlags whether the audio was streamed live or delivered as a complete file, useful for adjusting UI states. | examplefalse |
LyricWord object
Each entry in data.lyricAlignment.words tracks a single token or segment.
| field | paramType | description | example |
|---|---|---|---|
fieldtext | paramTypestring | descriptionOriginal lyric token or marker, e.g., a sung word or section label like [Verse]. | example[Verse]\nLola |
fieldaligned | paramTypeboolean | descriptionTrue when the token was successfully matched to a time range in the audio. | exampletrue |
fieldstartTime | paramTypenumber | descriptionStart timestamp (seconds) where the lyric becomes audible. | example0.55851 |
fieldendTime | paramTypenumber | descriptionEnd timestamp (seconds) marking when the lyric finishes. | example0.87766 |
fieldconfidence | paramTypenumber | descriptionAlignment confidence score between 0–1. Higher means a more reliable match. | example0.92 |
When aligned is false, you can choose to grey out the lyric or skip highlighting to keep playback feeling polished.
responses
{
"code": 200,
"message": "success",
"data": {
"lyricAlignment": {
"words": [
{
"text": "[Verse]\nLola ",
"aligned": true,
"startTime": 0.55851,
"endTime": 0.87766,
"confidence": 0
},
{
"text": "Chouch, ",
"aligned": true,
"startTime": 0.91755,
"endTime": 1.91489,
"confidence": 0
}
]
},
"audioWaveform": [
0.00006,
0,
0.0339
],
"alignmentScore": 0.175,
"isStreaming": false
}
}codeExamples
curl -X POST "https://udioapi.pro/api/v2/timestamped-lyrics" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_id": "fc490335-ad97-4e08-ac64-0fb91c0d4308",
"task_id": "gen2b9bb36e6c0cc47969aa34fbcff3afa64bksv"
}'