Tracks · GET
Track lyrics
GET /track_lyrics
About
Track lyrics is a GET endpoint in the Tracks group of the Spotify Data API. It takes 3 parameters: id (required), plus format and vocalRemoval (optional). The recorded sample response, captured 2025-06-07, is a JSON object with 3 top-level keys: lyrics, colors and hasVocalRemoval.
Parameters 3
- id Required
- In
- query
- Default
- —
- format Optional
- In
- query
- Default
- json
- vocalRemoval Optional
- In
- query
- Default
- false
Request
Against https://spotify-proxy.checkleaked.cc, with the same example values the Run button sends.
| curl -X GET \ |
| "https://spotify-proxy.checkleaked.cc/track_lyrics?id=7qiZfU4dY1lWllzX7mPBI3&format=json&vocalRemoval=false" \ |
| -H "x-api-key: $SPOTIFY_API_KEY" |
Sample response
Recorded sample · captured 2025-06-07
| { |
| "lyrics": { |
| "syncType": "LINE_SYNCED", |
| "lines": [ |
| { |
| "startTimeMs": "13230", |
| "words": "Yeah", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "15410", |
| "words": "♪", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "27020", |
| "words": "I've been tryna call", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "29680", |
| "words": "I've been on my own for long enough", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "32580", |
| "words": "Maybe you can show me how to love, maybe", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "37950", |
| "words": "I'm goin' through withdrawals", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "40860", |
| "words": "You don't even have to do too much", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "43660", |
| "words": "You can turn me on with just a touch, baby", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "49250", |
| "words": "I look around and", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "50500", |
| "words": "Sin City's cold and empty (oh)", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "53470", |
| "words": "No one's around to judge me (oh)", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "56110", |
| "words": "I can't see clearly when you're gone", |
| "syllables": [], |
| "endTimeMs": "0" |
| }, |
| { |
| "startTimeMs": "60680", |
| "words": "I said, ooh, I'm blinded by the lights", |
| "syllables": [], |
The first 80 of 294 lines. Press Run for the full body.
Response fields
Read off the recorded sample, not a schema: a JSON object with 3 top-level keys, and one level below each key.
lyricsobjectlyrics.syncTypestringlyrics.linesarray of 40 objectslyrics.providerstringlyrics.providerLyricsIdstringlyrics.providerDisplayNamestringlyrics.syncLyricsUristringlyrics.isDenseTypefacebooleanlyrics.alternativesempty arraylyrics.languagestringlyrics.isRtlLanguagebooleanlyrics.capStatusstringlyrics.previewLinesarray of 5 objectscolorsobjectcolors.backgroundnumbercolors.textnumbercolors.highlightTextnumberhasVocalRemovalboolean
Errors
- 400
- “id” is required — a request that omits it, or sends a value of the wrong type, is rejected before it reaches Spotify.
- 404
- No Spotify item exists for the “id” that was sent. Spotify ids are 22 characters of base62, so a share link has to be reduced to the id in it first.
- 401 / 403
- The key is missing, wrong, or on a plan that does not include this endpoint. On RapidAPI the header is X-RapidAPI-Key; on the Direct Portal it is an Authorization: Bearer token; on Apify the actor supplies it.
- 429
- Rate limited. The demo on this site allows 100 requests per 15 minutes and 500 per day per visitor, inside a budget shared by every visitor. With a key it is 5 requests per second on every RapidAPI plan and 10 per second on the Direct Portal.
- 5xx
- Spotify itself failed or timed out. These are transient; retry once with a short backoff rather than immediately.
Related endpoints
The other 3 operations in the Tracks group.