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 Player 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: Player
paths:
/me/player:
get:
tags:
- Player
operationId: get-information-about-the-users-current-playback
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Get Playback State
'
description: 'Get information about the user’s current playback state, including track or episode, progress, and active device.
'
parameters:
- $ref: '#/components/parameters/QueryMarket'
- $ref: '#/components/parameters/QueryAdditionalTypes'
responses:
'200':
$ref: '#/components/responses/OneCurrentlyPlaying'
'204':
description: Playback not available or active
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-read-playback-state
put:
tags:
- Player
operationId: transfer-a-users-playback
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Transfer Playback
'
description: 'Transfer playback to a new device and optionally begin playback. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
requestBody:
content:
application/json:
schema:
example:
device_ids:
- 74ASZWbe4lXaubB36ztrGX
type: object
additionalProperties: true
required:
- device_ids
properties:
device_ids:
type: array
description: 'A JSON array containing the ID of the device on which playback should be started/transferred.
For example:`{device_ids:["74ASZWbe4lXaubB36ztrGX"]}`
_**Note**: Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return `400 Bad Request`_
'
items:
type: string
play:
type: boolean
description: '**true**: ensure playback happens on new device.
**false** or not provided: keep the current playback state.
'
additionalProperties: true
responses:
'204':
description: Playback transferred
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/devices:
get:
tags:
- Player
operationId: get-a-users-available-devices
summary: 'Get Available Devices
'
description: 'Get information about a user’s available Spotify Connect devices. Some device models are not supported and will not be listed in the API response.
'
responses:
'200':
$ref: '#/components/responses/ManyDevices'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-read-playback-state
/me/player/currently-playing:
get:
tags:
- Player
operationId: get-the-users-currently-playing-track
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Get Currently Playing Track
'
description: 'Get the object currently being played on the user''s Spotify account.
'
parameters:
- $ref: '#/components/parameters/QueryMarket'
- $ref: '#/components/parameters/QueryAdditionalTypes'
responses:
'200':
$ref: '#/components/responses/OneCurrentlyPlayingTrack'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-read-currently-playing
/me/player/play:
put:
tags:
- Player
operationId: start-a-users-playback
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Start/Resume Playback
'
description: 'Start a new context or resume current playback on the user''s active device. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: device_id
required: false
in: query
schema:
title: Device ID
description: The id of the device this command is targeting. If not supplied, the user's currently active device is the target.
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
requestBody:
content:
application/json:
schema:
example:
context_uri: spotify:album:5ht7ItJgpBH7W6vJ5BqpPr
offset:
position: 5
position_ms: 0
type: object
additionalProperties: true
properties:
context_uri:
type: string
description: 'Optional. Spotify URI of the context to play.
Valid contexts are albums, artists & playlists.
`{context_uri:"spotify:album:1Je1IMUlBXcx1Fz0WE7oPT"}`
'
additionalProperties: true
uris:
type: array
description: 'Optional. A JSON array of the Spotify track URIs to play.
For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh", "spotify:track:1301WleyT98MSxVHPZCA6M"]}`
'
items:
type: string
offset:
type: object
description: 'Optional. Indicates from where in the context playback should start. Only available when context_uri corresponds to an album or playlist object
"position" is zero based and can’t be negative. Example: `"offset": {"position": 5}`
"uri" is a string representing the uri of the item to start at. Example: `"offset": {"uri": "spotify:track:1301WleyT98MSxVHPZCA6M"}`
'
additionalProperties: true
position_ms:
type: integer
description: integer
additionalProperties: true
responses:
'204':
description: Playback started
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/pause:
put:
tags:
- Player
operationId: pause-a-users-playback
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Pause Playback
'
description: 'Pause playback on the user''s account. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: device_id
required: false
in: query
schema:
title: Device ID
description: 'The id of the device this command is targeting. If not supplied, the user''s currently active device is the target.
'
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
responses:
'204':
description: Playback paused
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/next:
post:
tags:
- Player
operationId: skip-users-playback-to-next-track
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Skip To Next
'
description: 'Skips to next track in the user’s queue. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: device_id
required: false
in: query
schema:
title: Device ID
description: The id of the device this command is targeting. If not supplied, the user's currently active device is the target.
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
responses:
'204':
description: Command sent
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/previous:
post:
tags:
- Player
operationId: skip-users-playback-to-previous-track
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Skip To Previous
'
description: 'Skips to previous track in the user’s queue. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: device_id
required: false
in: query
schema:
title: Device ID
description: 'The id of the device this command is targeting. If
not supplied, the user''s currently active device is the target.
'
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
responses:
'204':
description: Command sent
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/seek:
put:
tags:
- Player
operationId: seek-to-position-in-currently-playing-track
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Seek To Position
'
description: 'Seeks to the given position in the user’s currently playing track. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: position_ms
required: true
in: query
schema:
title: Position (ms)
description: 'The position in milliseconds to seek to. Must be a
positive number. Passing in a position that is greater than the length of
the track will cause the player to start playing the next song.
'
example: 25000
type: integer
- name: device_id
required: false
in: query
schema:
title: Device ID
description: 'The id of the device this command is targeting. If
not supplied, the user''s currently active device is the target.
'
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
responses:
'204':
description: Command sent
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/repeat:
put:
tags:
- Player
operationId: set-repeat-mode-on-users-playback
summary: 'Set Repeat Mode
'
description: 'Set the repeat mode for the user''s playback. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: state
required: true
in: query
schema:
title: State
description: '**track**, **context** or **off**.
**track** will repeat the current track.
**context** will repeat the current context.
**off** will turn repeat off.
'
example: context
type: string
- name: device_id
required: false
in: query
schema:
title: Device ID
description: 'The id of the device this command is targeting. If
not supplied, the user''s currently active device is the target.
'
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
responses:
'204':
description: Command sent
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/volume:
put:
tags:
- Player
operationId: set-volume-for-users-playback
summary: 'Set Playback Volume
'
description: 'Set the volume for the user’s current playback device. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: volume_percent
required: true
in: query
schema:
title: Volume %
description: 'The volume to set. Must be a value from 0 to 100 inclusive.
'
example: 50
type: integer
- name: device_id
required: false
in: query
schema:
title: Device ID
description: 'The id of the device this command is targeting. If not supplied, the user''s currently active device is the target.
'
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
responses:
'204':
description: Command sent
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/shuffle:
put:
tags:
- Player
operationId: toggle-shuffle-for-users-playback
summary: 'Toggle Playback Shuffle
'
description: 'Toggle shuffle on or off for user’s playback. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: state
required: true
in: query
schema:
title: State
description: '**true** : Shuffle user''s playback.
**false** : Do not shuffle user''s playback.
'
example: true
type: boolean
- name: device_id
required: false
in: query
schema:
title: Device ID
description: 'The id of the device this command is targeting. If
not supplied, the user''s currently active device is the target.
'
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
responses:
'204':
description: Command sent
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
/me/player/recently-played:
get:
tags:
- Player
operationId: get-recently-played
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Get Recently Played Tracks
'
description: 'Get tracks from the current user''s recently played tracks.
_**Note**: Currently doesn''t support podcast episodes._
'
parameters:
- 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
- name: after
required: false
in: query
schema:
title: After
description: 'A Unix timestamp in milliseconds. Returns all items
after (but not including) this cursor position. If `after` is specified, `before`
must not be specified.
'
example: 1484811043508
type: integer
- name: before
required: false
in: query
schema:
title: Before
description: 'A Unix timestamp in milliseconds. Returns all items
before (but not including) this cursor position. If `before` is specified,
`after` must not be specified.
'
type: integer
responses:
'200':
$ref: '#/components/responses/CursorPagedPlayHistory'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-read-recently-played
/me/player/queue:
get:
tags:
- Player
operationId: get-queue
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Get the User''s Queue
'
description: 'Get the list of objects that make up the user''s queue.
'
responses:
'200':
$ref: '#/components/responses/Queue'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-read-currently-playing
- user-read-playback-state
post:
tags:
- Player
operationId: add-to-queue
x-spotify-policy-list:
$ref: '#/components/x-spotify-policy/playerPolicyList'
summary: 'Add Item to Playback Queue
'
description: 'Add an item to be played next in the user''s current playback queue. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.
'
parameters:
- name: uri
required: true
in: query
schema:
title: Spotify URI
description: 'The uri of the item to add to the queue. Must be a track or an episode uri.
'
example: spotify:track:4iV5W9uYEdYUVa79Axb7Rh
type: string
- name: device_id
required: false
in: query
schema:
title: Device ID
description: 'The id of the device this command is targeting. If
not supplied, the user''s currently active device is the target.
'
example: 0d1841b0976bae2a3a310dd74c0f3df354899bc8
type: string
responses:
'204':
description: Command received
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- oauth_2_0:
- user-modify-playback-state
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.
'
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. ' 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. ' ContextObject: type: object x-spotify-docs-type: ContextObject properties: type: type: string description: 'The object type, e.g. "artist", "playlist", "album", "show". ' href: type: string description: A link to the Web API endpoint providing full details of the track. external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: External URLs for this context. uri: type: string description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the context. ' QueueObject: type: object x-spotify-docs-type: QueueObject properties: currently_playing: oneOf: - $ref: '#/components/schemas/TrackObject' - $ref: '#/components/schemas/EpisodeObject' discriminator: propertyName: type x-spotify-docs-type: TrackObject | EpisodeObject description: The currently playing track or episode. Can be `null`. queue: type: array items: oneOf: - $ref: '#/components/schemas/TrackObject' - $ref: '#/components/schemas/EpisodeObject' discriminator: propertyName: type x-spotify-docs-type: TrackObject | EpisodeObject description: The tracks or episodes in the queue. Can be empty. 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. ' CurrentlyPlayingContextObject: type: object x-spotify-docs-type: CurrentlyPlayingContextObject properties: device: allOf: - $ref: '#/components/schemas/DeviceObject' description: 'The device that is currently active. ' repeat_state: type: string description: off, track, context shuffle_state: type: boolean description: If shuffle is on or off. context: allOf: - $ref: '#/components/schemas/ContextObject' description: A Context Object. Can be `null`. timestamp: type: integer description: Unix Millisecond Timestamp when playback state was last changed (play, pause, skip, scrub, new song, etc.). progress_ms: type: integer description: Progress into the currently playing track or episode. Can be `null`. is_playing: type: boolean description: If something is currently playing, return `true`. item: oneOf: - $ref: '#/components/schemas/TrackObject' - $ref: '#/components/schemas/EpisodeObject' discriminator: propertyName: type x-spotify-docs-type: TrackObject | EpisodeObject description: The currently playing track or episode. Can be `null`. currently_playing_type: type: string description: 'The object type of the currently playing item. Can be one of `track`, `episode`, `ad` or `unknown`. ' actions: allOf: - $ref: '#/components/schemas/DisallowsObject' description: 'Allows to update the user interface based on which playback actions are available within the current context. ' 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. ' SimplifiedShowObject: x-spotify-docs-type: SimplifiedShowObject allOf: - $ref: '#/components/schemas/ShowBase' - type: object 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. ' 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. ' 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.