Get lyrics for any song as JSON, LRC or plain text.
No API key is needed on this server. Just start making requests.
Look up lyrics by title and artist:
https://spolyrc-spotui.root.sx/lyrics?title=505&artist=Arctic%20Monkeys
Want synced lyrics as an LRC file?
https://spolyrc-spotui.root.sx/lyrics?title=505&artist=Arctic%20Monkeys&format=lrc
Using curl:
curl "https://spolyrc-spotui.root.sx/lyrics?title=505&artist=Arctic%20Monkeys"
All parameters go in the query string.
| Parameter | Required | What it does |
|---|---|---|
title | yes | Song title, up to 200 characters. |
artist | yes | Artist name, up to 200 characters. |
album | no | Album title. Helps pick the right version. |
duration | no | Song length in seconds (e.g. 253). Helps match the right version. |
spotify_id | no | Spotify track URI, e.g. spotify:track:<22 chars>. Most precise match. |
format | no | json (default), lrc for synced lyrics as an LRC file, or text for plain lyrics. |
karaoke | no | Set to true to include word-level timings in the JSON. Default false. |
The default JSON response looks like this:
{
"title": "505",
"artist": "Arctic Monkeys",
"album": "Favourite Worst Nightmare",
"instrumental": false,
"synced": [ { "text": "I'm going back to 505", "start_ms": 12980 } ],
"unsynced": "plain lyrics text or null"
}
| Field | Meaning |
|---|---|
synced | Lyrics with a timestamp per line (milliseconds from the start). null if not available. |
unsynced | Plain lyrics without timings. null if not available. |
karaoke | Word-level timings. Only included when you pass karaoke=true. |
instrumental | true if the track has no vocals. |
Structured lyrics with timings. Best for building apps or syncing lyrics to playback.
Add format=lrc to get a plain-text LRC file (one line per lyric, prefixed with [mm:ss.xx]). Save it as a .lrc file for most music players.
Add format=text to get just the lyrics, no timings, no JSON.
If something goes wrong you get a JSON body like {"detail": "message"}.
| Status | What it means |
|---|---|
404 | Song not found, or the format you asked for isn't available for it. |
422 | A required parameter is missing or invalid. |
429 | Too many requests. Wait for the time in the Retry-After header. |
451 | Lyrics for this song can't be shown for licensing reasons. |
502 | The lyrics service is temporarily unavailable. Try again later. |
503 | Temporary outage upstream. Wait and retry. |
You can make up to 60 requests per minute. Once a song has been looked up, later requests for it are served instantly from storage.