Skip to content
DocumentationAPI Reference

Get Recommendations

Deprecated
RecommendationGetResponse recommendations().get(RecommendationGetParamsparams = RecommendationGetParams.none(), RequestOptionsrequestOptions = RequestOptions.none())
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.

ParametersExpand Collapse
RecommendationGetParams params
Optional<Long> limit

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.

minimum1
maximum100
Optional<String> market

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.

Optional<Double> maxAcousticness

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.

minimum0
maximum1
Optional<Double> maxDanceability

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.

minimum0
maximum1
Optional<Long> maxDurationMs

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.

Optional<Double> maxEnergy

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.

minimum0
maximum1
Optional<Double> maxInstrumentalness

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.

minimum0
maximum1
Optional<Long> maxKey

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.

minimum0
maximum11
Optional<Double> maxLiveness

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.

minimum0
maximum1
Optional<Double> maxLoudness

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.

Optional<Long> maxMode

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.

minimum0
maximum1
Optional<Long> maxPopularity

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.

minimum0
maximum100
Optional<Double> maxSpeechiness

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.

minimum0
maximum1
Optional<Double> maxTempo

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.

Optional<Long> maxTimeSignature

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.

Optional<Double> maxValence

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.

minimum0
maximum1
Optional<Double> minAcousticness

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.

minimum0
maximum1
Optional<Double> minDanceability

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.

minimum0
maximum1
Optional<Long> minDurationMs

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.

Optional<Double> minEnergy

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.

minimum0
maximum1
Optional<Double> minInstrumentalness

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.

minimum0
maximum1
Optional<Long> minKey

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.

minimum0
maximum11
Optional<Double> minLiveness

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.

minimum0
maximum1
Optional<Double> minLoudness

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.

Optional<Long> minMode

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.

minimum0
maximum1
Optional<Long> minPopularity

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.

minimum0
maximum100
Optional<Double> minSpeechiness

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.

minimum0
maximum1
Optional<Double> minTempo

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.

Optional<Long> minTimeSignature

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.

maximum11
Optional<Double> minValence

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.

minimum0
maximum1
Optional<String> seedArtists

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.
Note: only required if seed_genres and seed_tracks are not set.

Optional<String> seedGenres

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.
Note: only required if seed_artists and seed_tracks are not set.

Optional<String> seedTracks

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.
Note: only required if seed_artists and seed_genres are not set.

Optional<Double> targetAcousticness

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.

minimum0
maximum1
Optional<Double> targetDanceability

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.

minimum0
maximum1
Optional<Long> targetDurationMs

Target duration of the track (ms)

Optional<Double> targetEnergy

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.

minimum0
maximum1
Optional<Double> targetInstrumentalness

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.

minimum0
maximum1
Optional<Long> targetKey

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.

minimum0
maximum11
Optional<Double> targetLiveness

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.

minimum0
maximum1
Optional<Double> targetLoudness

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.

Optional<Long> targetMode

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.

minimum0
maximum1
Optional<Long> targetPopularity

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.

minimum0
maximum100
Optional<Double> targetSpeechiness

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.

minimum0
maximum1
Optional<Double> targetTempo

Target tempo (BPM)

Optional<Long> targetTimeSignature

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.

Optional<Double> targetValence

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.

minimum0
maximum1
ReturnsExpand Collapse
class RecommendationGetResponse:
List<Seed> seeds

An array of recommendation seed objects.

Optional<String> id

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.

Optional<Long> afterFilteringSize

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

Optional<Long> afterRelinkingSize

The number of tracks available after relinking for regional availability.

Optional<String> href

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.

Optional<Long> initialPoolSize

The number of recommended tracks available for this seed.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> type

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

List<TrackObject> tracks

An array of track objects ordered according to the parameters supplied.

Optional<String> id

The Spotify ID for the track.

Optional<Album> album

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

String id

The Spotify ID for the album.

AlbumType albumType

The type of the album.

Accepts one of the following:
ALBUM("album")
SINGLE("single")
COMPILATION("compilation")

The artists of the album. Each artist object includes a link in href to more detailed information about the artist.

Optional<String> id

The Spotify ID for the artist.

Optional<ExternalUrlObject> externalUrls

Known external URLs for this artist.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> spotify

The Spotify URL for the object.

Optional<String> href

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

Optional<String> name

The name of the artist.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<Type> type

The object type.

Optional<String> uri

