Lyrithm

Lyrics API

Lyrithm

Fetch readable timed lyrics with one request. Send a title, artist, and duration; Lyrithm resolves the best available provider result and returns a clean JSON response.

GET /lyrics curl -H "Authorization: Bearer lyr_..." "https://api.lyrithm.com/lyrics?artist=Twenty%20One%20Pilots&title=Tally&durationMs=213000"

Playground

Idle
curl \
  -H "Authorization: Bearer lyr_your_key" \
  "https://api.lyrithm.com/lyrics?artist=Twenty%20One%20Pilots&title=Tally&durationMs=213000"

Auth

Send your API key as a Bearer token.

Authorization: Bearer lyr_your_key

Endpoint

GET

/lyrics

Readable query names:

curl \
  -H "Authorization: Bearer lyr_your_key" \
  "https://api.lyrithm.com/lyrics?artist=Twenty%20One%20Pilots&title=Tally&durationMs=213000"

Short query aliases:

curl \
  -H "Authorization: Bearer lyr_your_key" \
  "https://api.lyrithm.com/lyrics?a=Twenty%20One%20Pilots&t=Tally&d=213000&g=plain"
Parameter Alias Required
artistaRecommended
titletYes
albumalNo
durationMsdRecommended
granularity=plaing=plainNo

Response

Omitting granularity returns timed lyric tokens with the highest available timing precision. Use granularity=plain or g=plain for plain text.

{
  "data": {
    "title": "Tally",
    "artist": "Twenty One Pilots",
    "album": "Breach: Digital Remains",
    "durationMs": 213000,
    "granularity": "word",
    "lyrics": [
      {
        "text": "...",
        "startMs": 13737,
        "endMs": 13900,
        "index": "0.0"
      }
    ]
  },
  "meta": {
    "cache": "miss"
  }
}

Errors

Errors use a stable JSON shape.

{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or revoked API key.",
    "requestId": "..."
  }
}
Code Meaning
BAD_REQUESTInvalid query, path, or body input.
UNAUTHORIZEDMissing, invalid, or revoked API key.
RATE_LIMITEDThe API key has exceeded its daily quota.
NOT_FOUNDNo matching song or lyrics were found.
PROVIDER_ERRORA lyrics provider failed unexpectedly.