Skip to content
DocumentationAPI Reference

Me

Get Current User's Profile
me.retrieve() -> MeRetrieveResponse { id, country, display_name, 10 more }
GET/me

MeAudiobooks

Get User's Saved Audiobooks
me.audiobooks.list(**kwargs) -> CursorURLPage<AudiobookListResponse { added_at, audiobook, published } >
GET/me/audiobooks
Save Audiobooks for Current User
me.audiobooks.save(**kwargs) -> void
PUT/me/audiobooks
Remove User's Saved Audiobooks
me.audiobooks.remove(**kwargs) -> void
DELETE/me/audiobooks
Check User's Saved Audiobooks
me.audiobooks.check(**kwargs) -> AudiobookCheckResponse
GET/me/audiobooks/contains

MePlaylists

Get Current User's Playlists
me.playlists.list(**kwargs) -> CursorURLPage<SimplifiedPlaylistObject { id, collaborative, description, 10 more } >
GET/me/playlists

MeTop

Get User's Top Tracks
me.top.list_top_tracks(**kwargs) -> CursorURLPage<TrackObject { id, album, artists, 18 more } >
GET/me/top/tracks
Get User's Top Artists
me.top.list_top_artists(**kwargs) -> CursorURLPage<ArtistObject { id, external_urls, followers, 8 more } >
GET/me/top/artists

MeAlbums

Get User's Saved Albums
me.albums.list(**kwargs) -> CursorURLPage<AlbumListResponse { added_at, album, published } >
GET/me/albums
Save Albums for Current User
me.albums.save(**kwargs) -> void
PUT/me/albums
Remove Users' Saved Albums
me.albums.remove(**kwargs) -> void
DELETE/me/albums
Check User's Saved Albums
me.albums.check(**kwargs) -> AlbumCheckResponse
GET/me/albums/contains

MeTracks

Get User's Saved Tracks
me.tracks.list(**kwargs) -> CursorURLPage<TrackListResponse { added_at, published, track } >
GET/me/tracks
Save Tracks for Current User
me.tracks.save(**kwargs) -> void
PUT/me/tracks
Remove User's Saved Tracks
me.tracks.remove(**kwargs) -> void
DELETE/me/tracks
Check User's Saved Tracks
me.tracks.check(**kwargs) -> TrackCheckResponse
GET/me/tracks/contains

MeEpisodes

Get User's Saved Episodes
me.episodes.list(**kwargs) -> CursorURLPage<EpisodeListResponse { added_at, episode, published } >
GET/me/episodes
Save Episodes for Current User
me.episodes.save(**kwargs) -> void
PUT/me/episodes
Remove User's Saved Episodes
me.episodes.remove(**kwargs) -> void
DELETE/me/episodes
Check User's Saved Episodes
me.episodes.check(**kwargs) -> EpisodeCheckResponse
GET/me/episodes/contains

MeShows

Get User's Saved Shows
me.shows.list(**kwargs) -> CursorURLPage<ShowListResponse { added_at, published, show } >
GET/me/shows
Save Shows for Current User
me.shows.save(**kwargs) -> void
PUT/me/shows
Remove User's Saved Shows
me.shows.remove(**kwargs) -> void
DELETE/me/shows
Check User's Saved Shows
me.shows.check(**kwargs) -> ShowCheckResponse
GET/me/shows/contains

MeFollowing

Get Followed Artists
me.following.bulk_retrieve(**kwargs) -> FollowingBulkRetrieveResponse { artists }
GET/me/following
Follow Artists or Users
me.following.follow(**kwargs) -> void
PUT/me/following
Unfollow Artists or Users
me.following.unfollow(**kwargs) -> void
DELETE/me/following
Check If User Follows Artists or Users
me.following.check(**kwargs) -> FollowingCheckResponse
GET/me/following/contains

MePlayer

Get Playback State
me.player.get_state(**kwargs) -> PlayerGetStateResponse { actions, context, currently_playing_type, 8 more }
GET/me/player
Transfer Playback
me.player.transfer(**kwargs) -> void
PUT/me/player
Get Available Devices
me.player.get_devices() -> PlayerGetDevicesResponse { devices }
GET/me/player/devices
Get Currently Playing Track
me.player.get_currently_playing(**kwargs) -> PlayerGetCurrentlyPlayingResponse { actions, context, currently_playing_type, 5 more }
GET/me/player/currently-playing
Start/Resume Playback
me.player.start_playback(**kwargs) -> void
PUT/me/player/play
Pause Playback
me.player.pause_playback(**kwargs) -> void
PUT/me/player/pause
Skip To Next
me.player.skip_next(**kwargs) -> void
POST/me/player/next
Skip To Previous
me.player.skip_previous(**kwargs) -> void
POST/me/player/previous
Seek To Position
me.player.seek_to_position(**kwargs) -> void
PUT/me/player/seek
Set Repeat Mode
me.player.set_repeat_mode(**kwargs) -> void
PUT/me/player/repeat
Set Playback Volume
me.player.set_volume(**kwargs) -> void
PUT/me/player/volume
Toggle Playback Shuffle
me.player.toggle_shuffle(**kwargs) -> void
PUT/me/player/shuffle
Get Recently Played Tracks
me.player.list_recently_played(**kwargs) -> CursorURLPage<PlayerListRecentlyPlayedResponse { context, played_at, published, track } >
GET/me/player/recently-played
ModelsExpand Collapse
class ContextObject { external_urls, href, published, 2 more }
external_urls: ExternalURLObject { published, spotify }

External URLs for this context.

published: bool

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: String

The Spotify URL for the object.

href: String

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

published: bool

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: String

The object type, e.g. "artist", "playlist", "album", "show".

uri: String

The Spotify URI for the context.

class DeviceObject { id, is_active, is_private_session, 6 more }
id: String

The device ID. This ID is unique and persistent to some extent. However, this is not guaranteed and any cached device_id should periodically be cleared out and refetched as necessary.

is_active: bool

If this device is the currently active device.

is_private_session: bool

If this device is currently in a private session.

is_restricted: bool

Whether controlling this device is restricted. At present if this is "true" then no Web API commands will be accepted by this device.

name: String

A human-readable name for the device. Some devices have a name that the user can configure (e.g. "Loudest speaker") and some devices have a generic name associated with the manufacturer or device model.

published: bool

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

supports_volume: bool

If this device can be used to set the volume.

type: String

Device type, such as "computer", "smartphone" or "speaker".

volume_percent: Integer

The current volume in percent.

minimum0
maximum100

MePlayerQueue

Get the User's Queue
me.player.queue.get() -> QueueGetResponse { currently_playing, published, queue }
GET/me/player/queue
Add Item to Playback Queue
me.player.queue.add(**kwargs) -> void
POST/me/player/queue