The Spotify URI for the artist.

List<String> availableMarkets

The markets in which the album is available: ISO 3166-1 alpha-2 country codes. NOTE: an album is considered available in a market when at least 1 of its tracks is available in that market.

ExternalUrlObject externalUrls

Known external URLs for this album.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> spotify

The Spotify URL for the object.

String href

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

List<ImageObject> images

The cover art for the album in various sizes, widest first.

Optional<Long> height

The image height in pixels.

String url

The source URL of the image.

Optional<Long> width

The image width in pixels.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

String name

The name of the album. In case of an album takedown, the value may be an empty string.

String releaseDate

The date the album was first released.

ReleaseDatePrecision releaseDatePrecision

The precision with which release_date value is known.

Accepts one of the following:
YEAR("year")
MONTH("month")
DAY("day")
long totalTracks

The number of tracks in the album.

JsonValue; type "album"constant"album"constant

The object type.

String uri

The Spotify URI for the album.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<AlbumRestrictionObject> restrictions

Included in the response when a content restriction is applied.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<Reason> reason

The reason for the restriction. Albums may be restricted if the content is not available in a given market, to the user's subscription type, or when the user's account is set to not play explicit content. Additional reasons may be added in the future.

Accepts one of the following:
MARKET("market")
PRODUCT("product")
EXPLICIT("explicit")
Optional<List<SimplifiedArtistObject>> artists

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

Optional<String> id

The Spotify ID for the artist.

Optional<ExternalUrlObject> externalUrls

Known external URLs for this artist.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> spotify

The Spotify URL for the object.

Optional<String> href

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

Optional<String> name

The name of the artist.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<Type> type

The object type.

Optional<String> uri

The Spotify URI for the artist.

Optional<List<String>> availableMarkets

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

Optional<Long> discNumber

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

Optional<Long> durationMs

The track length in milliseconds.

Optional<Boolean> explicit

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

Optional<ExternalIdObject> externalIds

Known external IDs for the track.

Optional<String> ean
Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> upc
Optional<ExternalUrlObject> externalUrls

Known external URLs for this track.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> spotify

The Spotify URL for the object.

Optional<String> href

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

Optional<Boolean> isLocal

Whether or not the track is from a local file.

Optional<Boolean> isPlayable

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

Optional<LinkedTrackObject> linkedFrom

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.

Optional<String> id

The Spotify ID for the track.

Optional<ExternalUrlObject> externalUrls

Known external URLs for this track.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> spotify

The Spotify URL for the object.

Optional<String> href

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

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> type

The object type: "track".

Optional<String> uri

The Spotify URI for the track.

Optional<String> name

The name of the track.

Optional<Long> popularity

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.

DeprecatedOptional<String> previewUrl

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

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<TrackRestrictionObject> restrictions

Included in the response when a content restriction is applied.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Optional<String> reason

The reason for the restriction. Supported values:

  • market - The content item is not available in the given market.
  • product - The content item is not available for the user's subscription type.
  • explicit - The content item is explicit and the user's account is set to not play explicit content.

Additional reasons may be added in the future. Note: If you use this field, make sure that your application safely handles unknown values.

Optional<Long> trackNumber

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

Optional<Type> type

The object type: "track".

Optional<String> uri

The Spotify URI for the track.

Optional<Boolean> published

The playlist's public/private status (if it should be added to the user's profile or not): true the playlist will be public, false the playlist will be private, null the playlist status is not relevant. For more about public/private status, see Working with Playlists

Get Recommendations

package dev.cjav.spotted.example;

