@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Musixmatch API
@base https://api.musixmatch.com/ws/1.1
@version 1.1.0
@auth ApiKey apikey in query
@common_fields {format: any # output format: json, jsonp, xml., callback: any # jsonp callback}
@endpoints 16
@toc album.tracks.get(1), album.get(1), artist.related.get(1), artist.albums.get(1), artist.search(1), artist.get(1), matcher.subtitle.get(1), matcher.track.get(1), matcher.lyrics.get(1), track.snippet.get(1), track.lyrics.get(1), track.subtitle.get(1), track.get(1), track.search(1), chart.tracks.get(1), chart.artists.get(1)

@group album.tracks.get
@endpoint GET /album.tracks.get
@required {album_id: any # The musiXmatch album id}
@optional {f_has_lyrics: any # When set, filter only contents with lyrics, page: any # Define the page number for paginated results, page_size: any # Define the page size for paginated results.Range is 1 to 100.}
@returns(200) The request was successful.

@endgroup

@group album.get
@endpoint GET /album.get
@required {album_id: any # The musiXmatch album id}
@returns(200) The request was successful.

@endgroup

@group artist.related.get
@endpoint GET /artist.related.get
@required {artist_id: any # The musiXmatch artist id}
@optional {page_size: any # Define the page size for paginated results.Range is 1 to 100., page: any # Define the page number for paginated results}
@returns(200) The request was successful.

@endgroup

@group artist.albums.get
@endpoint GET /artist.albums.get
@required {artist_id: any # The musiXmatch artist id}
@optional {s_release_date: any # Sort by release date (asc|desc), g_album_name: any # Group by Album Name, page_size: any # Define the page size for paginated results.Range is 1 to 100., page: any # Define the page number for paginated results}
@returns(200) The request was successful.

@endgroup

@group artist.search
@endpoint GET /artist.search
@optional {q_artist: any # The song artist, f_artist_id: any # When set, filter by this artist id, page: any # Define the page number for paginated results, page_size: any # Define the page size for paginated results.Range is 1 to 100.}
@returns(200) The request was successful.

@endgroup

@group artist.get
@endpoint GET /artist.get
@required {artist_id: any # The musiXmatch artist id}
@returns(200) The request was successful.

@endgroup

@group matcher.subtitle.get
@endpoint GET /matcher.subtitle.get
@optional {q_track: any # The song title, q_artist: any # The song artist, f_subtitle_length: any # Filter by subtitle length in seconds, f_subtitle_length_max_deviation: any # Max deviation for a subtitle length in seconds}
@returns(200) The request was successful.

@endgroup

@group matcher.track.get
@endpoint GET /matcher.track.get
@optional {q_artist: any # The song artist, q_track: any # The song title, f_has_lyrics: any # When set, filter only contents with lyrics, f_has_subtitle: any # When set, filter only contents with subtitles}
@returns(200) The request was successful.

@endgroup

@group matcher.lyrics.get
@endpoint GET /matcher.lyrics.get
@optional {q_track: any # The song title, q_artist: any # The song artist}
@returns(200) The request was successful.

@endgroup

@group track.snippet.get
@endpoint GET /track.snippet.get
@required {track_id: any # The musiXmatch track id}
@returns(200) The request was successful.

@endgroup

@group track.lyrics.get
@endpoint GET /track.lyrics.get
@required {track_id: any # The musiXmatch track id}
@returns(200) The request was successful.

@endgroup

@group track.subtitle.get
@endpoint GET /track.subtitle.get
@required {track_id: any # The musiXmatch track id}
@returns(200) The request was successful.

@endgroup

@group track.get
@endpoint GET /track.get
@required {track_id: any # The musiXmatch track id}
@returns(200) The request was successful.

@endgroup

@group track.search
@endpoint GET /track.search
@optional {q_track: any # The song title, q_artist: any # The song artist, q_lyrics: any # Any word in the lyrics, f_artist_id: any # When set, filter by this artist id, f_music_genre_id: any # When set, filter by this music category id, f_lyrics_language: any # Filter by the lyrics language (en,it,..), f_has_lyrics: any # When set, filter only contents with lyrics, s_artist_rating: any # Sort by our popularity index for artists (asc|desc), s_track_rating: any # Sort by our popularity index for tracks (asc|desc), quorum_factor: any # Search only a part of the given query string.Allowed range is (0.1 – 0.9), page_size: any # Define the page size for paginated results.Range is 1 to 100., page: any # Define the page number for paginated results}
@returns(200) The request was successful.

@endgroup

@group chart.tracks.get
@endpoint GET /chart.tracks.get
@optional {page: any # Define the page number for paginated results, page_size: any # Define the page size for paginated results.Range is 1 to 100., country: any # A valid ISO 3166 country code, f_has_lyrics: any # When set, filter only contents with lyrics}
@returns(200) The request was successful.

@endgroup

@group chart.artists.get
@endpoint GET /chart.artists.get
@optional {page: any # Define the page number for paginated results, page_size: any # Define the page size for paginated results.Range is 1 to 100., country: any # A valid ISO 3166 country code}
@returns(200) The request was successful.

@endgroup

@end
