openapi: 3.0.3 info: description: 'You can use Spotify''s Web API to discover music and podcasts, manage your Spotify library, control audio playback, and much more. Browse our available Web API endpoints using the sidebar at left, or via the navigation bar on top of this page on smaller screens. In order to make successful Web API requests your app will need a valid access token. One can be obtained through OAuth 2.0. The base URI for all Web API requests is `https://api.spotify.com/v1`. Need help? See our Web API guides for more information, or visit the Spotify for Developers community forum to ask questions and connect with other developers. ' version: 1.0.0 title: Spotify Web Albums Artists API termsOfService: https://developer.spotify.com/terms/ contact: name: Spotify for Developers Community url: https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotify_Developer servers: - url: https://api.spotify.com/v1 tags: - name: Artists paths: /artists/{id}: get: tags: - Artists operationId: get-an-artist x-spotify-policy-list: $ref: '#/components/x-spotify-policy/metadataPolicyList' summary: 'Get Artist ' description: 'Get Spotify catalog information for a single artist identified by their unique Spotify ID. ' parameters: - $ref: '#/components/parameters/PathArtistId' responses: '200': $ref: '#/components/responses/OneArtist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: [] /artists: get: deprecated: true tags: - Artists operationId: get-multiple-artists x-spotify-policy-list: $ref: '#/components/x-spotify-policy/metadataPolicyList' summary: 'Get Several Artists ' description: 'Get Spotify catalog information for several artists based on their Spotify IDs. ' parameters: - name: ids required: true in: query schema: title: Spotify Artist IDs description: 'A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids) for the artists. Maximum: 50 IDs. ' example: 2CIMQHirSU0MQqyYHq0eOx,57dN52uHvrHOxijzpIgu3E,1vCWHaC5f2uS3yhpwWbIA6 type: string responses: '200': $ref: '#/components/responses/ManyArtists' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: [] /artists/{id}/albums: get: tags: - Artists operationId: get-an-artists-albums x-spotify-policy-list: $ref: '#/components/x-spotify-policy/metadataPolicyList' summary: 'Get Artist''s Albums ' description: 'Get Spotify catalog information about an artist''s albums. ' parameters: - $ref: '#/components/parameters/PathArtistId' - $ref: '#/components/parameters/QueryIncludeGroups' - $ref: '#/components/parameters/QueryMarket' - name: limit required: false in: query schema: title: Limit description: 'The maximum number of items to return. Default: 5. Minimum: 1. Maximum: 10. ' default: 5 example: 5 type: integer minimum: 0 maximum: 10 - $ref: '#/components/parameters/QueryOffset' responses: '200': $ref: '#/components/responses/PagingArtistDiscographyAlbumObject' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: [] /artists/{id}/top-tracks: get: deprecated: true tags: - Artists operationId: get-an-artists-top-tracks x-spotify-policy-list: $ref: '#/components/x-spotify-policy/metadataPolicyList' summary: 'Get Artist''s Top Tracks ' description: 'Get Spotify catalog information about an artist''s top tracks by country. ' parameters: - $ref: '#/components/parameters/PathArtistId' - $ref: '#/components/parameters/QueryMarket' responses: '200': $ref: '#/components/responses/ManyTracks' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: [] /artists/{id}/related-artists: get: deprecated: true tags: - Artists operationId: get-an-artists-related-artists x-spotify-policy-list: $ref: '#/components/x-spotify-policy/metadataPolicyList' summary: 'Get Artist''s Related Artists ' description: 'Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the Spotify community''s listening history. ' parameters: - $ref: '#/components/parameters/PathArtistId' responses: '200': $ref: '#/components/responses/ManyArtists' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: [] /me/following: get: tags: - Artists operationId: get-followed summary: 'Get Followed Artists ' description: 'Get the current user''s followed artists. ' parameters: - name: type required: true in: query schema: title: Item Type description: 'The ID type: currently only `artist` is supported. ' enum: - artist example: artist type: string - name: after required: false in: query schema: title: After description: 'The last artist ID retrieved from the previous request. ' example: 0I2XqVXqHScXjHhk6AYYRe type: string - name: limit required: false in: query schema: title: Limit description: 'The maximum number of items to return. Default: 20\. Minimum: 1\. Maximum: 50\. ' default: 20 example: 10 type: integer minimum: 0 maximum: 50 responses: '200': $ref: '#/components/responses/CursorPagedArtists' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-follow-read put: deprecated: true tags: - Artists operationId: follow-artists-users summary: 'Follow Artists or Users ' description: 'Add the current user as a follower of one or more artists or other Spotify users. **Note:** This endpoint is deprecated. Use [Save Items to Library](/documentation/web-api/reference/save-library-items) instead. ' parameters: - name: type required: true in: query schema: title: Item Type description: 'The ID type. ' enum: - artist - user example: artist type: string - name: ids required: true in: query schema: title: Spotify IDs description: 'A comma-separated list of the artist or the user [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). A maximum of 50 IDs can be sent in one request. ' example: 2CIMQHirSU0MQqyYHq0eOx,57dN52uHvrHOxijzpIgu3E,1vCWHaC5f2uS3yhpwWbIA6 type: string requestBody: content: application/json: schema: type: object additionalProperties: true required: - ids properties: ids: type: array description: 'A JSON array of the artist or user [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `{ids:["74ASZWbe4lXaubB36ztrGX", "08td7MxkoHQkXnWAYD8d6Q"]}`. A maximum of 50 IDs can be sent in one request. _**Note**: if the `ids` parameter is present in the query string, any IDs listed here in the body will be ignored._ ' items: type: string responses: '204': description: Artist or user followed '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-follow-modify delete: deprecated: true tags: - Artists operationId: unfollow-artists-users summary: 'Unfollow Artists or Users ' description: 'Remove the current user as a follower of one or more artists or other Spotify users. **Note:** This endpoint is deprecated. Use [Remove Items from Library](/documentation/web-api/reference/remove-library-items) instead. ' parameters: - name: type required: true in: query schema: title: Item Type description: 'The ID type: either `artist` or `user`. ' enum: - artist - user example: artist type: string - name: ids required: true in: query schema: title: Spotify IDs description: 'A comma-separated list of the artist or the user [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q`. A maximum of 50 IDs can be sent in one request. ' example: 2CIMQHirSU0MQqyYHq0eOx,57dN52uHvrHOxijzpIgu3E,1vCWHaC5f2uS3yhpwWbIA6 type: string requestBody: content: application/json: schema: type: object additionalProperties: true properties: ids: type: array description: 'A JSON array of the artist or user [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `{ids:["74ASZWbe4lXaubB36ztrGX", "08td7MxkoHQkXnWAYD8d6Q"]}`. A maximum of 50 IDs can be sent in one request. _**Note**: if the `ids` parameter is present in the query string, any IDs listed here in the body will be ignored._ ' items: type: string responses: '204': description: Artist or user unfollowed '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-follow-modify /me/following/contains: get: tags: - Artists operationId: check-current-user-follows summary: 'Check If User Follows Artists or Users ' deprecated: true description: 'Check to see if the current user is following one or more artists or other Spotify users. **Note:** This endpoint is deprecated. Use [Check User''s Saved Items](/documentation/web-api/reference/check-library-contains) instead. ' parameters: - name: type required: true in: query schema: title: Item Type description: 'The ID type: either `artist` or `user`. ' enum: - artist - user example: artist type: string - name: ids required: true in: query schema: title: Spotify IDs description: 'A comma-separated list of the artist or the user [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids) to check. For example: `ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q`. A maximum of 50 IDs can be sent in one request. ' example: 2CIMQHirSU0MQqyYHq0eOx,57dN52uHvrHOxijzpIgu3E,1vCWHaC5f2uS3yhpwWbIA6 type: string responses: '200': $ref: '#/components/responses/ArrayOfBooleans' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-follow-read components: x-spotify-policy: metadataPolicyList: - $ref: '#/components/x-spotify-policy/policies/Downloading' - $ref: '#/components/x-spotify-policy/policies/VisualAlteration' - $ref: '#/components/x-spotify-policy/policies/Attribution' schemas: TrackRestrictionObject: type: object x-spotify-docs-type: TrackRestrictionObject properties: reason: type: string description: '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. ' AlbumBase: type: object required: - album_type - total_tracks - available_markets - external_urls - href - id - images - name - release_date - release_date_precision - type - uri properties: album_type: type: string description: 'The type of the album. ' enum: - album - single - compilation example: compilation total_tracks: type: integer description: The number of tracks in the album. example: 9 available_markets: deprecated: true type: array items: type: string example: - CA - BR - IT description: 'The markets in which the album is available: [ISO 3166-1 alpha-2 country codes](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). _**NOTE**: an album is considered available in a market when at least 1 of its tracks is available in that market._ ' external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'Known external URLs for this album. ' href: type: string description: 'A link to the Web API endpoint providing full details of the album. ' id: type: string description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the album. ' example: 2up3OPMp9Tb4dAKM2erWXQ images: type: array items: $ref: '#/components/schemas/ImageObject' description: 'The cover art for the album in various sizes, widest first. ' name: type: string description: 'The name of the album. In case of an album takedown, the value may be an empty string. ' release_date: type: string example: 1981-12 description: 'The date the album was first released. ' release_date_precision: type: string enum: - year - month - day example: year description: 'The precision with which `release_date` value is known. ' restrictions: allOf: - $ref: '#/components/schemas/AlbumRestrictionObject' description: 'Included in the response when a content restriction is applied. ' type: type: string enum: - album description: 'The object type. ' uri: type: string example: spotify:album:2up3OPMp9Tb4dAKM2erWXQ description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the album. ' PagingArtistDiscographyAlbumObject: type: object x-spotify-docs-type: PagingArtistDiscographyAlbumObject allOf: - $ref: '#/components/schemas/PagingObject' - type: object properties: items: type: array items: $ref: '#/components/schemas/ArtistDiscographyAlbumObject' ExternalUrlObject: type: object x-spotify-docs-type: ExternalUrlObject properties: spotify: type: string description: 'The [Spotify URL](/documentation/web-api/concepts/spotify-uris-ids) for the object. ' ArtistDiscographyAlbumObject: x-spotify-docs-type: ArtistDiscographyAlbumObject allOf: - $ref: '#/components/schemas/SimplifiedAlbumObject' - type: object required: - album_group properties: album_group: deprecated: true type: string enum: - album - single - compilation - appears_on example: compilation description: 'This field describes the relationship between the artist and the album. ' CursorObject: type: object x-spotify-docs-type: CursorObject properties: after: type: string description: The cursor to use as key to find the next page of items. before: type: string description: The cursor to use as key to find the previous page of items. ErrorObject: type: object x-spotify-docs-type: ErrorObject required: - status - message properties: status: type: integer minimum: 400 maximum: 599 description: 'The HTTP status code (also returned in the response header; see [Response Status Codes](/documentation/web-api/concepts/api-calls#response-status-codes) for more information). ' message: type: string description: 'A short description of the cause of the error. ' CursorPagingObject: type: object x-spotify-docs-type: CursorPagingObject properties: href: type: string description: A link to the Web API endpoint returning the full result of the request. limit: type: integer description: The maximum number of items in the response (as set in the query or by default). next: type: string description: URL to the next page of items. ( `null` if none) cursors: allOf: - $ref: '#/components/schemas/CursorObject' description: The cursors used to find the next set of items. total: type: integer description: The total number of items available to return. ImageObject: type: object x-spotify-docs-type: ImageObject required: - url - height - width properties: url: type: string example: 'https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228 ' description: 'The source URL of the image. ' height: type: integer example: 300 nullable: true description: 'The image height in pixels. ' width: type: integer example: 300 nullable: true description: 'The image width in pixels. ' ArtistObject: type: object x-spotify-docs-type: ArtistObject properties: external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'Known external URLs for this artist. ' followers: deprecated: true allOf: - $ref: '#/components/schemas/FollowersObject' description: 'Information about the followers of the artist. ' genres: deprecated: true type: array items: type: string example: - Prog rock - Grunge description: 'A list of the genres the artist is associated with. If not yet classified, the array is empty. ' href: type: string description: 'A link to the Web API endpoint providing full details of the artist. ' id: type: string description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the artist. ' images: type: array items: $ref: '#/components/schemas/ImageObject' description: 'Images of the artist in various sizes, widest first. ' name: type: string description: 'The name of the artist. ' popularity: deprecated: true type: integer description: 'The popularity of the artist. The value will be between 0 and 100, with 100 being the most popular. The artist''s popularity is calculated from the popularity of all the artist''s tracks. ' type: type: string enum: - artist description: 'The object type. ' uri: type: string description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the artist. ' AlbumRestrictionObject: type: object x-spotify-docs-type: AlbumRestrictionObject properties: reason: type: string enum: - market - product - explicit description: '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. ' PagingObject: type: object x-spotify-docs-type: PagingObject required: - href - items - limit - next - offset - previous - total properties: href: type: string example: 'https://api.spotify.com/v1/me/shows?offset=0&limit=20 ' description: 'A link to the Web API endpoint returning the full result of the request ' limit: type: integer example: 20 description: 'The maximum number of items in the response (as set in the query or by default). ' next: type: string example: https://api.spotify.com/v1/me/shows?offset=1&limit=1 nullable: true description: 'URL to the next page of items. ( `null` if none) ' offset: type: integer example: 0 description: 'The offset of the items returned (as set in the query or by default) ' previous: type: string example: https://api.spotify.com/v1/me/shows?offset=1&limit=1 nullable: true description: 'URL to the previous page of items. ( `null` if none) ' total: type: integer example: 4 description: 'The total number of items available to return. ' FollowersObject: type: object x-spotify-docs-type: FollowersObject properties: href: type: string nullable: true description: 'This will always be set to null, as the Web API does not support it at the moment. ' total: type: integer description: 'The total number of followers. ' SimplifiedArtistObject: type: object x-spotify-docs-type: SimplifiedArtistObject properties: external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'Known external URLs for this artist. ' href: type: string description: 'A link to the Web API endpoint providing full details of the artist. ' id: type: string description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the artist. ' name: type: string description: 'The name of the artist. ' type: type: string enum: - artist description: 'The object type. ' uri: type: string description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the artist. ' TrackObject: type: object x-spotify-docs-type: TrackObject properties: album: allOf: - $ref: '#/components/schemas/SimplifiedAlbumObject' description: 'The album on which the track appears. The album object includes a link in `href` to full information about the album. ' artists: type: array items: $ref: '#/components/schemas/SimplifiedArtistObject' description: 'The artists who performed the track. Each artist object includes a link in `href` to more detailed information about the artist. ' available_markets: deprecated: true type: array items: type: string description: 'A list of the countries in which the track can be played, identified by their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code. ' disc_number: type: integer description: 'The disc number (usually `1` unless the album consists of more than one disc). ' duration_ms: type: integer description: 'The track length in milliseconds. ' explicit: type: boolean description: 'Whether or not the track has explicit lyrics ( `true` = yes it does; `false` = no it does not OR unknown). ' external_ids: allOf: - $ref: '#/components/schemas/ExternalIdObject' description: 'Known external IDs for the track. ' external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'Known external URLs for this track. ' href: type: string description: 'A link to the Web API endpoint providing full details of the track. ' id: type: string description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the track. ' is_playable: type: boolean description: 'Part of the response when [Track Relinking](/documentation/web-api/concepts/track-relinking) is applied. If `true`, the track is playable in the given market. Otherwise `false`. ' linked_from: deprecated: true type: object description: 'Part of the response when [Track Relinking](/documentation/web-api/concepts/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. ' restrictions: allOf: - $ref: '#/components/schemas/TrackRestrictionObject' description: 'Included in the response when a content restriction is applied. ' name: type: string description: 'The name of the track. ' popularity: deprecated: true type: integer description: '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: deprecated: true type: string nullable: true description: 'A link to a 30 second preview (MP3 format) of the track. Can be `null` ' x-spotify-policy-list: - $ref: '#/components/x-spotify-policy/policies/StandalonePreview' track_number: type: integer description: 'The number of the track. If an album has several discs, the track number is the number on the specified disc. ' type: type: string description: 'The object type: "track". ' enum: - track uri: type: string description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the track. ' is_local: type: boolean description: 'Whether or not the track is from a local file. ' SimplifiedAlbumObject: x-spotify-docs-type: SimplifiedAlbumObject allOf: - $ref: '#/components/schemas/AlbumBase' - type: object required: - artists properties: artists: type: array items: $ref: '#/components/schemas/SimplifiedArtistObject' description: 'The artists of the album. Each artist object includes a link in `href` to more detailed information about the artist. ' ExternalIdObject: type: object x-spotify-docs-type: ExternalIdObject properties: isrc: type: string description: '[International Standard Recording Code](http://en.wikipedia.org/wiki/International_Standard_Recording_Code) ' ean: type: string description: '[International Article Number](http://en.wikipedia.org/wiki/International_Article_Number_%28EAN%29) ' upc: type: string description: '[Universal Product Code](http://en.wikipedia.org/wiki/Universal_Product_Code) ' CursorPagingSimplifiedArtistObject: type: object x-spotify-docs-type: PagingArtistObject allOf: - $ref: '#/components/schemas/CursorPagingObject' - type: object properties: items: type: array items: $ref: '#/components/schemas/ArtistObject' responses: CursorPagedArtists: description: A paged set of artists content: application/json: schema: type: object required: - artists properties: artists: $ref: '#/components/schemas/CursorPagingSimplifiedArtistObject' Forbidden: description: 'Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won''t help here. ' content: application/json: schema: type: object required: - error properties: error: $ref: '#/components/schemas/ErrorObject' OneArtist: description: An artist content: application/json: schema: $ref: '#/components/schemas/ArtistObject' ManyTracks: description: A set of tracks content: application/json: schema: type: object required: - tracks properties: tracks: type: array items: $ref: '#/components/schemas/TrackObject' PagingArtistDiscographyAlbumObject: description: Pages of albums content: application/json: schema: $ref: '#/components/schemas/PagingArtistDiscographyAlbumObject' Unauthorized: description: 'Bad or expired token. This can happen if the user revoked a token or the access token has expired. You should re-authenticate the user. ' content: application/json: schema: type: object required: - error properties: error: $ref: '#/components/schemas/ErrorObject' ArrayOfBooleans: description: Array of booleans content: application/json: schema: type: array example: - false - true items: type: boolean ManyArtists: description: A set of artists content: application/json: schema: type: object required: - artists properties: artists: type: array items: $ref: '#/components/schemas/ArtistObject' TooManyRequests: description: 'The app has exceeded its rate limits. ' content: application/json: schema: type: object required: - error properties: error: $ref: '#/components/schemas/ErrorObject' parameters: PathArtistId: name: id required: true in: path schema: title: Spotify Artist ID description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) of the artist. ' example: 0TnOYISbd1XYRBk9myaseg type: string QueryMarket: name: market required: false in: query schema: title: Market description: "An [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).\n If a country code is specified, only content that is available in that market will be returned.
\n If a valid user access token is specified in the request header, the country associated with\n the user account will take priority over this parameter.
\n _**Note**: If neither market or user country are provided, the content is considered unavailable for the client._
\n Users can view the country that is associated with their account in the [account settings](https://www.spotify.com/account/overview/).\n" example: ES type: string QueryOffset: name: offset required: false in: query schema: title: Offset description: 'The index of the first item to return. Default: 0 (the first item). Use with limit to get the next set of items. ' default: 0 example: 5 type: integer QueryIncludeGroups: name: include_groups required: false in: query schema: title: Groups to include (single, album, appears_on, compilation) description: 'A comma-separated list of keywords that will be used to filter the response. If not supplied, all album types will be returned.
Valid values are:
- `album`
- `single`
- `appears_on`
- `compilation`
For example: `include_groups=album,single`. ' example: single,appears_on type: string securitySchemes: oauth_2_0: type: oauth2 description: Spotify supports OAuth 2.0 for authenticating all API requests. flows: authorizationCode: authorizationUrl: https://accounts.spotify.com/authorize tokenUrl: https://accounts.spotify.com/api/token scopes: app-remote-control: 'Communicate with the Spotify app on your device. ' playlist-read-private: 'Access your private playlists. ' playlist-read-collaborative: 'Access your collaborative playlists. ' playlist-modify-public: 'Manage your public playlists. ' playlist-modify-private: 'Manage your private playlists. ' user-library-read: 'Access your saved content. ' user-library-modify: 'Manage your saved content. ' user-read-private: 'Access your subscription details. ' user-read-email: 'Get your real email address. ' user-follow-read: 'Access your followers and who you are following. ' user-follow-modify: 'Manage your saved content. ' user-top-read: 'Read your top artists and content. ' user-read-playback-position: 'Read your position in content you have played. ' user-read-playback-state: 'Read your currently playing content and Spotify Connect devices information. ' user-read-recently-played: 'Access your recently played items. ' user-read-currently-playing: 'Read your currently playing content. ' user-modify-playback-state: 'Control playback on your Spotify clients and Spotify Connect devices. ' ugc-image-upload: 'Upload images to Spotify on your behalf. ' streaming: 'Play content and control playback on your other devices. '