Skip to content
Web APIReferences / Tracks / Get Recommendations

Get Recommendations

Recommendations are generated based on the available information for a given seed entity and matched against similar artists and tracks. If there is sufficient information about the provided seeds, a list of tracks will be returned together with pool size details.

For artists and tracks that are very new or obscure there might not be enough data to generate a list of tracks.

Request

  • limit
    integer

    The target size of the list of recommended tracks. For seeds with unusually small pools or when highly restrictive filtering is applied, it may be impossible to generate the requested number of recommended tracks. Debugging information for such cases is available in the response. Default: 20. Minimum: 1. Maximum: 100.

    Example value: 10Default value: 20Range: 1 - 100
  • market
    string

    An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned.
    If a valid user access token is specified in the request header, the country associated with the user account will take priority over this parameter.
    Note: If neither market or user country are provided, the content is considered unavailable for the client.
    Users can view the country that is associated with their account in the account settings.

    Example value: "ES"
  • seed_artists
    string
    Required

    A comma separated list of Spotify IDs for seed artists. Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres.

    Example value: "4NHQUGzhtTLFvgF5SZesLK"
  • seed_genres
    string
    Required

    A comma separated list of any genres in the set of available genre seeds. Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres.

    Example value: "classical,country"
  • seed_tracks
    string
    Required

    A comma separated list of Spotify IDs for a seed track. Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres.

    Example value: "0c6xIDDpzE81m2q797ordA"
  • min_acousticness
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 1
  • max_acousticness
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 1
  • target_acousticness
    number

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 1
  • min_danceability
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 1
  • max_danceability
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 1
  • target_danceability
    number

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 1
  • min_duration_ms
    integer

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

  • max_duration_ms
    integer

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

  • target_duration_ms
    integer

    Target duration of the track (ms)

  • min_energy
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 1
  • max_energy
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 1
  • target_energy
    number

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 1
  • min_instrumentalness
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 1
  • max_instrumentalness
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 1
  • target_instrumentalness
    number

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 1
  • min_key
    integer

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 11
  • max_key
    integer

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 11
  • target_key
    integer

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 11
  • min_liveness
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 1
  • max_liveness
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 1
  • target_liveness
    number

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 1
  • min_loudness
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

  • max_loudness
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

  • target_loudness
    number

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

  • min_mode
    integer

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 1
  • max_mode
    integer

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 1
  • target_mode
    integer

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 1
  • min_popularity
    integer

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 100
  • max_popularity
    integer

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 100
  • target_popularity
    integer

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 100
  • min_speechiness
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 1
  • max_speechiness
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 1
  • target_speechiness
    number

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 1
  • min_tempo
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

  • max_tempo
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

  • target_tempo
    number

    Target tempo (BPM)

  • min_time_signature
    integer

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Maximum value: 11
  • max_time_signature
    integer

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

  • target_time_signature
    integer

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

  • min_valence
    number

    For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute.

    Range: 0 - 1
  • max_valence
    number

    For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental.

    Range: 0 - 1
  • target_valence
    number

    For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request target_energy=0.6 and target_danceability=0.8. All target values will be weighed equally in ranking results.

    Range: 0 - 1

Response

