Our Web API endpoints give external applications access to Spotify catalog and user data.

Web API Base URL: https://api.spotify.com        User Guide | Tutorial | Code Examples

MethodEndpointUsageReturns 
GET
/v1/albums/{id}Get an albumalbum
GET /v1/albums?ids={ids}
Get several albumsalbums
GET/v1/albums/{id}/tracks Get an album's trackstracks*
GET
/v1/artists/{id}
Get an artistartist
GET
/v1/artists?ids={ids}
Get several artistsartists
GET/v1/artists/{id}/albumsGet an artist's albumsalbums*
GET/v1/artists/{id}/top-tracksGet an artist's top trackstracks
GET/v1/artists/{id}/related-artistsGet an artist's related artistsartists
GET/v1/browse/featured-playlists Get a list of featured playlists playlistsOAuth
GET/v1/browse/new-releasesGet a list of new releasesalbums*OAuth
GET/v1/browse/categoriesGet a list of categoriescategoriesOAuth
GET/v1/browse/categories/{id}Get a categorycategoryOAuth
GET/v1/browse/categories/{id}/playlistsGet a category's playlistsplaylists*OAuth
GET/v1/meGet current user's profileuserOAuth
GET/v1/me/followingGet Followed ArtistsartistsOAuth
PUT/v1/me/followingFollow Artists or Users-OAuth
DELETE/v1/me/followingUnfollow Artists or Users-OAuth
GET/v1/me/following/containsCheck if User Follows Users or Artiststrue/falseOAuth
PUT/v1/users/{owner_id}/playlists/{playlist_id}/followersFollow a Playlist-OAuth
DELETE/v1/users/{owner_id}/playlists/{playlist_id}/followersUnfollow a Playlist-OAuth
PUT/v1/me/tracks?ids={ids}
Save tracks for user-OAuth
GET
/v1/me/tracks
Get user's saved trackstracksOAuth
DELETE/v1/me/tracks?ids={ids}Remove user's saved tracks-OAuth
GET
/v1/me/tracks/contains?ids={ids}
Check user's saved trackstrue/falseOAuth
GET
/v1/search?type=album
Search for an albumalbums*
GET
/v1/search?type=artist
Search for an artistartists
GET/v1/search?type=playlistSearch for a playlistplaylists*
GET/v1/search?type=trackSearch for a tracktracks
GET
/v1/tracks/{id}
Get a tracktracks
GET
/v1/tracks?ids={ids}
Get several trackstracks
GET
/v1/users/{user_id}
Get a user's profileuser*
GET /v1/users/{user_id}/playlistsGet a list of a user's playlistsplaylists*OAuth
GET /v1/users/{user_id}/playlists/{playlist_id}Get a playlistplaylistOAuth
GET /v1/users/{user_id}/playlists/{playlist_id}/tracksGet a playlist's trackstracksOAuth
POST/v1/users/{user_id}/playlistsCreate a playlistplaylistOAuth
PUT/v1/users/{user_id}/playlists/{playlist_id}Change a playlist's details-OAuth
POST/v1/users/{user_id}/playlists/{playlist_id}/tracksAdd tracks to a playlist-OAuth
DELETE/v1/users/{user_id}/playlists/{playlist_id}/tracksRemove tracks from a playlistsnapshot_idOAuth
PUT/v1/users/{user_id}/playlists/{playlist_id}/tracksReorder a playlist's trackssnapshot_idOAuth
PUT/v1/users/{user_id}/playlists/{playlist_id}/tracksReplace a playlist's tracks-OAuth
GET/v1/users/{user_id}/playlists/{playlist_id}/followers/containsCheck if Users Follow a Playlisttrue/falseOAuth

* Simplified objects

Authorization

Endpoints marked “OAuth” above require application registration and user authorization via the Spotify Accounts Service to access certain data.

Accounts Service Base URL: https://accounts.spotify.com       Authorization Guide | Using Scopes | Tutorial

Method
Endpoint
Usage
GET
/authorize
Get an authorization code
POST
/api/token
Get an access token (or an access token and refresh token)

Note that all endpoints benefit from increased rate limits when a valid access token is passed in the call.

API Specification

We have made available a specification of our API using RAML that you can find on the Web API GitHub repo.

RAML is a YAML-based language that describes RESTful APIs and provides all the information necessary to describe RESTful APIs, create API client-code and API server-code generators, and create API user documentation from RAML API definitions.