Introduction

An API to generate most relevant playlists and recommendations

Musicovery API provides datas to generate music recommendations and playlists of all types : from a mood, an artist, a track, a genre/style, a theme, a period/year,...
The response, a list of tracks, can be filtered and personalized with several factors (popularity, similarity type, listener country).
You can access freely Musicovery API. You can query 200 requests in total, that allows you to understand how the API works and test our datas.
Then you need to apply for an API key, which gives you an extra 5000 request allowance.
To query without limitation Musicovery API, you need a Premium API key. To get your API key please contact us at b2b@musicovery.com.
You need first to search IDs for tracks, artists, and tags, using the method Search Track, Search Artist, Search Tags. Then you will be able to get similar artist or tracks, and all sorts of playlists.
Please read carefully the Terms of use before using Musicovery API.

API Terms of use

Please carefully read this agreement (the "agreement").
Please review these terms and conditions periodically and check the version for changes.
Musicovery will announce changes to the agreement and new releases of the API at https://groups.google.com/forum/#!forum/musicovery-api.
By using Musicovery API and data you explicitly agree to comply with the following Agreement (the "API Terms of service"). If you do not agree to be bound by this agreement, do not use the API.

Musicovery grants you a limited terminable licence to copy and use Musicovery data, subject to the following restrictions:
  • You are entitled to a maximum number of requests to the API: 200 without API key, 5000 with an API key. For more than 5000 requests, you need to obtain a commercial agreement from Musicovery. For a commercial use of Musicovery API or data, contact us at b2b@musicovery.com.
  • In your use of Musicovery data you must comply with all local and international laws and regulations, including intellectual property and data protection laws, and obtain all necessary licences and permissions.
  • You must not transfer any Musicovery data to any country without obtaining consents and authorizations required by law in such country.
  • The user cannot sub-licence Musicovery data to other parties.

    Musicovery may terminate the user access to the API if the preceding conditions are not complied with. In such a case you must immediately discontinue your use of Musicovery API and delete all Musicovery data in your possession.

    When you use Musicovery data you must credit Musicovery and include link to Musicovery API.

    NO WARRANTIES: THE SERVICES AND DATA ARE PROVIDED ON AN "AS IS" BASIS WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED.
  • Forum

    This is the discussion about Musicovery API. You can use this group to ask questions, give feedbacks or suggestions. https://groups.google.com/forum/#!forum/musicovery-api

    Track search

    The method returns a list of possible tracks, with the following information: artist name, track title, Musicovery track ID, and relevance (%). You can request the title of a track only, or the title and the artist name, and with a minimum relevance %.
    Url http://musicovery.com/api/track.php
    Parameter Possible values Required/optional Comments
    fct search required code error 300 if missing
    title hey joe required track title code error 310 if missing
    artistname Jimi optional the name of the artist/band
    apikey optional up to 500 requests
    minmatch [0-100] default 30 optional the minimum relevance required (string very similar = close to 100)
    nbresults default 50 optional the number of results returned
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/track.php?fct=search&title=little wing

    http://musicovery.com/api/track.php?fct=search&title=mary&artistname=bob

    Results

    The API will return the following information ranked by track match decreasing order:
    Data Description
    track id Musicovery track ID
    track title track title
    track artist name artist name
    track genre track genre
    track releasedate year of release
    track album album title
    track version live, remix, performer,...
    track match relevance of the track returned versus the track submitted
    http://musicovery.com/api/track.php?fct=search&title=little wing

    Track get info

    The method returns information about the track: genre, release date, version (remix, live,...), album title, popularity, mood (coordinates).
    You cannot call the method with track string; you need Musicovery track ID; it is a required parameter (if you do not have it, get it from the method Search track).
    Url http://musicovery.com/api/track.php
    Parameter Possible values Required/optional Comments
    fct getinfo required code error 300 if missing
    id required Musicovery track id, code error 320 if missing
    apikey optional up to 500 requests
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/track.php?fct=getinfo&id=2127

    Results

    The API will return the following information:
    Data Description
    track id Musicovery track ID
    track title track title
    track artist name artist name
    track artist mbid artist Musicbrainz id
    track genre track genre
    track releasedate year of release
    track album album
    track version live, remix, performer,...
    track popularity measured on the scale 1-100 (100=very popular)
    track valence position of the track on the dark/positive scale; integer 1 to 1 000 000; ex.127 239 (API key required)
    track arousal the level of energy of the track; integer 1 to 1 000 000; ex.553 247 (API key required)
    track coverimg url to display cover art (API key required)
    track sampleurl url to play the sample (API key required)

    Track get similar tracks

    The method returns from the requested seed track a list of similar tracks, with the following information: track title, artist name, Musicovery track ID, genre, distance from the seed track. Country of the listener and popularity of similar track (intenger 1 - 100) can be specified: the popularity is measured according to the local perception. It is possible to limit the genre of the similar tracks to the seed track one's.
    Url http://musicovery.com/api/track.php
    Parameter Possible values Required/optional Comments
    fct getsimilartracks required code error 300 if missing
    id required Musicovery track id, code error 320 if missing
    tracksnumber default 20 limit 100 optional
    listenercountry us, uk, fr optional country as a 2 digit country code
    popularitymax [0-100] optional 100=hit, 0=discovery
    popularitymin [0-100] optional 100=hit, 0=discovery
    similaritytype [0-100] default 60 optional if seed track is genre punk and danceable, 0 will return punk tracks, 100 will return danceable tracks
    similaritytype [0-100] default 60 optional genre=0, context = 100
    limitgenre true-false optional limit the genre of similar tracks to the seed track's one, default false
    apikey optional up to 500 requests
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/track.php?fct=getsimilartracks&id=2127&popularitymin=25&popularitymax=75&similaritytype=0&limitgenre=false&tracksnumber=54&test=&country=fr

    Results

    The API will return the following information:
    Data Description
    track id Musicovery track ID
    track title track title
    track artist name artist name
    track artist mbid artist Musicbrainz id
    track genre track genre
    track distance 1 to 100 (1= very similar; 100 = little similar)

    Artist search

    The method returns a list of possible artists, with the following information: artist name, Musicbrainz ID, and relevance (match in %).
    Url http://musicovery.com/api/artist.php
    Parameter Possible values Required/optional Comments
    fct search required code error 400 if missing
    artistname required the name of the artist/band, code error 410 if missing
    minmatch [0-100] default 30 optional the minimum relevance required (string very similar = close to 100)
    apikey optional up to 500 requests
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/artist.php?fct=search&artistname=coldplay

    Results

    The API will return the following information order by match desc:
    Data Description
    artist mbid artist Musicbrainz id
    artist name artist name
    artist main genre
    artist country country associated with the artist
    artist decade decade when the artist started to be known
    artist match match in %, 0 to 100 (100 = identical)

    Artist get similar artists

    The method returns a list of possible artists, with the following information: artist name, Musicbrainz ID, and relevance (%).
    Url http://musicovery.com/api/artist.php
    Parameter Possible values Required/optional Comments
    fct getsimilarartists required code error 400 if missing
    artistmbid required code error 420 if missing
    resultsnumber default 20 limit 100 optional
    popularitymax [0-100] optional 100=hit, 0=discovery
    popularitymin [0-100] optional 100=hit, 0=discovery
    apikey optional up to 500 requests
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/artist.php?fct=getsimilarartists&artistmbid=2386cd66-e923-4e8e-bf14-2eebe2e9b973&popularitymin=25&popularitymax=100

    Results

    The API will return the following information order by match desc:
    Data Description
    artist mbid artist Musicbrainz id
    artist name artist name
    artist genre
    artist match

    Tag search

    The method returns a list of possible tags, with the following information: tag name, tag type (genre, mood, theme, year), language. The various translations of a tag are returned. Parameters languages and tag type can be specified, and used without a tag. If language "en" specified, all tags in English are returned. The list of languages currently available are: en (english), es (Spanish), de (German), fr (French), pt (Portuguese), it (Italian), no (Norvegian).
    Url http://musicovery.com/api/tag.php
    Parameter Possible values Required/optional Comments
    fct search required code error 500 if missing
    tag trip-hop, chillout, sad... optional the name of the tag
    type [genre, mood, year, theme] optional the type of the tag
    language [en, es, fr, de, it, pt, no] optional The language of the tag : ex. « variété » in French for « vocal pop »
    apikey optional up to 500 requests
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/tag.php?fct=search&apikey=123_1&tag=emo&lg=en&type=genre

    Results

    The API will return the following information:
    Data Description
    tag name tag name
    tag type tag type
    tag language tag language

    Playlist from a track

    The method returns a playlist from a seed track. Country of the listener and popularity of tracks (intenger 1 - 100) can be specified: the popularity is measured according to the perception of a listener in this country. Similarity type (scale from genre to context : 1-100) can be specified.
    Url http://musicovery.com/api/playlist.php
    Parameter Possible values Required/optional Comments
    fct seedtrack required code error 600 if missing
    id required musicovery track id, code error 610 if missing
    tracksnumber [0-100] default 25 optional The number of tracks requested in the playlist
    popularitymax [0-100] 100=hit, 0=discovery, default 100 optional The maximum popularity of the tracks of the playlist on a scale 0-100
    popularitymin [0-100] 100=hit, 0=discovery default 25 optional The minimum popularity of the tracks of the playlist on a scale 0-100
    similaritytype [0-100] optional if seed track is genre punk and danceable, 0 will return punk tracks, 100 will return danceable tracks
    listenercountry optional country of listener
    apikey optional up to 500 requests
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/playlist.php?fct=seedtrack&id=2127&popularitymax=100&popularitymin=25&similaritytype=60&tracksnumber=20&listenercountry=fr

    Results

    The API will return the following information:
    Data Description
    track id musicovery track id
    track title track title
    track artist mbid Musicbrainz id
    track artist name artist name
    track genre track genre
    track coverimg url to display cover art (API key required)
    track sampleurl url to play the sample (API key required)

    Playlist from an artist

    The method returns a playlist from a seed artist.
    Url http://musicovery.com/api/playlist.php
    Parameter Possible values Required/optional Comments
    fct artistseed required code error 600 if missing
    artistmbid required artist Musicbrainz id, code error 620 if missing
    tracksnumber [0-100] default 25 optional The number of tracks requested in the playlist
    popularitymax [0-100] 100=hit, 0=discovery, default 100 optional The maximum popularity of the tracks of the playlist on a scale 0-100
    popularitymin [0-100] 100=hit, 0=discovery default 25 optional The minimum popularity of the tracks of the playlist on a scale 0-100
    similaritytype [0-100] optional if seed track is genre punk and danceable, 0 will return punk tracks, 100 will return danceable tracks
    listenercountry optional country of listener
    country optional country of artist
    apikey optional up to 500 requests
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/playlist.php?fct=artistseed&artistmbid=cc197bad-dc9c-440d-a5b5-d52ba2e14234&popularitymax=100&popularitymin=25&tracksnumber=20

    Results

    The API will return the following information:
    Data Description
    track id musicovery track id
    track title
    track artist mbid
    track artist name
    track genre
    track coverimg url to display cover art (API key required)
    track sampleurl url to play the sample (API key required)

    Playlist from a tag

    The method returns a playlist from a tag (genre, mood, year, activity, theme). Country of the listener and popularity of tracks can be specified.
    Url http://musicovery.com/api/playlist.php
    Parameter Possible values Required/optional Comments
    fct tagseed required code error 600 if missing
    tag required code error 630 if missing
    tracksnumber [0-100] optional default 25
    yearmax optional yearmin must be < yearmax
    yearmin optional yearmin must be < yearmax
    popularitymax [0-100] 100=hit, 0=discovery, default 100 optional The maximum popularity of the tracks of the playlist on a scale 0-100
    popularitymin [0-100] 100=hit, 0=discovery default 25 optional The minimum popularity of the tracks of the playlist on a scale 0-100
    listenercountry optional
    apikey optional up to 500 requests
    format [xml-json] default xml optional the format of the response

    Examples:

    http://musicovery.com/api/playlist.php?fct=tagseed&apikey=123_1&tag=techno&popularitymax=100&popularitymin=25&listenercountry=fr&tracksnumber=20

    Results

    The API will return the following information:
    Data Description
    track id musicovery track id
    track title
    track artist mbid
    track artist name
    track genre
    track coverimg url to display cover art (API key required)
    track sampleurl url to play the sample (API key required)

    Error codes

    Code Description
    101 invalid apikey: contact B2B@musicovery.com
    103 too many requests
    104 apikey expired: contact B2B@musicovery.com