import dev.cjav.spotted.client.SpottedClient;
import dev.cjav.spotted.client.okhttp.SpottedOkHttpClient;
import dev.cjav.spotted.models.recommendations.RecommendationGetParams;
import dev.cjav.spotted.models.recommendations.RecommendationGetResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        SpottedClient client = SpottedOkHttpClient.fromEnv();

        RecommendationGetResponse recommendation = client.recommendations().get();
    }
}
{
  "seeds": [
    {
      "id": "id",
      "afterFilteringSize": 0,
      "afterRelinkingSize": 0,
      "href": "href",
      "initialPoolSize": 0,
      "published": true,
      "type": "type"
    }
  ],
  "tracks": [
    {
      "id": "id",
      "album": {
        "id": "2up3OPMp9Tb4dAKM2erWXQ",
        "album_type": "compilation",
        "artists": [
          {
            "id": "id",
            "external_urls": {
              "published": true,
              "spotify": "spotify"
            },
            "href": "href",
            "name": "name",
            "published": true,
            "type": "artist",
            "uri": "uri"
          }
        ],
        "available_markets": [
          "CA",
          "BR",
          "IT"
        ],
        "external_urls": {
          "published": true,
          "spotify": "spotify"
        },
        "href": "href",
        "images": [
          {
            "height": 300,
            "url": "https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228\n",
            "width": 300,
            "published": true
          }
        ],
        "name": "name",
        "release_date": "1981-12",
        "release_date_precision": "year",
        "total_tracks": 9,
        "type": "album",
        "uri": "spotify:album:2up3OPMp9Tb4dAKM2erWXQ",
        "published": true,
        "restrictions": {
          "published": true,
          "reason": "market"
        }
      },
      "artists": [
        {
          "id": "id",
          "external_urls": {
            "published": true,
            "spotify": "spotify"
          },
          "href": "href",
          "name": "name",
          "published": true,
          "type": "artist",
          "uri": "uri"
        }
      ],
      "available_markets": [
        "string"
      ],
      "disc_number": 0,
      "duration_ms": 0,
      "explicit": true,
      "external_ids": {
        "ean": "ean",
        "isrc": "isrc",
        "published": true,
        "upc": "upc"
      },
      "external_urls": {
        "published": true,
        "spotify": "spotify"
      },
      "href": "href",
      "is_local": true,
      "is_playable": true,
      "linked_from": {
        "id": "id",
        "external_urls": {
          "published": true,
          "spotify": "spotify"
        },
        "href": "href",
        "published": true,
        "type": "type",
        "uri": "uri"
      },
      "name": "name",
      "popularity": 0,
      "preview_url": "preview_url",
      "published": true,
      "restrictions": {
        "published": true,
        "reason": "reason"
      },
      "track_number": 0,
      "type": "track",
      "uri": "uri"
    }
  ],
  "published": true
}
Returns Examples
{
  "seeds": [
    {
      "id": "id",
      "afterFilteringSize": 0,
      "afterRelinkingSize": 0,
      "href": "href",
      "initialPoolSize": 0,
      "published": true,
      "type": "type"
    }
  ],
  "tracks": [
    {
      "id": "id",
      "album": {
        "id": "2up3OPMp9Tb4dAKM2erWXQ",
        "album_type": "compilation",
        "artists": [
          {
            "id": "id",
            "external_urls": {
              "published": true,
              "spotify": "spotify"
            },
            "href": "href",
            "name": "name",
            "published": true,
            "type": "artist",
            "uri": "uri"
          }
        ],
        "available_markets": [
          "CA",
          "BR",
          "IT"
        ],
        "external_urls": {
          "published": true,
          "spotify": "spotify"
        },
        "href": "href",
        "images": [
          {
            "height": 300,
            "url": "https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228\n",
            "width": 300,
            "published": true
          }
        ],
        "name": "name",
        "release_date": "1981-12",
        "release_date_precision": "year",
        "total_tracks": 9,
        "type": "album",
        "uri": "spotify:album:2up3OPMp9Tb4dAKM2erWXQ",
        "published": true,
        "restrictions": {
          "published": true,
          "reason": "market"
        }
      },
      "artists": [
        {
          "id": "id",
          "external_urls": {
            "published": true,
            "spotify": "spotify"
          },
          "href": "href",
          "name": "name",
          "published": true,
          "type": "artist",
          "uri": "uri"
        }
      ],
      "available_markets": [
        "string"
      ],
      "disc_number": 0,
      "duration_ms": 0,
      "explicit": true,
      "external_ids": {
        "ean": "ean",
        "isrc": "isrc",
        "published": true,
        "upc": "upc"
      },
      "external_urls": {
        "published": true,
        "spotify": "spotify"
      },
      "href": "href",
      "is_local": true,
      "is_playable": true,
      "linked_from": {
        "id": "id",
        "external_urls": {
          "published": true,
          "spotify": "spotify"
        },
        "href": "href",
        "published": true,
        "type": "type",
        "uri": "uri"
      },
      "name": "name",
      "popularity": 0,
      "preview_url": "preview_url",
      "published": true,
      "restrictions": {
        "published": true,
        "reason": "reason"
      },
      "track_number": 0,
      "type": "track",
      "uri": "uri"
    }
  ],
  "published": true
}