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 Playlists 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: Playlists
paths:
/playlists/{playlist_id}:
get:
tags:
- Playlists
operationId: get-playlist
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/metadataWithMachineLearningPolicyList'
summary: 'Get Playlist
'
description: 'Get a playlist owned by a Spotify user.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
- $ref: '#/components/parameters/QueryMarket'
- name: fields
required: false
in: query
schema:
title: Fields
description: 'Filters for the query: a comma-separated list of the
fields to return. If omitted, all fields are returned. For example, to get
just the playlist''''s description and URI: `fields=description,uri`. A dot
separator can be used to specify non-reoccurring fields, while parentheses
can be used to specify reoccurring fields within objects. For example, to
get just the added date and user ID of the adder: `fields=tracks.items(added_at,added_by.id)`.
Use multiple parentheses to drill down into nested objects, for example: `fields=tracks.items(track(name,href,album(name,href)))`.
Fields can be excluded by prefixing them with an exclamation mark, for example:
`fields=tracks.items(track(name,href,album(!name,href)))`
'
example: items(added_by.id,track(name,href,album(name,href)))
type: string
- $ref: '#/components/parameters/QueryAdditionalTypes'
responses:
'200':
$ref: '#/components/responses/OnePlaylist'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0: []
put:
tags:
- Playlists
operationId: change-playlist-details
summary: 'Change Playlist Details
'
description: 'Change a playlist''s name and public/private state. (The user must, of
course, own the playlist.)
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
requestBody:
content:
application/json:
schema:
example:
name: Updated Playlist Name
description: Updated playlist description
public: false
type: object
additionalProperties: true
properties:
name:
type: string
description: 'The new name for the playlist, for example `"My New Playlist Title"`
'
public:
type: boolean
description: '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](/documentation/web-api/concepts/playlists)
'
collaborative:
type: boolean
description: 'If `true`, the playlist will become collaborative and other users will be able to modify the playlist in their Spotify client.
_**Note**: You can only set `collaborative` to `true` on non-public playlists._
'
description:
type: string
description: 'Value for playlist description as displayed in Spotify Clients and in the Web API.
'
responses:
'200':
description: Playlist updated
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
/playlists/{playlist_id}/tracks:
get:
tags:
- Playlists
operationId: get-playlists-tracks
deprecated: true
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/metadataWithMachineLearningPolicyList'
summary: 'Get Playlist Items [DEPRECATED]
'
description: '**Deprecated:** Use [Get Playlist Items](/documentation/web-api/reference/get-playlists-items) instead.
Get full details of the items of a playlist owned by a Spotify user.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
- $ref: '#/components/parameters/QueryMarket'
- name: fields
required: false
in: query
schema:
title: Fields
description: 'Filters for the query: a comma-separated list of the
fields to return. If omitted, all fields are returned. For example, to get
just the total number of items and the request limit:
`fields=total,limit`
A
dot separator can be used to specify non-reoccurring fields, while parentheses
can be used to specify reoccurring fields within objects. For example, to
get just the added date and user ID of the adder:
`fields=items(added_at,added_by.id)`
Use
multiple parentheses to drill down into nested objects, for example:
`fields=items(track(name,href,album(name,href)))`
Fields
can be excluded by prefixing them with an exclamation mark, for example:
`fields=items.track.album(!external_urls,images)`
'
example: items(added_by.id,track(name,href,album(name,href)))
type: string
- $ref: '#/components/parameters/QueryLimit'
- $ref: '#/components/parameters/QueryOffset'
- $ref: '#/components/parameters/QueryAdditionalTypes'
responses:
'200':
$ref: '#/components/responses/PagingPlaylistTrackObject'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-read-private
post:
tags:
- Playlists
operationId: add-tracks-to-playlist
deprecated: true
summary: 'Add Items to Playlist [DEPRECATED]
'
description: '**Deprecated:** Use [Add Items to Playlist](/documentation/web-api/reference/add-items-to-playlist) instead.
Add one or more items to a user''s playlist.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
- name: position
required: false
in: query
schema:
title: Position (append by default)
description: 'The position to insert the items, a zero-based index. For example, to insert the items in the first position: `position=0`; to insert the items in the third position: `position=2`. If omitted, the items will be appended to the playlist. Items are added in the order they are listed in the query string or request body.
'
example: 0
type: integer
- name: uris
required: false
in: query
schema:
title: Spotify Track URIs
description: 'A comma-separated list of [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to add, can be track or episode URIs. For example:
`uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh, spotify:track:1301WleyT98MSxVHPZCA6M, spotify:episode:512ojhOuo1ktJprKbVcKyQ`
A maximum of 100 items can be added in one request.
_**Note**: it is likely that passing a large number of item URIs as a query parameter will exceed the maximum length of the request URI. When adding a large number of items, it is recommended to pass them in the request body, see below._
'
example: spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M
type: string
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
properties:
uris:
description: 'A JSON array of the [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to add. For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh","spotify:track:1301WleyT98MSxVHPZCA6M", "spotify:episode:512ojhOuo1ktJprKbVcKyQ"]}`
A maximum of 100 items can be added in one request. _**Note**: if the `uris` parameter is present in the query string, any URIs listed here in the body will be ignored._
'
type: array
items:
type: string
position:
description: 'The position to insert the items, a zero-based index. For example, to insert the items in the first position: `position=0` ; to insert the items in the third position: `position=2`. If omitted, the items will be appended to the playlist. Items are added in the order they appear in the uris array. For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh","spotify:track:1301WleyT98MSxVHPZCA6M"], "position": 3}`
'
type: integer
responses:
'201':
$ref: '#/components/responses/PlaylistSnapshotId'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
put:
tags:
- Playlists
operationId: reorder-or-replace-playlists-tracks
deprecated: true
summary: 'Update Playlist Items [DEPRECATED]
'
description: '**Deprecated:** Use [Update Playlist Items](/documentation/web-api/reference/reorder-or-replace-playlists-items) instead.
Either reorder or replace items in a playlist depending on the request''s parameters.
To reorder items, include `range_start`, `insert_before`, `range_length` and `snapshot_id` in the request''s body.
To replace items, include `uris` as either a query parameter or in the request''s body.
Replacing items in a playlist will overwrite its existing items. This operation can be used for replacing or clearing items in a playlist.
**Note**: Replace and reorder are mutually exclusive operations which share the same endpoint, but have different parameters.
These operations can''t be applied together in a single request.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
- name: uris
required: false
in: query
schema:
title: Spotify Track URIs
description: 'A comma-separated list of [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to set, can be track or episode URIs. For example: `uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M,spotify:episode:512ojhOuo1ktJprKbVcKyQ`
A maximum of 100 items can be set in one request.
'
type: string
requestBody:
content:
application/json:
schema:
example:
range_start: 1
insert_before: 3
range_length: 2
type: object
additionalProperties: true
properties:
uris:
type: array
items:
type: string
range_start:
type: integer
description: 'The position of the first item to be reordered.
'
insert_before:
type: integer
description: 'The position where the items should be inserted.
To reorder the items to the end of the playlist, simply set _insert_before_ to the position after the last item.
Examples:
To reorder the first item to the last position in a playlist with 10 items, set _range_start_ to 0, and _insert_before_ to 10.
To reorder the last item in a playlist with 10 items to the start of the playlist, set _range_start_ to 9, and _insert_before_ to 0.
'
range_length:
type: integer
description: 'The amount of items to be reordered. Defaults to 1 if not set.
The range of items to be reordered begins from the _range_start_ position, and includes the _range_length_ subsequent items.
Example:
To move the items at index 9-10 to the start of the playlist, _range_start_ is set to 9, and _range_length_ is set to 2.
'
snapshot_id:
type: string
description: 'The playlist''s snapshot ID against which you want to make the changes.
'
responses:
'200':
$ref: '#/components/responses/PlaylistSnapshotId'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
delete:
tags:
- Playlists
operationId: remove-tracks-playlist
deprecated: true
summary: 'Remove Playlist Items [DEPRECATED]
'
description: '**Deprecated:** Use [Remove Playlist Items](/documentation/web-api/reference/remove-items-playlist) instead.
Remove one or more items from a user''s playlist.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
requestBody:
content:
application/json:
schema:
type: object
required:
- tracks
properties:
tracks:
type: array
description: 'An array of objects containing [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) of the tracks or episodes to remove.
For example: `{ "tracks": [{ "uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" },{ "uri": "spotify:track:1301WleyT98MSxVHPZCA6M" }] }`. A maximum of 100 objects can be sent at once.
'
items:
type: object
properties:
uri:
type: string
description: Spotify URI
snapshot_id:
type: string
description: 'The playlist''s snapshot ID against which you want to make the changes.
The API will validate that the specified items exist and in the specified positions and make the changes,
even if more recent changes have been made to the playlist.
'
responses:
'200':
$ref: '#/components/responses/PlaylistSnapshotId'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
/playlists/{playlist_id}/items:
get:
tags:
- Playlists
operationId: get-playlists-items
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/metadataWithMachineLearningPolicyList'
summary: 'Get Playlist Items
'
description: 'Get full details of the items of a playlist owned by a Spotify user.
**Note**: This endpoint is only accessible for playlists owned by the current user or playlists the user is a collaborator of. A `403 Forbidden` status code will be returned if the user is neither the owner nor a collaborator of the playlist.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
- $ref: '#/components/parameters/QueryMarket'
- name: fields
required: false
in: query
schema:
title: Fields
description: 'Filters for the query: a comma-separated list of the
fields to return. If omitted, all fields are returned. For example, to get
just the total number of items and the request limit:
`fields=total,limit`
A
dot separator can be used to specify non-reoccurring fields, while parentheses
can be used to specify reoccurring fields within objects. For example, to
get just the added date and user ID of the adder:
`fields=items(added_at,added_by.id)`
Use
multiple parentheses to drill down into nested objects, for example:
`fields=items(track(name,href,album(name,href)))`
Fields
can be excluded by prefixing them with an exclamation mark, for example:
`fields=items.track.album(!external_urls,images)`
'
example: items(added_by.id,track(name,href,album(name,href)))
type: string
- $ref: '#/components/parameters/QueryLimit'
- $ref: '#/components/parameters/QueryOffset'
- $ref: '#/components/parameters/QueryAdditionalTypes'
responses:
'200':
$ref: '#/components/responses/PagingPlaylistTrackObject'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-read-private
post:
tags:
- Playlists
operationId: add-items-to-playlist
summary: 'Add Items to Playlist
'
description: 'Add one or more items to a user''s playlist.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
- name: position
required: false
in: query
schema:
title: Position (append by default)
description: 'The position to insert the items, a zero-based index. For example, to insert the items in the first position: `position=0`; to insert the items in the third position: `position=2`. If omitted, the items will be appended to the playlist. Items are added in the order they are listed in the query string or request body.
'
example: 0
type: integer
- name: uris
required: false
in: query
schema:
title: Spotify Track URIs
description: 'A comma-separated list of [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to add, can be track or episode URIs. For example:
`uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh, spotify:track:1301WleyT98MSxVHPZCA6M, spotify:episode:512ojhOuo1ktJprKbVcKyQ`
A maximum of 100 items can be added in one request.
_**Note**: it is likely that passing a large number of item URIs as a query parameter will exceed the maximum length of the request URI. When adding a large number of items, it is recommended to pass them in the request body, see below._
'
example: spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M
type: string
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
properties:
uris:
description: 'A JSON array of the [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to add. For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh","spotify:track:1301WleyT98MSxVHPZCA6M", "spotify:episode:512ojhOuo1ktJprKbVcKyQ"]}`
A maximum of 100 items can be added in one request. _**Note**: if the `uris` parameter is present in the query string, any URIs listed here in the body will be ignored._
'
type: array
items:
type: string
position:
description: 'The position to insert the items, a zero-based index. For example, to insert the items in the first position: `position=0` ; to insert the items in the third position: `position=2`. If omitted, the items will be appended to the playlist. Items are added in the order they appear in the uris array. For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh","spotify:track:1301WleyT98MSxVHPZCA6M"], "position": 3}`
'
type: integer
responses:
'201':
$ref: '#/components/responses/PlaylistSnapshotId'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
put:
tags:
- Playlists
operationId: reorder-or-replace-playlists-items
summary: 'Update Playlist Items
'
description: 'Either reorder or replace items in a playlist depending on the request''s parameters.
To reorder items, include `range_start`, `insert_before`, `range_length` and `snapshot_id` in the request''s body.
To replace items, include `uris` as either a query parameter or in the request''s body.
Replacing items in a playlist will overwrite its existing items. This operation can be used for replacing or clearing items in a playlist.
**Note**: Replace and reorder are mutually exclusive operations which share the same endpoint, but have different parameters.
These operations can''t be applied together in a single request.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
- name: uris
required: false
in: query
schema:
title: Spotify Track URIs
description: 'A comma-separated list of [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to set, can be track or episode URIs. For example: `uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M,spotify:episode:512ojhOuo1ktJprKbVcKyQ`
A maximum of 100 items can be set in one request.
'
type: string
requestBody:
content:
application/json:
schema:
example:
range_start: 1
insert_before: 3
range_length: 2
type: object
additionalProperties: true
properties:
uris:
type: array
items:
type: string
range_start:
type: integer
description: 'The position of the first item to be reordered.
'
insert_before:
type: integer
description: 'The position where the items should be inserted.
To reorder the items to the end of the playlist, simply set _insert_before_ to the position after the last item.
Examples:
To reorder the first item to the last position in a playlist with 10 items, set _range_start_ to 0, and _insert_before_ to 10.
To reorder the last item in a playlist with 10 items to the start of the playlist, set _range_start_ to 9, and _insert_before_ to 0.
'
range_length:
type: integer
description: 'The amount of items to be reordered. Defaults to 1 if not set.
The range of items to be reordered begins from the _range_start_ position, and includes the _range_length_ subsequent items.
Example:
To move the items at index 9-10 to the start of the playlist, _range_start_ is set to 9, and _range_length_ is set to 2.
'
snapshot_id:
type: string
description: 'The playlist''s snapshot ID against which you want to make the changes.
'
responses:
'200':
$ref: '#/components/responses/PlaylistSnapshotId'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
delete:
tags:
- Playlists
operationId: remove-items-playlist
summary: 'Remove Playlist Items
'
description: 'Remove one or more items from a user''s playlist.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
requestBody:
content:
application/json:
schema:
type: object
required:
- items
properties:
items:
type: array
description: 'An array of objects containing [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) of the tracks or episodes to remove.
For example: `{ "items": [{ "uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" },{ "uri": "spotify:track:1301WleyT98MSxVHPZCA6M" }] }`. A maximum of 100 objects can be sent at once.
'
items:
type: object
properties:
uri:
type: string
description: Spotify URI
snapshot_id:
type: string
description: 'The playlist''s snapshot ID against which you want to make the changes.
The API will validate that the specified items exist and in the specified positions and make the changes,
even if more recent changes have been made to the playlist.
'
responses:
'200':
$ref: '#/components/responses/PlaylistSnapshotId'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
/me/playlists:
get:
tags:
- Playlists
operationId: get-a-list-of-current-users-playlists
summary: 'Get Current User''s Playlists
'
description: 'Get a list of the playlists owned or followed by the current Spotify
user.
'
parameters:
- $ref: '#/components/parameters/QueryLimit'
- name: offset
required: false
in: query
schema:
title: Offset
description: '''The index of the first playlist to return. Default:
0 (the first object). Maximum offset: 100.000\. Use with `limit` to get the
next set of playlists.''
'
default: 0
example: 5
type: integer
responses:
'200':
$ref: '#/components/responses/PagedPlaylists'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-read-private
post:
tags:
- Playlists
operationId: create-playlist
summary: 'Create Playlist
'
description: 'Create a playlist for the current Spotify user. (The playlist will be empty until
you [add tracks](/documentation/web-api/reference/add-tracks-to-playlist).)
Each user is generally limited to a maximum of 11000 playlists.
'
requestBody:
content:
application/json:
schema:
example:
name: New Playlist
description: New playlist description
public: false
type: object
additionalProperties: true
required:
- name
properties:
name:
type: string
description: 'The name for the new playlist, for example `"Your Coolest Playlist"`. This name does not need to be unique; a user may have several playlists with the same name.
'
public:
type: boolean
description: 'Defaults to `true`. 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. To be able to create private playlists, the user must have granted the `playlist-modify-private` [scope](/documentation/web-api/concepts/scopes/#list-of-scopes). For more about public/private status, see [Working with Playlists](/documentation/web-api/concepts/playlists)
'
collaborative:
type: boolean
description: 'Defaults to `false`. If `true` the playlist will be collaborative. _**Note**: to create a collaborative playlist you must also set `public` to `false`. To create collaborative playlists you must have granted `playlist-modify-private` and `playlist-modify-public` [scopes](/documentation/web-api/concepts/scopes/#list-of-scopes)._
'
description:
type: string
description: 'value for playlist description as displayed in Spotify Clients and in the Web API.
'
responses:
'201':
$ref: '#/components/responses/OnePlaylist'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
/users/{user_id}/playlists:
get:
deprecated: true
tags:
- Playlists
operationId: get-list-users-playlists
summary: 'Get User''s Playlists
'
description: 'Get a list of the playlists owned or followed by a Spotify user.
'
parameters:
- $ref: '#/components/parameters/PathUserId'
- $ref: '#/components/parameters/QueryLimit'
- name: offset
required: false
in: query
schema:
title: Offset
description: 'The index of the first playlist to return. Default:
0 (the first object). Maximum offset: 100.000\. Use with `limit` to get the
next set of playlists.
'
default: 0
example: 5
type: integer
responses:
'200':
$ref: '#/components/responses/PagedPlaylists'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-read-private
- playlist-read-collaborative
post:
tags:
- Playlists
operationId: create-playlist-for-user
deprecated: true
summary: 'Create Playlist for user
'
description: '**Deprecated**: Use [Create Playlist](/documentation/web-api/reference/create-playlist) instead.
Create a playlist for a Spotify user. (The playlist will be empty until
you [add tracks](/documentation/web-api/reference/add-tracks-to-playlist).)
Each user is generally limited to a maximum of 11000 playlists.
'
parameters:
- $ref: '#/components/parameters/PathUserId'
requestBody:
content:
application/json:
schema:
example:
name: New Playlist
description: New playlist description
public: false
type: object
additionalProperties: true
required:
- name
properties:
name:
type: string
description: 'The name for the new playlist, for example `"Your Coolest Playlist"`. This name does not need to be unique; a user may have several playlists with the same name.
'
public:
type: boolean
description: 'Defaults to `true`. 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. To be able to create private playlists, the user must have granted the `playlist-modify-private` [scope](/documentation/web-api/concepts/scopes/#list-of-scopes). For more about public/private status, see [Working with Playlists](/documentation/web-api/concepts/playlists)
'
collaborative:
type: boolean
description: 'Defaults to `false`. If `true` the playlist will be collaborative. _**Note**: to create a collaborative playlist you must also set `public` to `false`. To create collaborative playlists you must have granted `playlist-modify-private` and `playlist-modify-public` [scopes](/documentation/web-api/concepts/scopes/#list-of-scopes)._
'
description:
type: string
description: 'value for playlist description as displayed in Spotify Clients and in the Web API.
'
responses:
'201':
$ref: '#/components/responses/OnePlaylist'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
/playlists/{playlist_id}/followers:
put:
deprecated: true
tags:
- Playlists
operationId: follow-playlist
description: 'Add the current user as a follower of a playlist.
**Note:** This endpoint is deprecated. Use [Save Items to Library](/documentation/web-api/reference/save-library-items) instead.
'
summary: 'Follow Playlist
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
requestBody:
content:
application/json:
schema:
example:
public: false
type: object
additionalProperties: true
properties:
public:
type: boolean
description: 'Defaults to `true`. If `true` the playlist will be included in user''s public playlists (added to profile), if `false` it will remain private. For more about public/private status, see [Working with Playlists](/documentation/web-api/concepts/playlists)
'
responses:
'200':
description: Playlist followed
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
delete:
deprecated: true
tags:
- Playlists
operationId: unfollow-playlist
summary: 'Unfollow Playlist
'
description: 'Remove the current user as a follower of a playlist.
**Note:** This endpoint is deprecated. Use [Remove Items from Library](/documentation/web-api/reference/remove-library-items) instead.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
responses:
'200':
description: Playlist unfollowed
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- playlist-modify-public
- playlist-modify-private
/browse/featured-playlists:
get:
deprecated: true
tags:
- Playlists
operationId: get-featured-playlists
x-spotify-policy-list:
- $ref: '#/components/x-spotify-policy/policies/MultipleIntegrations'
summary: 'Get Featured Playlists
'
description: 'Get a list of Spotify featured playlists (shown, for example, on a Spotify player''s ''Browse'' tab).
'
parameters:
- name: locale
required: false
in: query
schema:
title: Locale
description: 'The desired language, consisting of an [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code and an [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), joined by an underscore. For example: `es_MX`, meaning "Spanish (Mexico)". Provide this parameter if you want the category strings returned in a particular language.
_**Note**: if `locale` is not supplied, or if the specified language is not available, the category strings returned will be in the Spotify default language (American English)._
'
example: sv_SE
type: string
- $ref: '#/components/parameters/QueryLimit'
- $ref: '#/components/parameters/QueryOffset'
responses:
'200':
$ref: '#/components/responses/PagedFeaturedPlaylists'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0: []
/browse/categories/{category_id}/playlists:
get:
deprecated: true
tags:
- Playlists
operationId: get-a-categories-playlists
summary: 'Get Category''s Playlists
'
description: 'Get a list of Spotify playlists tagged with a particular category.
'
parameters:
- name: category_id
required: true
in: path
schema:
title: Category ID
description: 'The [Spotify category ID](/documentation/web-api/concepts/spotify-uris-ids) for the category.
'
example: dinner
type: string
- $ref: '#/components/parameters/QueryLimit'
- $ref: '#/components/parameters/QueryOffset'
responses:
'200':
$ref: '#/components/responses/PagedFeaturedPlaylists'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0: []
/playlists/{playlist_id}/images:
get:
tags:
- Playlists
operationId: get-playlist-cover
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/metadataWithMachineLearningPolicyList'
summary: 'Get Playlist Cover Image
'
description: 'Get the current image associated with a specific playlist.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
responses:
'200':
$ref: '#/components/responses/ArrayOfImages'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0: []
put:
tags:
- Playlists
operationId: upload-custom-playlist-cover
summary: 'Add Custom Playlist Cover Image
'
description: 'Replace the image used to represent a specific playlist.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
requestBody:
content:
image/jpeg:
schema:
example: /9j/2wCEABoZGSccJz4lJT5CLy8vQkc9Ozs9R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cBHCcnMyYzPSYmPUc9Mj1HR0dEREdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR//dAAQAAf/uAA5BZG9iZQBkwAAAAAH/wAARCAABAAEDACIAAREBAhEB/8QASwABAQAAAAAAAAAAAAAAAAAAAAYBAQAAAAAAAAAAAAAAAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAARAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwAAARECEQA/AJgAH//Z
format: byte
type: string
required: true
description: Base64 encoded JPEG image data, maximum payload size is 256 KB.
responses:
'202':
description: Image uploaded
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- ugc-image-upload
- playlist-modify-public
- playlist-modify-private
/playlists/{playlist_id}/followers/contains:
get:
tags:
- Playlists
operationId: check-if-user-follows-playlist
summary: 'Check if Current User Follows Playlist
'
deprecated: true
description: 'Check to see if the current user is following a specified playlist.
**Note:** This endpoint is deprecated. Use [Check User''s Saved Items](/documentation/web-api/reference/check-library-contains) instead.
'
parameters:
- $ref: '#/components/parameters/PathPlaylistId'
- name: ids
required: false
in: query
schema:
title: Spotify user IDs
description: '**Deprecated** A single item list containing current user''s [Spotify Username](/documentation/web-api/concepts/spotify-uris-ids). Maximum: 1 id.
'
example: jmperezperez
type: string
responses:
'200':
$ref: '#/components/responses/SingletonArrayOfBoolean'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0: []
components:
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.
'
PlaylistTrackObject:
type: object
x-spotify-docs-type: PlaylistTrackObject
properties:
added_at:
type: string
format: date-time
x-spotify-docs-type: Timestamp
description: 'The date and time the track or episode was added. _**Note**: some very old playlists may return `null` in this field._
'
added_by:
allOf:
- $ref: '#/components/schemas/PlaylistUserObject'
description: 'The Spotify user who added the track or episode. _**Note**: some very old playlists may return `null` in this field._
'
is_local:
type: boolean
description: 'Whether this track or episode is a [local file](/documentation/web-api/concepts/playlists/#local-files) or not.
'
item:
oneOf:
- $ref: '#/components/schemas/TrackObject'
- $ref: '#/components/schemas/EpisodeObject'
x-spotify-docs-type: TrackObject | EpisodeObject
description: Information about the track or episode.
discriminator:
propertyName: type
track:
oneOf:
- $ref: '#/components/schemas/TrackObject'
- $ref: '#/components/schemas/EpisodeObject'
x-spotify-docs-type: TrackObject | EpisodeObject
deprecated: true
description: '**Deprecated:** Use `item` instead. Information about the track or episode.
'
discriminator:
propertyName: type
PlaylistObject:
type: object
x-spotify-docs-type: PlaylistObject
properties:
collaborative:
type: boolean
description: '`true` if the owner allows other users to modify the playlist.
'
description:
type: string
nullable: true
description: 'The playlist description. _Only returned for modified, verified playlists, otherwise_ `null`.
'
external_urls:
allOf:
- $ref: '#/components/schemas/ExternalUrlObject'
description: 'Known external URLs for this playlist.
'
href:
type: string
description: 'A link to the Web API endpoint providing full details of the playlist.
'
id:
type: string
description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the playlist.
'
images:
type: array
items:
$ref: '#/components/schemas/ImageObject'
description: 'Images for the playlist. The array may be empty or contain up to three images. The images are returned by size in descending order. See [Working with Playlists](/documentation/web-api/concepts/playlists). _**Note**: If returned, the source URL for the image (`url`) is temporary and will expire in less than a day._
'
name:
type: string
description: 'The name of the playlist.
'
owner:
allOf:
- $ref: '#/components/schemas/PlaylistOwnerObject'
description: 'The user who owns the playlist
'
public:
type: boolean
description: 'The playlist''s public/private status (if it is added to the user''s profile): `true` the playlist is public, `false` the playlist is private, `null` the playlist status is not relevant. For more about public/private status, see [Working with Playlists](/documentation/web-api/concepts/playlists)
'
snapshot_id:
type: string
description: 'The version identifier for the current playlist. Can be supplied in other requests to target a specific playlist version
'
items:
type: object
allOf:
- $ref: '#/components/schemas/PagingPlaylistTrackObject'
description: 'The items of the playlist. _**Note**: This field is only available for playlists owned by the current user or playlists the user is a collaborator of._
'
tracks:
type: object
allOf:
- $ref: '#/components/schemas/PagingPlaylistTrackObject'
deprecated: true
description: '**Deprecated:** Use `items` instead. The tracks of the playlist.
'
type:
type: string
description: 'The object type: "playlist"
'
uri:
type: string
description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the playlist.
'
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.
'
EpisodeBase:
type: object
required:
- audio_preview_url
- description
- html_description
- duration_ms
- explicit
- external_urls
- href
- id
- images
- is_externally_hosted
- is_playable
- languages
- name
- release_date
- release_date_precision
- type
- uri
properties:
audio_preview_url:
deprecated: true
type: string
nullable: true
example: https://p.scdn.co/mp3-preview/2f37da1d4221f40b9d1a98cd191f4d6f1646ad17
description: 'A URL to a 30 second preview (MP3 format) of the episode. `null` if not available.
'
x-spotify-policy-list:
- $ref: '#/components/x-spotify-policy/policies/StandalonePreview'
description:
type: string
example: '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.
'
description: 'A description of the episode. HTML tags are stripped away from this field, use `html_description` field in case HTML tags are needed.
'
html_description:
type: string
example: '
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.
' description: 'A description of the episode. This field may contain HTML tags. ' duration_ms: type: integer example: 1686230 description: 'The episode length in milliseconds. ' explicit: type: boolean description: 'Whether or not the episode has explicit content (true = yes it does; false = no it does not OR unknown). ' external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'External URLs for this episode. ' href: type: string example: https://api.spotify.com/v1/episodes/5Xt5DXGzch68nYYamXrNxZ description: 'A link to the Web API endpoint providing full details of the episode. ' id: type: string example: 5Xt5DXGzch68nYYamXrNxZ description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the episode. ' images: type: array items: $ref: '#/components/schemas/ImageObject' description: 'The cover art for the episode in various sizes, widest first. ' is_externally_hosted: type: boolean description: 'True if the episode is hosted outside of Spotify''s CDN. ' is_playable: type: boolean description: 'True if the episode is playable in the given market. Otherwise false. ' language: type: string deprecated: true example: en description: 'The language used in the episode, identified by a [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code. This field is deprecated and might be removed in the future. Please use the `languages` field instead. ' languages: type: array items: type: string example: - fr - en description: 'A list of the languages used in the episode, identified by their [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639) code. ' name: type: string example: 'Starting Your Own Podcast: Tips, Tricks, and Advice From Anchor Creators ' description: 'The name of the episode. ' release_date: type: string example: '1981-12-15' description: '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"`. ' release_date_precision: type: string example: day enum: - year - month - day description: 'The precision with which `release_date` value is known. ' resume_point: allOf: - $ref: '#/components/schemas/ResumePointObject' description: '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''. ' type: type: string enum: - episode description: 'The object type. ' uri: type: string example: spotify:episode:0zLhl3WsOCQHbe1BPTiHgr description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the episode. ' restrictions: allOf: - $ref: '#/components/schemas/EpisodeRestrictionObject' description: 'Included in the response when a content restriction is applied. ' SimplifiedPlaylistObject: type: object x-spotify-docs-type: SimplifiedPlaylistObject properties: collaborative: type: boolean description: '`true` if the owner allows other users to modify the playlist. ' description: type: string description: 'The playlist description. _Only returned for modified, verified playlists, otherwise_ `null`. ' external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'Known external URLs for this playlist. ' href: type: string description: 'A link to the Web API endpoint providing full details of the playlist. ' id: type: string description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the playlist. ' images: type: array items: $ref: '#/components/schemas/ImageObject' description: 'Images for the playlist. The array may be empty or contain up to three images. The images are returned by size in descending order. See [Working with Playlists](/documentation/web-api/concepts/playlists). _**Note**: If returned, the source URL for the image (`url`) is temporary and will expire in less than a day._ ' name: type: string description: 'The name of the playlist. ' owner: allOf: - $ref: '#/components/schemas/PlaylistOwnerObject' description: 'The user who owns the playlist ' public: type: boolean description: 'The playlist''s public/private status (if it is added to the user''s profile): `true` the playlist is public, `false` the playlist is private, `null` the playlist status is not relevant. For more about public/private status, see [Working with Playlists](/documentation/web-api/concepts/playlists) ' snapshot_id: type: string description: 'The version identifier for the current playlist. Can be supplied in other requests to target a specific playlist version ' items: allOf: - $ref: '#/components/schemas/PlaylistTracksRefObject' description: 'A collection containing a link ( `href` ) to the Web API endpoint where full details of the playlist''s items can be retrieved, along with the `total` number of items in the playlist. Note, a track object may be `null`. This can happen if a track is no longer available. ' tracks: allOf: - $ref: '#/components/schemas/PlaylistTracksRefObject' deprecated: true description: '**Deprecated:** Use `items` instead. A collection containing a link ( `href` ) to the Web API endpoint where full details of the playlist''s tracks can be retrieved, along with the `total` number of tracks in the playlist. Note, a track object may be `null`. This can happen if a track is no longer available. ' type: type: string description: 'The object type: "playlist" ' uri: type: string description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the playlist. ' 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. ' PlaylistUserObject: type: object x-spotify-docs-type: PlaylistUserObject properties: external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'Known public external URLs for this user. ' href: type: string description: 'A link to the Web API endpoint for this user. ' id: type: string description: 'The [Spotify user ID](/documentation/web-api/concepts/spotify-uris-ids) for this user. ' type: type: string enum: - user description: 'The object type. ' uri: type: string description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for this user. ' PagingPlaylistTrackObject: type: object x-spotify-docs-type: PagingPlaylistTrackObject allOf: - $ref: '#/components/schemas/PagingObject' - type: object properties: items: type: array items: $ref: '#/components/schemas/PlaylistTrackObject' 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. ' PagingPlaylistObject: type: object x-spotify-docs-type: PagingPlaylistObject allOf: - $ref: '#/components/schemas/PagingObject' - type: object properties: items: type: array items: $ref: '#/components/schemas/SimplifiedPlaylistObject' 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. ' PagingFeaturedPlaylistObject: type: object x-spotify-docs-type: PagingFeaturedPlaylistObject properties: message: type: string description: 'The localized message of a playlist. ' example: Popular Playlists playlists: $ref: '#/components/schemas/PagingPlaylistObject' EpisodeObject: x-spotify-docs-type: EpisodeObject type: object allOf: - $ref: '#/components/schemas/EpisodeBase' - type: object required: - show properties: show: allOf: - $ref: '#/components/schemas/SimplifiedShowObject' description: 'The show on which the episode belongs. ' SimplifiedShowObject: x-spotify-docs-type: SimplifiedShowObject allOf: - $ref: '#/components/schemas/ShowBase' - type: object 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. ' CopyrightObject: type: object x-spotify-docs-type: CopyrightObject properties: text: type: string description: 'The copyright text for this content. ' type: type: string description: 'The type of copyright: `C` = the copyright, `P` = the sound recording (performance) copyright. ' 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. ' 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. ' PlaylistTracksRefObject: type: object x-spotify-docs-type: PlaylistTracksRefObject properties: href: type: string description: 'A link to the Web API endpoint where full details of the playlist''s tracks can be retrieved. ' total: type: integer description: 'Number of tracks in the playlist. ' 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.