Lyrics & Music API

This API provides deep and powerful tools for searching lyrics, artists or albums. Unlike other APIs it can also search by lyrics and does not need separate artist and song name entries.

get
Get lyrics

https://api.ksoft.si/lyrics/search
Searches for lyrics and returns a list of results.
Request
Response
Headers
Authorization
required
string
Authentication token
Query Parameters
q
required
string
Search query.
text_only
optional
boolean
Default: false, if set to 'true' then it only searches inside the lyrcis.
limit
optional
integer
Default: 10, how many results should the endpoint return.
200: OK
List of tracks
{
"total": 2915,
"took": 18,
"data": [
{
"artist": "Eddy Grant",
"artist_id": 26147, // artist ID, use in other endpoints
"album": "Killer On The Rampage", //comma separated list of album names
"album_ids": "81582", // comma separated list of IDs
"album_year": "1982", // comma separated list of release years
"name": "Electric Avenue",
"lyrics": "Boy! \nBoy!\n\nNow in the street, there is violence\nAnd-and a lots of work to be done\nNo place to hang out our washing\nAnd-and I can't blame all on the sun\n\nOh no, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\nOh, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nWorkin' so hard like a soldier\nCan't afford a thing on TV\nDeep in my heart, I abhor ya\nCan't get food for the kid\n\nGood God, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\nHo, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nOh, no\nOh, no\nOh, no\nOh, no\n\nOh God, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\nHo, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nWho is to blame in one country?\nNever can get to the one\nDealin' in multiplication\nAnd they still can't feed everyone\n\nOh no, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\nHo no, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nHo, out in the street\nOut in the street\nOut in the daytime\nOut in the night\n\nOh, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\nHo, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nOut in the street\nOut in the street\nOut in the playground\nIn the dark side of town\n\nHo, we gonna rock down to Electric Avenue\nAnd then we'll take it higher\nHey, we gonna rock down to Electric Avenue\nOh yeah (And then we'll take it higher)\n\nRock it in the daytime (We gonna rock down to Electric Avenue)\nRock it in the night (And then we'll take it higher, Electric Avenue)\nRock it in my ya-tee-pa-bombay (We gonna rock down to Electric Avenue)\nWhoa, in the Brixton, yeah (And then we'll take it higher, Electric Avenue)",
"search_str": "Eddy Grant Electric Avenue", // full title
"id": "628942", // song ID
"search_score": 19.05777 // how sure is the search that this is the right song
},
{
"artist": "Powerman 5000",
"artist_id": 61632,
"album": "Copies Clones & Replicants",
"album_ids": "186386",
"album_year": "2011",
"name": "Electric Avenue",
"lyrics": "We gonna rock down to Electric Avenue\nAnd then we'll take it higher\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nDown in the street there is violence\nAnd a lots of work to be done\nNo place to hang out our washing\nAnd I can't blame all on the sun, oh no\n\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nWorkin' so hard like a soldier\nCan't afford a thing on TV\nDeep in my heart I'm a warrior\nCan't get food for them kid, oh no\n\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nOh no\nOh no\nOh no\nOh no\nOh no\n\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nWho is to blame in one country\nNever can get to the one\nDealin' in multiplication\nAnd they still can't feed everyone, oh no\n\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nOut in the street\nOut in the street\nOut in the playground\nIn the dark side of town\n\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\n\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher\nWe gonna rock down to Electric Avenue\nAnd then we'll take it higher...",
"search_str": "Powerman 5000 Electric Avenue",
"id": "1422100",
"search_score": 19.05776
}
]
}
404: Not Found
Empty list
{
"total": 0,
"took": 32,
"data": []
}

post
Music Recommendations