A set of recommendations

  • Required

    An array of recommendation seed objects.

    • afterFilteringSize
      integer

      The number of tracks available after min_* and max_* filters have been applied.

    • afterRelinkingSize
      integer

      The number of tracks available after relinking for regional availability.

    • href
      string

      A link to the full track or artist data for this seed. For tracks this will be a link to a Track Object. For artists a link to an Artist Object. For genre seeds, this value will be null.

    • id
      string

      The id used to select this seed. This will be the same as the string used in the seed_artists, seed_tracks or seed_genres parameter.

    • initialPoolSize
      integer

      The number of recommended tracks available for this seed.

    • type
      string

      The entity type of this seed. One of artist, track or genre.

  • Required

    An array of track object (simplified) ordered according to the parameters supplied.

    • The album on which the track appears. The album object includes a link in href to full information about the album.

    • The artists who performed the track. Each artist object includes a link in href to more detailed information about the artist.

    • available_markets
      array of strings

      A list of the countries in which the track can be played, identified by their ISO 3166-1 alpha-2 code.

    • disc_number
      integer

      The disc number (usually 1 unless the album consists of more than one disc).

    • duration_ms
      integer

      The track length in milliseconds.

    • explicit
      boolean

      Whether or not the track has explicit lyrics ( true = yes it does; false = no it does not OR unknown).

    • Known external IDs for the track.

    • Known external URLs for this track.

    • href
      string

      A link to the Web API endpoint providing full details of the track.

    • id
      string

      The Spotify ID for the track.

    • is_playable
      boolean

      Part of the response when Track Relinking is applied. If true, the track is playable in the given market. Otherwise false.

    • Part of the response when Track Relinking is applied, and the requested track has been replaced with different track. The track in the linked_from object contains information about the originally requested track.

    • Included in the response when a content restriction is applied.

    • name
      string

      The name of the track.

    • popularity
      integer

      The popularity of the track. The value will be between 0 and 100, with 100 being the most popular.
      The popularity of a track is a value between 0 and 100, with 100 being the most popular. The popularity is calculated by algorithm and is based, in the most part, on the total number of plays the track has had and how recent those plays are.
      Generally speaking, songs that are being played a lot now will have a higher popularity than songs that were played a lot in the past. Duplicate tracks (e.g. the same track from a single and an album) are rated independently. Artist and album popularity is derived mathematically from track popularity. Note: the popularity value may lag actual popularity by a few days: the value is not updated in real time.

    • preview_url
      string

      A link to a 30 second preview (MP3 format) of the track. Can be null

      Important policy note
    • track_number
      integer

      The number of the track. If an album has several discs, the track number is the number on the specified disc.

    • type
      string

      The object type: "track".

      Allowed values: "track"
    • uri
      string

      The Spotify URI for the track.

    • is_local
      boolean

      Whether or not the track is from a local file.

endpointhttps://api.spotify.com/v1/recommendationslimitmarketseed_artistsseed_genresseed_tracksmin_acousticnessmax_acousticnesstarget_acousticnessmin_danceabilitymax_danceabilitytarget_danceabilitymin_duration_msmax_duration_mstarget_duration_msmin_energymax_energytarget_energymin_instrumentalnessmax_instrumentalnesstarget_instrumentalnessmin_keymax_keytarget_keymin_livenessmax_livenesstarget_livenessmin_loudnessmax_loudnesstarget_loudnessmin_modemax_modetarget_modemin_popularitymax_popularitytarget_popularitymin_speechinessmax_speechinesstarget_speechinessmin_tempomax_tempotarget_tempomin_time_signaturemax_time_signaturetarget_time_signaturemin_valencemax_valencetarget_valence

Response sample

{  "seeds": [    {      "afterFilteringSize": 0,      "afterRelinkingSize": 0,      "href": "string",      "id": "string",      "initialPoolSize": 0,      "type": "string"    }  ],  "tracks": [    {      "album": {        "album_type": "compilation",        "total_tracks": 9,        "available_markets": ["CA", "BR", "IT"],        "external_urls": {          "spotify": "string"        },        "href": "string",        "id": "2up3OPMp9Tb4dAKM2erWXQ",        "images": [          {            "url": "https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228",            "height": 300,            "width": 300          }        ],        "name": "string",        "release_date": "1981-12",        "release_date_precision": "year",        "restrictions": {          "reason": "market"        },        "type": "album",        "uri": "spotify:album:2up3OPMp9Tb4dAKM2erWXQ",        "copyrights": [          {            "text": "string",            "type": "string"          }        ],        "external_ids": {          "isrc": "string",          "ean": "string",          "upc": "string"        },        "genres": ["Egg punk", "Noise rock"],        "label": "string",        "popularity": 0,        "album_group": "compilation",        "artists": [          {            "external_urls": {              "spotify": "string"            },            "href": "string",            "id": "string",            "name": "string",            "type": "artist",            "uri": "string"          }        ]      },      "artists": [        {          "external_urls": {            "spotify": "string"          },          "followers": {            "href": "string",            "total": 0          },          "genres": ["Prog rock", "Grunge"],          "href": "string",          "id": "string",          "images": [            {              "url": "https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228",              "height": 300,              "width": 300            }          ],          "name": "string",          "popularity": 0,          "type": "artist",          "uri": "string"        }      ],      "available_markets": ["string"],      "disc_number": 0,      "duration_ms": 0,      "explicit": false,      "external_ids": {        "isrc": "string",        "ean": "string",        "upc": "string"      },      "external_urls": {        "spotify": "string"      },      "href": "string",      "id": "string",      "is_playable": false,      "linked_from": {      },      "restrictions": {        "reason": "string"      },      "name": "string",      "popularity": 0,      "preview_url": "string",      "track_number": 0,      "type": "track",      "uri": "string",      "is_local": false    }  ]}