Spotify Player API

The Player API from Spotify — 13 operation(s) for player.

Operations 15

GET /me/player Get Playback State #
PUT /me/player Transfer Playback #
GET /me/player/devices Get Available Devices #
GET /me/player/currently-playing Get Currently Playing Track #
PUT /me/player/play Start/Resume Playback #
PUT /me/player/pause Pause Playback #
POST /me/player/next Skip To Next #
POST /me/player/previous Skip To Previous #
PUT /me/player/seek Seek To Position #
PUT /me/player/repeat Set Repeat Mode #
PUT /me/player/volume Set Playback Volume #
PUT /me/player/shuffle Toggle Playback Shuffle #
GET /me/player/recently-played Get Recently Played Tracks #
GET /me/player/queue Get the User's Queue #
POST /me/player/queue Add Item to Playback Queue #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/spotify-player-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

spotify-player-api-openapi.yml Raw ↑
openapi: 3.2.0
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 <a href="https://developer.spotify.com/documentation/general/guides/authorization-guide/">OAuth 2.0</a>.


    The base URI for all Web API requests is `https://api.spotify.com/v1`.


    Need help? See our <a href="https://developer.spotify.com/documentation/web-api/guides/">Web API guides</a> for more information, or visit the <a href="https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotify_Developer">Spotify for Developers community forum</a> to ask questions and connect with other developers.

    '
  version: 1.0.0
  title: Spotify Web 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.<br/>For example:`{device_ids:["74ASZWbe4lXaubB36ztrGX"]}`<br/>_**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.<br/>**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**.<br/>

            **track** will repeat the current track.<br/>

            **context** will repeat the current context.<br/>

            **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.<br/>

            **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:
  x-spotify-policy:
    playerPolicyList:
    - $ref: '#/components/x-spotify-policy/policies/CommercialStreaming'
    - $ref: '#/components/x-spotify-policy/policies/ContentAlteration'
    - $ref: '#/components/x-spotify-policy/policies/Synchronization'
    - $ref: '#/components/x-spotify-policy/policies/Broadcasting'
  responses:
    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'
    TooManyRequests:
      description: 'The app has exceeded its rate limits.

        '
      content:
        application/json:
          schema:
            type: object
            required:
            - error
            properties:
              error:
                $ref: '#/components/schemas/ErrorObject'
    CursorPagedPlayHistory:
      description: A paged set of tracks
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CursorPagingPlayHistoryObject'
    OneCurrentlyPlayingTrack:
      description: Information about the currently playing track
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CurrentlyPlayingContextObject'
    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'
    Queue:
      description: Information about the queue
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/QueueObject'
    ManyDevices:
      description: A set of devices
      content:
        application/json:
          schema:
            type: object
            required:
            - devices
            properties:
              devices:
                type: array
                items:
                  $ref: '#/components/schemas/DeviceObject'
    OneCurrentlyPlaying:
      description: Information about playback
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CurrentlyPlayingContextObject'
  schemas:
    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.

            '
    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.
    ShowBase:
      type: object
      required:
      - available_markets
      - copyrights
      - description
      - explicit
      - external_urls
      - href
      - html_description
      - id
      - images
      - is_externally_hosted
      - languages
      - media_type
      - name
      - publisher
      - total_episodes
      - type
      - uri
      properties:
        available_markets:
          deprecated: true
          type: array
          items:
            type: string
          description: 'A list of the countries in which the show can be played, identified by their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.

            '
        copyrights:
          type: array
          items:
            $ref: '#/components/schemas/CopyrightObject'
          description: 'The copyright statements of the show.

            '
        description:
          type: string
          description: 'A description of the show. HTML tags are stripped away from this field, use `html_description` field in case HTML tags are needed.

            '
        html_description:
          type: string
          description: 'A description of the show. This field may contain HTML tags.

            '
        explicit:
          type: boolean
          description: 'Whether or not the show 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 show.

            '
        href:
          type: string
          description: 'A link to the Web API endpoint providing full details of the show.

            '
        id:
          type: string
          description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the show.

            '
        images:
          type: array
          items:
            $ref: '#/components/schemas/ImageObject'
          description: 'The cover art for the show in various sizes, widest first.

            '
        is_externally_hosted:
          type: boolean
          description: 'True if all of the shows episodes are hosted outside of Spotify''s CDN. This field might be `null` in some cases.

            '
        languages:
          type: array
          items:
            type: string
          description: 'A list of the languages used in the show, identified by their [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code.

            '
        media_type:
          type: string
          description: 'The media type of the show.

            '
        name:
          type: string
          description: 'The name of the episode.

            '
        publisher:
          deprecated: true
          type: string
          description: 'The publisher of the show.

            '
        type:
          type: string
          enum:
          - show
          description: 'The object type.

            '
        uri:
          type: string
          description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the show.

            '
        total_episodes:
          type: integer
          description: 'The total number of episodes in the show.

            '
    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.

            '
    DisallowsObject:
      type: object
      x-spotify-docs-type: DisallowsObject
      properties:
        interrupting_playback:
          type: boolean
          description: Interrupting playback. Optional field.
        pausing:
          type: boolean
          d

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spotify/refs/heads/main/openapi/spotify-player-api-openapi.yml