Tools

Lyrics

Line-synced lyrics for the Spotify catalogue, serialized four ways. Type a title to search, or paste a track ID or URL to fetch one directly — the page states which endpoint it used either way.

Try

GET /search_lyrics?q=…&format=json

What the endpoint returns

Every line carries a startTimeMs, so the active lyric can be highlighted in real time as a track plays. The same lyrics are available in four serializations, so they can be dropped into a karaoke app, a subtitle pipeline, a lyric overlay or an NLP workflow without writing a parser.

A track with no lyrics answers HTTP 200 with error: true — not a 4xx — so the flag has to be read rather than caught.

JSON

default

lines[] at the top level, each with startTimeMs (a string) and words. Best for custom UIs and analytics.

{
  "error": false,
  "syncType": "LINE_SYNCED",
  "lines": [
    { "startTimeMs": "13570", "words": "Yeah" }
  ]
}

LRC

lines[] with a ready-made timeTag. Join them to get a karaoke file VLC or foobar2000 will read.

{
  "lines": [
    { "timeTag": "00:13.57", "words": "Yeah" }
  ]
}

SRT

lines[] with index, startTime and endTime. Serialize to blocks for FFmpeg, Premiere or a YouTube upload.

{
  "lines": [
    {
      "index": 1,
      "startTime": "00:00:13,570",
      "endTime": "00:00:16,960",
      "words": "Yeah"
    }
  ]
}

RAW

A single lyrics string, newline separated, no timings. Ideal for search indexes and NLP pipelines.

{
  "lyrics": "Yeah\n♪\nI've been tryna call"
}

Three lyrics endpoints

One for a known track id, one that resolves a title first, one for a batch — the same four formats on each.

No cookie, no login

The official Spotify Web API has never had a public lyrics endpoint. The open-source fetchers that fill the gap (spotify-lyrics-api and its forks) work by copying an sp_dc session cookie out of a logged-in browser, which expires, ties every request to one personal account and breaks when the cookie is rotated.

Here the credential is one API key in a header, the same key that opens the other 108 endpoints. No Spotify account is involved on your side, nothing expires mid-session, and the response still reports syncType: "LINE_SYNCED" when the lines are timed.

Use cases

Subtitle apps

Generate SRT subtitles for music videos and lyric reels.

Karaoke games

Drive real-time lyric highlighting and line-by-line scoring.

Music education

Teach pronunciation, prosody and song structure with synced text.

Sentiment analysis

Run NLP and emotion classifiers over full lyric corpora.

Fan sites

Embed accurate, attributed lyrics on artist and song pages.

Transcript bootstrapping

Seed transcripts for music podcasts and DJ-set show notes.

FAQ

Does the official Spotify API have a lyrics endpoint?

No — the Web API has never exposed one publicly. This API serves line-synced lyrics for the Spotify catalogue through /track_lyrics, /search_lyrics and /track_lyrics_batch with a single API key; no sp_dc cookie and no Spotify login on your side.

Are the lyrics time-synchronized?

Yes, per line. JSON gives you startTimeMs in milliseconds; LRC and SRT give you the same instants pre-formatted for their file format. syncType reports LINE_SYNCED when they are.

Are they word-synced?

No. Timing is per line, which is what karaoke players and subtitle formats use. Word-level timestamps are not part of the response.

Which format should I use?

JSON for a custom UI, LRC for karaoke players, SRT for video subtitles, RAW for search indexing and NLP.

How do I get a track ID?

It is the last segment of a Spotify track URL, or the id field on any search result. This page also accepts the whole URL and pulls the id out for you.

What happens when a track has no lyrics?

The response is HTTP 200 with error: true and a message. It is not a 404 and it does not throw, so client code has to read the flag rather than rely on a try/catch.

Is there a batch endpoint?

Yes. /track_lyrics_batch?ids=id1,id2,id3 takes a comma-separated list, which is the efficient way to warm a cache.

Ship lyrics in production

An API key takes under a minute. Free tier, no card.

Get your API key