https://api.ksoft.si/music/recommendations
Retrieves music recommendations based on tracks user inputs. POST Request in JSON format only.
Request
Response
Headers
Authorization
required
string
Authentication token
Body Parameters
tracks
required
array
List of tracks. Can be a JSON list or new line separated string or comma separated string. For content reference see the provider parameter.
provider
required
string
Format in which you'll provide tracks. Can be: - youtube - For list of YouTube links - youtube_ids - For list of YouTube video IDs - spotify - For list of Spotify IDs (fastest)
200: OK
Returns 20 recommendations based on the input. Response has been shortened.
{
"provider": "youtube_ids",
"total": 20,
"tracks": [
{
"youtube": {
"id": "dClJ5j0sm5c",
"link": "https://www.youtube.com/watch?v=dClJ5j0sm5c",
"title": "Fakear - Neptune",
"thumbnail": "https://i.ytimg.com/vi/dClJ5j0sm5c/mqdefault.jpg",
"description": "Fakear - Sauvage EP Vinyl/Stream/Download: https://Nowadays.lnk.to/Fakear-Sauvage Follow Fakear: http://www.facebook.com/fakear ..."
},
"spotify": {
"id": "5eXQ1TwlcoKp5znwG1XfWg",
"album": {
"name": "Sauvage",
"album_art": "https://i.scdn.co/image/98209f1f47fd70c7dbb4509926dafdf37398de2f",
"link": "https://open.spotify.com/album/6qmbzitgyDQXnF74bHrCPZ"
},
"artists": [
{
"name": "Fakear",
"link": "https://open.spotify.com/artist/4eFImh8D3F15dtZk0JQlpT"
}
],
"name": "Neptune",
"link": "https://open.spotify.com/track/5eXQ1TwlcoKp5znwG1XfWg"
},
"name": "Fakear - Neptune"
},
{
"youtube": {
"id": "rTckmTrpgAM",
"link": "https://www.youtube.com/watch?v=rTckmTrpgAM",
"title": "Dooz Kawa - Le Bétail",
"thumbnail": "https://i.ytimg.com/vi/rTckmTrpgAM/mqdefault.jpg",
"description": "Message Aux Anges Noirs (2012) 3rd Lab http://cd1d.com/fr/album/message-aux-anges-noirs."
},
"spotify": {
"id": "3dQCaXsHDRua98UQ4Nj76J",
"album": {
"name": "Message aux anges noirs",
"album_art": "https://i.scdn.co/image/ac7da1c5cdb07ea23b7214279bdd66ecf1064e64",
"link": "https://open.spotify.com/album/1y6AstygSoD838A5owhjsu"
},
"artists": [
{
"name": "Dooz Kawa",
"link": "https://open.spotify.com/artist/4z8LvfxawVZLoLR1KTUzQL"
}
],
"name": "Le bétail",
"link": "https://open.spotify.com/track/3dQCaXsHDRua98UQ4Nj76J"
},
"name": "Dooz Kawa - Le bétail"
},
...
]
}

get
Get artist by ID

https://api.ksoft.si/lyrics/artist/{id}/
Retrieves all albums and songs by that artist.
Request
Response
Path Parameters
id
required
integer
Artist ID, you can get it from the lyrics search
Headers
Authorization
required
string
Authentication token
200: OK
{
"id": 28333,
"name": "Eurythmics",
"albums": [
{
"id": 88305,
"name": "Other Songs",
"year": 1970
},
{
"id": 88287,
"name": "Ultimate Collection",
"year": 2005
},
{...}
],
"tracks": [
{
"id": 680890,
"name": "Revenge 2"
},
{
"id": 680879,
"name": "My Guy"
},
{...}
]
}
404: Not Found
{
"code": 404,
"error": true,
"message": "not found"
}

get
Get album by ID

https://api.ksoft.si/lyrics/album/{id}/
Retrieves artist name and all tracks in the album.
Request
Response
Path Parameters
id
required
integer
Album ID, you can get it from the lyrics search
Headers
Authorization
required
string
Authentication token
200: OK
{
"id": 88287,
"name": "Ultimate Collection",
"year": 2005,
"artist": {
"id": 28333,
"name": "Eurythmics"
},
"tracks": [
{
"id": 680840,
"name": "Was It Just Another Love Affair?"
},
{
"id": 680639,
"name": "I Saved The World Today"
},
{...}
]
}
404: Not Found
{
"code": 404,
"error": true,
"message": "not found"
}

get
Get track by ID

https://api.ksoft.si/lyrics/track/{id}/
Get info about a song.
Request
Response
Path Parameters
id
required
integer
Track ID, you can get it from artist by id, album by id or lyrics search endpoints
Headers
Authorization
required
string
Authentication token
200: OK
{
"name": "Would I Lie To You?",
"artist": {
"id": 28333,
"name": "Eurythmics"
},
"albums": [
{
"id": 88252,
"name": "Greatest Hits",
"year": 1991
},
{
"id": 88287,
"name": "Ultimate Collection",
"year": 2005
},
{...}
],
"lyrics": "Would I lie to you?\nWould I lie to you honey?\nNow would I say something that wasn't true?\nI'm asking you sugar\nWould I lie to you?\n\nMy friends - know what's in store.\nI won't be here anymore.\nI've packed my bags\nI've cleaned the floor.\nWatch me walkin'.\nWalkin' out the door.\n\nBelieve me - I'll make it make it\nBelieve me - I'll make it make it\n\nWould I lie to you?\nWould I lie to you honey?\nNow would I say something that wasn't true?\nI'm asking you sugar\nWould I lie to you?\n\nTell you straight - no intervention.\nTo your face - no deception.\nYou're the biggest fake.\nThat much is true.\nHad all I can take.\nNow I'm leaving you\n\nBelieve me - I'll make it make it\nBelieve me - I'll make it make it\n\nWould I lie to you?\nWould I lie to you honey?\nNow would I say something that wasn't true?\nI'm asking you sugar\nWould I lie to you?\n\nWould I lie to you?\nWould I lie to you honey?\nNow would I say something that wasn't true?\nI'm asking you sugar\nWould I lie to you?\n\nMy friends - know what's in store.\nI won't be here anymore.\nI've packed my bags\nI've cleaned the floor.\nWatch me walkin'.\nWalkin' out the door.\n\nBelieve me - I'll make it make it\nBelieve me - I'll make it make it\n\nWould I lie to you?"
}
404: Not Found
{
"code": 404,
"error": true,
"message": "not found"
}