What does the Musixmatch API do?

The Musixmatch API allows you to read objects from our huge 100% licensed lyrics database.

Note: all these methods require authentication.

To make your life easier we are providing you with one or more examples to show you how it could work in the wild. You’ll find both the API request and API response in all the available output formats for each API call.

Supported input parameters can be found in the input parameters section. Use UTF-8 to encode arguments when calling API methods.

Also, every response includes a status_code. A list of all status codes can be consulted below in the status codes section.

Do you have an idea or suggestion for an API call that you don’t see here?
Write us at sales@musixmatch.com and we’ll do our best to respond!

Input parameters

Use UTF-8 to encode arguments. These are the supported input parameters:

Authentication

NameDescription
apikeyYour personal api key, you must use it in every api call. You can pass this parameter as GET parameter in your api call, like track.get?apikey=xxxx.

Objects

NameDescription
track_idMusixmatch track id.
artist_idMusixmatch artist id.
album_idMusixmatch album id.
commontrack_idMusixmatch commontrack id.

Querying

NameDescription
q_trackSearch for a text string among song titles.
q_artistSearch for a text string among artist names.
q_lyricsSearch for a text string among lyrics.
qSearch for a text string among song titles, artist names and lyrics.

Filtering

NameDescription
f_has_lyricsFilter by objects with available lyrics.
f_is_instrumentalFilter instrumental songs.
f_has_subtitleFilter by objects with available subtitles.
f_music_genre_idFilter by objects with a specific music category.
f_subtitle_lengthFilter subtitles by a given duration in seconds.
f_subtitle_length_max_deviationApply a deviation to a given subtitle duration (in seconds).
f_lyrics_languageFilter the tracks by lyrics language.
f_artist_idFilter by objects with a given Musixmatch artist_id.

Grouping

NameDescription
g_commontrackGroup a track result set by commontrack_id.

Sorting

NameDescription
s_track_ratingSort the results by our popularity index for tracks, possible values are ASC / DESC.
s_track_release_dateSort the results by track release date, possible values are ASC / DESC.
s_artist_ratingSort the results by our popularity index for artists, possible values are ASC / DESC.

Result set pagination

NameDescription
pageRequest specific result page (default=1).
page_sizeSpecify number of items per result page (default=10, range is 1 to 100).

Output format

NameDescription
subtitle_formatDesired output format for the subtitle body. Possible values LRC / DFXP / STLEDU. Default to LRC.

Localization

NameDescription
countryThe country code of the desired country.

Status codes

All responses include a status code indicating whether a request was successful or not.

Successful responses have a status code 200; failed requests may have different status code providing you an indication of the problem.

CodeDescription
200The request was successful.
400The request had bad syntax or was inherently impossible to be satisfied.
401Authentication failed, probably because of invalid/missing API key.
402The usage limit has been reached, either you exceeded per day requests limits or your balance is insufficient.
403You are not authorized to perform this operation.
404The requested resource was not found.
405The requested method was not found.
500Ops. Something were wrong.
503Our system is a bit busy at the moment and your request can’t be satisfied.