Skip to content
DocumentationAPI Reference

Get User's Saved Episodes

me().episodes().list(EpisodeListParamsparams = EpisodeListParams.none(), RequestOptionsrequestOptions = RequestOptions.none()) : EpisodeListPage
GET/me/episodes

Get a list of the episodes saved in the current Spotify user's library.
This API endpoint is in beta and could change without warning. Please share any feedback that you have, or issues that you discover, in our developer community forum.

ParametersExpand Collapse
params: EpisodeListParams
limit: Optional<Long>

The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.

minimum1
maximum50
market: Optional<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.

offset: Optional<Long>

The index of the first item to return. Default: 0 (the first item). Use with limit to get the next set of items.

ReturnsExpand Collapse
class EpisodeListResponse:
addedAt: Optional<LocalDateTime>

The date and time the episode was saved. Timestamps are returned in ISO 8601 format as Coordinated Universal Time (UTC) with a zero offset: YYYY-MM-DDTHH:MM:SSZ.

formatdate-time
episode: Optional<EpisodeObject>

Information about the episode.

id: String

The Spotify ID for the episode.

DeprecatedaudioPreviewUrl: Optional<String>

A URL to a 30 second preview (MP3 format) of the episode. null if not available.

description: String

A description of the episode. HTML tags are stripped away from this field, use html_description field in case HTML tags are needed.

durationMs: Long

The episode length in milliseconds.

explicit: Boolean

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

externalUrls: ExternalUrlObject

External URLs for this episode.

published: Optional<Boolean>

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

spotify: Optional<String>

The Spotify URL for the object.

href: String

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

htmlDescription: String

A description of the episode. This field may contain HTML tags.

images: List<ImageObject>

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

height: Optional<Long>

The image height in pixels.

url: String

The source URL of the image.

width: Optional<Long>

The image width in pixels.

published: Optional<Boolean>

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

isExternallyHosted: Boolean

True if the episode is hosted outside of Spotify's CDN.

isPlayable: Boolean

True if the episode is playable in the given market. Otherwise false.

languages: List<String>

A list of the languages used in the episode, identified by their ISO 639-1 code.

name: String

The name of the episode.

releaseDate: String

The date the episode was first released, for example "1981-12-15". Depending on the precision, it might be shown as "1981" or "1981-12".

releaseDatePrecision: ReleaseDatePrecision

The precision with which release_date value is known.

Accepts one of the following:
YEAR("year")
MONTH("month")
DAY("day")
show: ShowBase

The show on which the episode belongs.

id: String

The Spotify ID for the show.

availableMarkets: List<String>

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

copyrights: List<CopyrightObject>

The copyright statements of the show.

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

The copyright text for this content.

The type of copyright: C = the copyright, P = the sound recording (performance) copyright.

description: String

A description of the show. HTML tags are stripped away from this field, use html_description field in case HTML tags are needed.

explicit: Boolean

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

externalUrls: ExternalUrlObject

External URLs for this show.

published: Optional<Boolean>

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

spotify: Optional<String>

The Spotify URL for the object.

href: String

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

htmlDescription: String

A description of the show. This field may contain HTML tags.

images: List<ImageObject>

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

height: Optional<Long>

The image height in pixels.

url: String

The source URL of the image.

width: Optional<Long>

The image width in pixels.

published: Optional<Boolean>

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

isExternallyHosted: Boolean

True if all of the shows episodes are hosted outside of Spotify's CDN. This field might be null in some cases.

languages: List<String>

A list of the languages used in the show, identified by their ISO 639 code.

mediaType: String

The media type of the show.

name: String

The name of the episode.

publisher: String

The publisher of the show.

totalEpisodes: Long

The total number of episodes in the show.

type: JsonValue; "show"constant"show"constant

The object type.

uri: String

The Spotify URI for the show.

published: Optional<Boolean>

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

type: JsonValue; "episode"constant"episode"constant

The object type.

uri: String

The Spotify URI for the episode.

Deprecatedlanguage: Optional<String>

The language used in the episode, identified by a ISO 639 code. This field is deprecated and might be removed in the future. Please use the languages field instead.

published: Optional<Boolean>

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

restrictions: Optional<EpisodeRestrictionObject>

Included in the response when a content restriction is applied.

published: Optional<Boolean>

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

reason: Optional<String>

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.

resumePoint: Optional<ResumePointObject>

The user's most recent position in the episode. Set if the supplied access token is a user token and has the scope 'user-read-playback-position'.

fullyPlayed: Optional<Boolean>

Whether or not the episode has been fully played by the user.

published: Optional<Boolean>

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

resumePositionMs: Optional<Long>

The user's most recent position in the episode in milliseconds.

published: Optional<Boolean>

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 User's Saved Episodes

package dev.cjav.spotted.example

import dev.cjav.spotted.client.SpottedClient
import dev.cjav.spotted.client.okhttp.SpottedOkHttpClient
import dev.cjav.spotted.models.me.episodes.EpisodeListPage
import dev.cjav.spotted.models.me.episodes.EpisodeListParams

