Spotify Web API

The Spotify Web API provides RESTful access to Spotify's music and podcast catalog, user library management, playback control, and personalization features. Developers can retrieve metadata for albums, artists, tracks, shows, and episodes; manage user playlists and saved libraries; control playback on connected devices; and access audio analysis and recommendations. OAuth 2.0 authentication supports Authorization Code Flow, PKCE, and Client Credentials flows.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

spotify-openapi-original.yml Raw ↑
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 <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 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: Albums
  - name: Artists
  - name: Audiobooks
  - name: Categories
  - name: Chapters
  - name: Episodes
  - name: Library
  - name: Genres
  - name: Markets
  - name: Player
  - name: Playlists
  - name: Search
  - name: Shows
  - name: Tracks
  - name: Users
paths:
  /albums/{id}:
    get:
      operationId: get-an-album
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
        - Albums
      summary: |
        Get Album
      description: |
        Get Spotify catalog information for a single album.
      parameters:
        - $ref: '#/components/parameters/PathAlbumId'
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/OneAlbum'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /albums:
    get:
      deprecated: true
      operationId: get-multiple-albums
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
        - Albums
      summary: |
        Get Several Albums
      description: |
        Get Spotify catalog information for multiple albums identified by their Spotify IDs.
      parameters:
        - $ref: '#/components/parameters/QueryAlbumIds'
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/ManyAlbums'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /albums/{id}/tracks:
    get:
      operationId: get-an-albums-tracks
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
        - Albums
        - Tracks
      summary: |
        Get Album Tracks
      description: |
        Get Spotify catalog information about an album’s tracks.
        Optional parameters can be used to limit the number of tracks returned.
      parameters:
        - $ref: '#/components/parameters/PathAlbumId'
        - $ref: '#/components/parameters/QueryMarket'
        - $ref: '#/components/parameters/QueryLimit'
        - $ref: '#/components/parameters/QueryOffset'
      responses:
        '200':
          $ref: '#/components/responses/PagingSimplifiedTrackObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /artists/{id}:
    get:
      tags:
        - Artists
      operationId: get-an-artist
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Artist
      description: |
        Get Spotify catalog information for a single artist identified by their unique Spotify ID.
      parameters:
        - $ref: '#/components/parameters/PathArtistId'
      responses:
        '200':
          $ref: '#/components/responses/OneArtist'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /artists:
    get:
      deprecated: true
      tags:
        - Artists
      operationId: get-multiple-artists
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Several Artists
      description: |
        Get Spotify catalog information for several artists based on their Spotify IDs.
      parameters:
        - name: ids
          required: true
          in: query
          schema:
            title: Spotify Artist IDs
            description: |
              A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids) for the artists. Maximum: 50 IDs.
            example: 2CIMQHirSU0MQqyYHq0eOx,57dN52uHvrHOxijzpIgu3E,1vCWHaC5f2uS3yhpwWbIA6
            type: string
      responses:
        '200':
          $ref: '#/components/responses/ManyArtists'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /artists/{id}/albums:
    get:
      tags:
        - Artists
        - Albums
      operationId: get-an-artists-albums
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Artist's Albums
      description: |
        Get Spotify catalog information about an artist's albums.
      parameters:
        - $ref: '#/components/parameters/PathArtistId'
        - $ref: '#/components/parameters/QueryIncludeGroups'
        - $ref: '#/components/parameters/QueryMarket'
        - name: limit
          required: false
          in: query
          schema:
            title: Limit
            description: |
              The maximum number of items to return. Default: 5. Minimum: 1. Maximum: 10.
            default: 5
            example: 5
            type: integer
            minimum: 0
            maximum: 10
        - $ref: '#/components/parameters/QueryOffset'
      responses:
        '200':
          $ref: '#/components/responses/PagingArtistDiscographyAlbumObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /artists/{id}/top-tracks:
    get:
      deprecated: true
      tags:
        - Artists
        - Tracks
      operationId: get-an-artists-top-tracks
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Artist's Top Tracks
      description: |
        Get Spotify catalog information about an artist's top tracks by country.
      parameters:
        - $ref: '#/components/parameters/PathArtistId'
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/ManyTracks'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /artists/{id}/related-artists:
    get:
      deprecated: true
      tags:
        - Artists
      operationId: get-an-artists-related-artists
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Artist's Related Artists
      description: |
        Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the Spotify community's listening history.
      parameters:
        - $ref: '#/components/parameters/PathArtistId'
      responses:
        '200':
          $ref: '#/components/responses/ManyArtists'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /shows/{id}:
    get:
      tags:
        - Shows
      operationId: get-a-show
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Show
      description: |
        Get Spotify catalog information for a single show identified by its
        unique Spotify ID.
      parameters:
        - $ref: '#/components/parameters/QueryMarket'
        - $ref: '#/components/parameters/PathShowId'
      responses:
        '200':
          $ref: '#/components/responses/OneShow'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-read-playback-position
  /shows:
    get:
      deprecated: true
      tags:
        - Shows
      operationId: get-multiple-shows
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Several Shows
      description: |
        Get Spotify catalog information for several shows based on their Spotify IDs.
      parameters:
        - $ref: '#/components/parameters/QueryMarket'
        - $ref: '#/components/parameters/QueryShowIds'
      responses:
        '200':
          $ref: '#/components/responses/ManySimplifiedShows'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /shows/{id}/episodes:
    get:
      tags:
        - Shows
        - Episodes
      operationId: get-a-shows-episodes
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Show Episodes
      description: |
        Get Spotify catalog information about an show’s episodes. Optional parameters can be used to limit the number of episodes returned.
      parameters:
        - $ref: '#/components/parameters/PathShowId'
        - $ref: '#/components/parameters/QueryMarket'
        - $ref: '#/components/parameters/QueryLimit'
        - $ref: '#/components/parameters/QueryOffset'
      responses:
        '200':
          $ref: '#/components/responses/PagingSimplifiedEpisodeObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-read-playback-position
  /episodes/{id}:
    get:
      tags:
        - Episodes
      operationId: get-an-episode
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Episode
      description: |
        Get Spotify catalog information for a single episode identified by its
        unique Spotify ID.
      parameters:
        - name: id
          required: true
          in: path
          schema:
            title: Get an Episode
            description:
              The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids)
              for the episode.
            example: 512ojhOuo1ktJprKbVcKyQ
            type: string
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/OneEpisode'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-read-playback-position
  /episodes:
    get:
      deprecated: true
      tags:
        - Episodes
      operationId: get-multiple-episodes
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      summary: |
        Get Several Episodes
      description: |
        Get Spotify catalog information for several episodes based on their Spotify IDs.
      parameters:
        - name: ids
          required: true
          in: query
          schema:
            title: Ids
            description: |
              A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids) for the episodes. Maximum: 50 IDs.
            example: 77o6BIVlYM3msb4MMIL1jH,0Q86acNRm6V9GYx55SXKwf
            type: string
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/ManyEpisodes'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-read-playback-position
  /audiobooks/{id}:
    get:
      operationId: get-an-audiobook
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
        - Audiobooks
      summary: |
        Get an Audiobook
      description: |
        Get Spotify catalog information for a single audiobook. Audiobooks are only available within the US, UK, Canada, Ireland, New Zealand and Australia markets.
      parameters:
        - $ref: '#/components/parameters/PathAudiobookId'
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/OneAudiobook'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /audiobooks:
    get:
      deprecated: true
      operationId: get-multiple-audiobooks
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
        - Audiobooks
      summary: |
        Get Several Audiobooks
      description: |
        Get Spotify catalog information for several audiobooks identified by their Spotify IDs. Audiobooks are only available within the US, UK, Canada, Ireland, New Zealand and Australia markets.
      parameters:
        - $ref: '#/components/parameters/QueryAudiobookIds'
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/ManyAudiobooks'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /audiobooks/{id}/chapters:
    get:
      operationId: get-audiobook-chapters
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
        - Audiobooks
        - Chapters
      summary: |
        Get Audiobook Chapters
      description: |
        Get Spotify catalog information about an audiobook's chapters. Audiobooks are only available within the US, UK, Canada, Ireland, New Zealand and Australia markets.
      parameters:
        - $ref: '#/components/parameters/PathAudiobookId'
        - $ref: '#/components/parameters/QueryMarket'
        - $ref: '#/components/parameters/QueryLimit'
        - $ref: '#/components/parameters/QueryOffset'
      responses:
        '200':
          $ref: '#/components/responses/PagingSimplifiedChapterObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /me/audiobooks:
    get:
      tags:
        - Audiobooks
        - Library
      operationId: get-users-saved-audiobooks
      summary: |
        Get User's Saved Audiobooks
      description: |
        Get a list of the audiobooks saved in the current Spotify user's 'Your Music' library.
      parameters:
        - $ref: '#/components/parameters/QueryLimit'
        - $ref: '#/components/parameters/QueryOffset'
      responses:
        '200':
          $ref: '#/components/responses/PagingSimplifiedAudiobookObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-library-read
    put:
      deprecated: true
      tags:
        - Audiobooks
        - Library
      operationId: save-audiobooks-user
      summary: |
        Save Audiobooks for Current User
      description: |
        Save one or more audiobooks to the current Spotify user's library.

        **Note:** This endpoint is deprecated. Use [Save Items to Library](/documentation/web-api/reference/save-library-items) instead.
      parameters:
        - $ref: '#/components/parameters/QueryAudiobookIds'
      responses:
        '200':
          description: Audiobook(s) are saved to the library
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-library-modify
    delete:
      deprecated: true
      tags:
        - Audiobooks
        - Library
      operationId: remove-audiobooks-user
      summary: |
        Remove User's Saved Audiobooks
      description: |
        Remove one or more audiobooks from the Spotify user's library.

        **Note:** This endpoint is deprecated. Use [Remove Items from Library](/documentation/web-api/reference/remove-library-items) instead.
      parameters:
        - $ref: '#/components/parameters/QueryAudiobookIds'
      responses:
        '200':
          description: Audiobook(s) have been removed from the library
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-library-modify
  /me/audiobooks/contains:
    get:
      tags:
        - Audiobooks
        - Library
      operationId: check-users-saved-audiobooks
      summary: |
        Check User's Saved Audiobooks
      deprecated: true
      description: |
        Check if one or more audiobooks are already saved in the current Spotify user's library.

        **Note:** This endpoint is deprecated. Use [Check User's Saved Items](/documentation/web-api/reference/check-library-contains) instead.
      parameters:
        - $ref: '#/components/parameters/QueryAudiobookIds'
      responses:
        '200':
          $ref: '#/components/responses/ArrayOfBooleans'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-library-read
  /chapters/{id}:
    get:
      operationId: get-a-chapter
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
        - Chapters
      summary: |
        Get a Chapter
      description: |
        Get Spotify catalog information for a single audiobook chapter. Chapters are only available within the US, UK, Canada, Ireland, New Zealand and Australia markets.
      parameters:
        - $ref: '#/components/parameters/PathChapterId'
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/OneChapter'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /chapters:
    get:
      deprecated: true
      operationId: get-several-chapters
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
        - Chapters
      summary: |
        Get Several Chapters
      description: |
        Get Spotify catalog information for several audiobook chapters identified by their Spotify IDs. Chapters are only available within the US, UK, Canada, Ireland, New Zealand and Australia markets.
      parameters:
        - $ref: '#/components/parameters/QueryChapterIds'
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/ManyChapters'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /tracks/{id}:
    get:
      tags:
        - Tracks
      operationId: get-track
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataWithMachineLearningPolicyList'
      summary: |
        Get Track
      description: |
        Get Spotify catalog information for a single track identified by its
        unique Spotify ID.
      parameters:
        - name: id
          required: true
          in: path
          schema:
            title: Spotify Track ID
            description: |
              The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids)
              for the track.
            example: 11dFghVXANMlKmJXsNCbNl
            type: string
        - $ref: '#/components/parameters/QueryMarket'
      responses:
        '200':
          $ref: '#/components/responses/OneTrack'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /tracks:
    get:
      deprecated: true
      tags:
        - Tracks
      operationId: get-several-tracks
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataWithMachineLearningPolicyList'
      summary: |
        Get Several Tracks
      description: |
        Get Spotify catalog information for multiple tracks based on their Spotify IDs.
      parameters:
        - $ref: '#/components/parameters/QueryMarket'
        - name: ids
          required: true
          in: query
          schema:
            title: Spotify Track IDs
            description: |
              A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M`. Maximum: 50 IDs.
            example: 7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B
            type: string
      responses:
        '200':
          $ref: '#/components/responses/ManyTracks'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /search:
    get:
      tags:
        - Search
      operationId: search
      x-spotify-policy-list:
        - $ref: '#/components/x-spotify-policy/policies/MachineLearning'
      summary: |
        Search for Item
      description: |
        Get Spotify catalog information about albums, artists, playlists, tracks, shows, episodes or audiobooks
        that match a keyword string. Audiobooks are only available within the US, UK, Canada, Ireland, New Zealand and Australia markets.
      parameters:
        - name: q
          required: true
          in: query
          schema:
            title: Query
            description: |
              Your search query.

              You can narrow down your search using field filters. The available filters are `album`, `artist`, `track`, `year`, `upc`, `tag:hipster`, `tag:new`, `isrc`, and `genre`. Each field filter only applies to certain result types.

              The `artist` and `year` filters can be used while searching albums, artists and tracks. You can filter on a single `year` or a range (e.g. 1955-1960).<br />
              The `album` filter can be used while searching albums and tracks.<br />
              The `genre` filter can be used while searching artists and tracks.<br />
              The `isrc` and `track` filters can be used while searching tracks.<br />
              The `upc`, `tag:new` and `tag:hipster` filters can only be used while searching albums. The `tag:new` filter will return albums released in the past two weeks and `tag:hipster` can be used to return only albums with the lowest 10% popularity.<br />

            example: remaster%20track:Doxy%20artist:Miles%20Davis
            type: string
        - name: type
          required: true
          explode: false
          in: query
          schema:
            title: Item type
            description: |
              A comma-separated list of item types to search across. Search results include hits
              from all the specified item types. For example: `q=abacab&type=album,track` returns
              both albums and tracks matching "abacab".
            items:
              type: string
              enum:
                - album
                - artist
                - playlist
                - track
                - show
                - episode
                - audiobook
            type: array
        - $ref: '#/components/parameters/QueryMarket'
        - name: limit
          required: false
          in: query
          schema:
            title: Limit
            description: |
              The maximum number of results to return in each item type.
            default: 5
            example: 10
            type: integer
            minimum: 0
            maximum: 10
        - name: offset
          required: false
          in: query
          schema:
            title: Offset
            description: |
              The index of the first result to return. Use
              with limit to get the next page of search results.
            default: 0
            minimum: 0
            maximum: 1000
            example: 5
            type: integer
        - name: include_external
          required: false
          in: query
          schema:
            title: Include External
            description: |
              If `include_external=audio` is specified it signals that the client can play externally hosted audio content, and marks
              the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response.
            type: string
            enum:
              - audio
      responses:
        '200':
          $ref: '#/components/responses/SearchItems'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0: []
  /me:
    get:
      tags:
        - Users
      operationId: get-current-users-profile
      summary: |
        Get Current User's Profile
      description: |
        Get detailed profile information about the current user (including the
        current user's username).
      responses:
        '200':
          $ref: '#/components/responses/OnePrivateUser'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - oauth_2_0:
            - user-read-private
            - user-read-email
  /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
        - Library
      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. <br/>
                    _**Note**: You can only set `collaborative` to `true` on non-publi

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