fun main() {
    val client: SpottedClient = SpottedOkHttpClient.fromEnv()

    val page: EpisodeListPage = client.me().episodes().list()
}
{
  "href": "https://api.spotify.com/v1/me/shows?offset=0&limit=20\n",
  "limit": 20,
  "next": "https://api.spotify.com/v1/me/shows?offset=1&limit=1",
  "offset": 0,
  "previous": "https://api.spotify.com/v1/me/shows?offset=1&limit=1",
  "total": 4,
  "items": [
    {
      "added_at": "2019-12-27T18:11:19.117Z",
      "episode": {
        "id": "5Xt5DXGzch68nYYamXrNxZ",
        "audio_preview_url": "https://p.scdn.co/mp3-preview/2f37da1d4221f40b9d1a98cd191f4d6f1646ad17",
        "description": "A Spotify podcast sharing fresh insights on important topics of the moment—in a way only Spotify can. You’ll hear from experts in the music, podcast and tech industries as we discover and uncover stories about our work and the world around us.\n",
        "duration_ms": 1686230,
        "explicit": true,
        "external_urls": {
          "published": true,
          "spotify": "spotify"
        },
        "href": "https://api.spotify.com/v1/episodes/5Xt5DXGzch68nYYamXrNxZ",
        "html_description": "<p>A Spotify podcast sharing fresh insights on important topics of the moment—in a way only Spotify can. You’ll hear from experts in the music, podcast and tech industries as we discover and uncover stories about our work and the world around us.</p>\n",
        "images": [
          {
            "height": 300,
            "url": "https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228\n",
            "width": 300,
            "published": true
          }
        ],
        "is_externally_hosted": true,
        "is_playable": true,
        "languages": [
          "fr",
          "en"
        ],
        "name": "Starting Your Own Podcast: Tips, Tricks, and Advice From Anchor Creators\n",
        "release_date": "1981-12-15",
        "release_date_precision": "day",
        "show": {
          "id": "id",
          "available_markets": [
            "string"
          ],
          "copyrights": [
            {
              "published": true,
              "text": "text",
              "type": "type"
            }
          ],
          "description": "description",
          "explicit": true,
          "external_urls": {
            "published": true,
            "spotify": "spotify"
          },
          "href": "href",
          "html_description": "html_description",
          "images": [
            {
              "height": 300,
              "url": "https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228\n",
              "width": 300,
              "published": true
            }
          ],
          "is_externally_hosted": true,
          "languages": [
            "string"
          ],
          "media_type": "media_type",
          "name": "name",
          "publisher": "publisher",
          "total_episodes": 0,
          "type": "show",
          "uri": "uri",
          "published": true
        },
        "type": "episode",
        "uri": "spotify:episode:0zLhl3WsOCQHbe1BPTiHgr",
        "language": "en",
        "published": true,
        "restrictions": {
          "published": true,
          "reason": "reason"
        },
        "resume_point": {
          "fully_played": true,
          "published": true,
          "resume_position_ms": 0
        }
      },
      "published": true
    }
  ],
  "published": true
}
Returns Examples
{
  "href": "https://api.spotify.com/v1/me/shows?offset=0&limit=20\n",
  "limit": 20,
  "next": "https://api.spotify.com/v1/me/shows?offset=1&limit=1",
  "offset": 0,
  "previous": "https://api.spotify.com/v1/me/shows?offset=1&limit=1",
  "total": 4,
  "items": [
    {
      "added_at": "2019-12-27T18:11:19.117Z",
      "episode": {
        "id": "5Xt5DXGzch68nYYamXrNxZ",
        "audio_preview_url": "https://p.scdn.co/mp3-preview/2f37da1d4221f40b9d1a98cd191f4d6f1646ad17",
        "description": "A Spotify podcast sharing fresh insights on important topics of the moment—in a way only Spotify can. You’ll hear from experts in the music, podcast and tech industries as we discover and uncover stories about our work and the world around us.\n",
        "duration_ms": 1686230,
        "explicit": true,
        "external_urls": {
          "published": true,
          "spotify": "spotify"
        },
        "href": "https://api.spotify.com/v1/episodes/5Xt5DXGzch68nYYamXrNxZ",
        "html_description": "<p>A Spotify podcast sharing fresh insights on important topics of the moment—in a way only Spotify can. You’ll hear from experts in the music, podcast and tech industries as we discover and uncover stories about our work and the world around us.</p>\n",
        "images": [
          {
            "height": 300,
            "url": "https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228\n",
            "width": 300,
            "published": true
          }
        ],
        "is_externally_hosted": true,
        "is_playable": true,
        "languages": [
          "fr",
          "en"
        ],
        "name": "Starting Your Own Podcast: Tips, Tricks, and Advice From Anchor Creators\n",
        "release_date": "1981-12-15",
        "release_date_precision": "day",
        "show": {
          "id": "id",
          "available_markets": [
            "string"
          ],
          "copyrights": [
            {
              "published": true,
              "text": "text",
              "type": "type"
            }
          ],
          "description": "description",
          "explicit": true,
          "external_urls": {
            "published": true,
            "spotify": "spotify"
          },
          "href": "href",
          "html_description": "html_description",
          "images": [
            {
              "height": 300,
              "url": "https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228\n",
              "width": 300,
              "published": true
            }
          ],
          "is_externally_hosted": true,
          "languages": [
            "string"
          ],
          "media_type": "media_type",
          "name": "name",
          "publisher": "publisher",
          "total_episodes": 0,
          "type": "show",
          "uri": "uri",
          "published": true
        },
        "type": "episode",
        "uri": "spotify:episode:0zLhl3WsOCQHbe1BPTiHgr",
        "language": "en",
        "published": true,
        "restrictions": {
          "published": true,
          "reason": "reason"
        },
        "resume_point": {
          "fully_played": true,
          "published": true,
          "resume_position_ms": 0
        }
      },
      "published": true
    }
  ],
  "published": true
}