Spotify Tracks API

The Tracks API from Spotify — 13 operation(s) for tracks.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

spotify-tracks-api-openapi.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 Albums Tracks 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: Tracks
paths:
  /albums/{id}/tracks:
    get:
      operationId: get-an-albums-tracks
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataPolicyList'
      tags:
      - 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}/top-tracks:
    get:
      deprecated: true
      tags:
      - 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: []
  /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: []
  /playlists/{playlist_id}/tracks:
    get:
      tags:
      - Tracks
      operationId: get-playlists-tracks
      deprecated: true
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataWithMachineLearningPolicyList'
      summary: 'Get Playlist Items [DEPRECATED]

        '
      description: '**Deprecated:** Use [Get Playlist Items](/documentation/web-api/reference/get-playlists-items) instead.


        Get full details of the items of a playlist owned by a Spotify user.

        '
      parameters:
      - $ref: '#/components/parameters/PathPlaylistId'
      - $ref: '#/components/parameters/QueryMarket'
      - name: fields
        required: false
        in: query
        schema:
          title: Fields
          description: 'Filters for the query: a comma-separated list of the

            fields to return. If omitted, all fields are returned. For example, to get

            just the total number of items and the request limit:<br/>`fields=total,limit`<br/>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:<br/>`fields=items(added_at,added_by.id)`<br/>Use

            multiple parentheses to drill down into nested objects, for example:<br/>`fields=items(track(name,href,album(name,href)))`<br/>Fields

            can be excluded by prefixing them with an exclamation mark, for example:<br/>`fields=items.track.album(!external_urls,images)`

            '
          example: items(added_by.id,track(name,href,album(name,href)))
          type: string
      - $ref: '#/components/parameters/QueryLimit'
      - $ref: '#/components/parameters/QueryOffset'
      - $ref: '#/components/parameters/QueryAdditionalTypes'
      responses:
        '200':
          $ref: '#/components/responses/PagingPlaylistTrackObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth_2_0:
        - playlist-read-private
    post:
      tags:
      - Tracks
      operationId: add-tracks-to-playlist
      deprecated: true
      summary: 'Add Items to Playlist [DEPRECATED]

        '
      description: '**Deprecated:** Use [Add Items to Playlist](/documentation/web-api/reference/add-items-to-playlist) instead.


        Add one or more items to a user''s playlist.

        '
      parameters:
      - $ref: '#/components/parameters/PathPlaylistId'
      - name: position
        required: false
        in: query
        schema:
          title: Position (append by default)
          description: 'The position to insert the items, a zero-based index. For example, to insert the items in the first position: `position=0`; to insert the items in the third position: `position=2`. If omitted, the items will be appended to the playlist. Items are added in the order they are listed in the query string or request body.

            '
          example: 0
          type: integer
      - name: uris
        required: false
        in: query
        schema:
          title: Spotify Track URIs
          description: 'A comma-separated list of [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to add, can be track or episode URIs. For example:<br/>`uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh, spotify:track:1301WleyT98MSxVHPZCA6M, spotify:episode:512ojhOuo1ktJprKbVcKyQ`<br/>A maximum of 100 items can be added in one request. <br/>

            _**Note**: it is likely that passing a large number of item URIs as a query parameter will exceed the maximum length of the request URI. When adding a large number of items, it is recommended to pass them in the request body, see below._

            '
          example: spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              properties:
                uris:
                  description: 'A JSON array of the [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to add. For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh","spotify:track:1301WleyT98MSxVHPZCA6M", "spotify:episode:512ojhOuo1ktJprKbVcKyQ"]}`<br/>A maximum of 100 items can be added in one request. _**Note**: if the `uris` parameter is present in the query string, any URIs listed here in the body will be ignored._

                    '
                  type: array
                  items:
                    type: string
                position:
                  description: 'The position to insert the items, a zero-based index. For example, to insert the items in the first position: `position=0` ; to insert the items in the third position: `position=2`. If omitted, the items will be appended to the playlist. Items are added in the order they appear in the uris array. For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh","spotify:track:1301WleyT98MSxVHPZCA6M"], "position": 3}`

                    '
                  type: integer
      responses:
        '201':
          $ref: '#/components/responses/PlaylistSnapshotId'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth_2_0:
        - playlist-modify-public
        - playlist-modify-private
    put:
      tags:
      - Tracks
      operationId: reorder-or-replace-playlists-tracks
      deprecated: true
      summary: 'Update Playlist Items [DEPRECATED]

        '
      description: '**Deprecated:** Use [Update Playlist Items](/documentation/web-api/reference/reorder-or-replace-playlists-items) instead.


        Either reorder or replace items in a playlist depending on the request''s parameters.

        To reorder items, include `range_start`, `insert_before`, `range_length` and `snapshot_id` in the request''s body.

        To replace items, include `uris` as either a query parameter or in the request''s body.

        Replacing items in a playlist will overwrite its existing items. This operation can be used for replacing or clearing items in a playlist.

        <br/>

        **Note**: Replace and reorder are mutually exclusive operations which share the same endpoint, but have different parameters.

        These operations can''t be applied together in a single request.

        '
      parameters:
      - $ref: '#/components/parameters/PathPlaylistId'
      - name: uris
        required: false
        in: query
        schema:
          title: Spotify Track URIs
          description: 'A comma-separated list of [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to set, can be track or episode URIs. For example: `uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M,spotify:episode:512ojhOuo1ktJprKbVcKyQ`<br/>A maximum of 100 items can be set in one request.

            '
          type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                range_start: 1
                insert_before: 3
                range_length: 2
              type: object
              additionalProperties: true
              properties:
                uris:
                  type: array
                  items:
                    type: string
                range_start:
                  type: integer
                  description: 'The position of the first item to be reordered.

                    '
                insert_before:
                  type: integer
                  description: 'The position where the items should be inserted.<br/>To reorder the items to the end of the playlist, simply set _insert_before_ to the position after the last item.<br/>Examples:<br/>To reorder the first item to the last position in a playlist with 10 items, set _range_start_ to 0, and _insert_before_ to 10.<br/>To reorder the last item in a playlist with 10 items to the start of the playlist, set _range_start_ to 9, and _insert_before_ to 0.

                    '
                range_length:
                  type: integer
                  description: 'The amount of items to be reordered. Defaults to 1 if not set.<br/>The range of items to be reordered begins from the _range_start_ position, and includes the _range_length_ subsequent items.<br/>Example:<br/>To move the items at index 9-10 to the start of the playlist, _range_start_ is set to 9, and _range_length_ is set to 2.

                    '
                snapshot_id:
                  type: string
                  description: 'The playlist''s snapshot ID against which you want to make the changes.

                    '
      responses:
        '200':
          $ref: '#/components/responses/PlaylistSnapshotId'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth_2_0:
        - playlist-modify-public
        - playlist-modify-private
    delete:
      tags:
      - Tracks
      operationId: remove-tracks-playlist
      deprecated: true
      summary: 'Remove Playlist Items [DEPRECATED]

        '
      description: '**Deprecated:** Use [Remove Playlist Items](/documentation/web-api/reference/remove-items-playlist) instead.


        Remove one or more items from a user''s playlist.

        '
      parameters:
      - $ref: '#/components/parameters/PathPlaylistId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - tracks
              properties:
                tracks:
                  type: array
                  description: 'An array of objects containing [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) of the tracks or episodes to remove.

                    For example: `{ "tracks": [{ "uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" },{ "uri": "spotify:track:1301WleyT98MSxVHPZCA6M" }] }`. A maximum of 100 objects can be sent at once.

                    '
                  items:
                    type: object
                    properties:
                      uri:
                        type: string
                        description: Spotify URI
                snapshot_id:
                  type: string
                  description: 'The playlist''s snapshot ID against which you want to make the changes.

                    The API will validate that the specified items exist and in the specified positions and make the changes,

                    even if more recent changes have been made to the playlist.

                    '
      responses:
        '200':
          $ref: '#/components/responses/PlaylistSnapshotId'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth_2_0:
        - playlist-modify-public
        - playlist-modify-private
  /playlists/{playlist_id}/items:
    get:
      tags:
      - Tracks
      operationId: get-playlists-items
      x-spotify-policy-list:
        $ref: '#/components/x-spotify-policy/metadataWithMachineLearningPolicyList'
      summary: 'Get Playlist Items

        '
      description: 'Get full details of the items of a playlist owned by a Spotify user.


        **Note**: This endpoint is only accessible for playlists owned by the current user or playlists the user is a collaborator of. A `403 Forbidden` status code will be returned if the user is neither the owner nor a collaborator of the playlist.

        '
      parameters:
      - $ref: '#/components/parameters/PathPlaylistId'
      - $ref: '#/components/parameters/QueryMarket'
      - name: fields
        required: false
        in: query
        schema:
          title: Fields
          description: 'Filters for the query: a comma-separated list of the

            fields to return. If omitted, all fields are returned. For example, to get

            just the total number of items and the request limit:<br/>`fields=total,limit`<br/>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:<br/>`fields=items(added_at,added_by.id)`<br/>Use

            multiple parentheses to drill down into nested objects, for example:<br/>`fields=items(track(name,href,album(name,href)))`<br/>Fields

            can be excluded by prefixing them with an exclamation mark, for example:<br/>`fields=items.track.album(!external_urls,images)`

            '
          example: items(added_by.id,track(name,href,album(name,href)))
          type: string
      - $ref: '#/components/parameters/QueryLimit'
      - $ref: '#/components/parameters/QueryOffset'
      - $ref: '#/components/parameters/QueryAdditionalTypes'
      responses:
        '200':
          $ref: '#/components/responses/PagingPlaylistTrackObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth_2_0:
        - playlist-read-private
    post:
      tags:
      - Tracks
      operationId: add-items-to-playlist
      summary: 'Add Items to Playlist

        '
      description: 'Add one or more items to a user''s playlist.

        '
      parameters:
      - $ref: '#/components/parameters/PathPlaylistId'
      - name: position
        required: false
        in: query
        schema:
          title: Position (append by default)
          description: 'The position to insert the items, a zero-based index. For example, to insert the items in the first position: `position=0`; to insert the items in the third position: `position=2`. If omitted, the items will be appended to the playlist. Items are added in the order they are listed in the query string or request body.

            '
          example: 0
          type: integer
      - name: uris
        required: false
        in: query
        schema:
          title: Spotify Track URIs
          description: 'A comma-separated list of [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to add, can be track or episode URIs. For example:<br/>`uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh, spotify:track:1301WleyT98MSxVHPZCA6M, spotify:episode:512ojhOuo1ktJprKbVcKyQ`<br/>A maximum of 100 items can be added in one request. <br/>

            _**Note**: it is likely that passing a large number of item URIs as a query parameter will exceed the maximum length of the request URI. When adding a large number of items, it is recommended to pass them in the request body, see below._

            '
          example: spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              properties:
                uris:
                  description: 'A JSON array of the [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to add. For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh","spotify:track:1301WleyT98MSxVHPZCA6M", "spotify:episode:512ojhOuo1ktJprKbVcKyQ"]}`<br/>A maximum of 100 items can be added in one request. _**Note**: if the `uris` parameter is present in the query string, any URIs listed here in the body will be ignored._

                    '
                  type: array
                  items:
                    type: string
                position:
                  description: 'The position to insert the items, a zero-based index. For example, to insert the items in the first position: `position=0` ; to insert the items in the third position: `position=2`. If omitted, the items will be appended to the playlist. Items are added in the order they appear in the uris array. For example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh","spotify:track:1301WleyT98MSxVHPZCA6M"], "position": 3}`

                    '
                  type: integer
      responses:
        '201':
          $ref: '#/components/responses/PlaylistSnapshotId'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth_2_0:
        - playlist-modify-public
        - playlist-modify-private
    put:
      tags:
      - Tracks
      operationId: reorder-or-replace-playlists-items
      summary: 'Update Playlist Items

        '
      description: 'Either reorder or replace items in a playlist depending on the request''s parameters.

        To reorder items, include `range_start`, `insert_before`, `range_length` and `snapshot_id` in the request''s body.

        To replace items, include `uris` as either a query parameter or in the request''s body.

        Replacing items in a playlist will overwrite its existing items. This operation can be used for replacing or clearing items in a playlist.

        <br/>

        **Note**: Replace and reorder are mutually exclusive operations which share the same endpoint, but have different parameters.

        These operations can''t be applied together in a single request.

        '
      parameters:
      - $ref: '#/components/parameters/PathPlaylistId'
      - name: uris
        required: false
        in: query
        schema:
          title: Spotify Track URIs
          description: 'A comma-separated list of [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) to set, can be track or episode URIs. For example: `uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M,spotify:episode:512ojhOuo1ktJprKbVcKyQ`<br/>A maximum of 100 items can be set in one request.

            '
          type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                range_start: 1
                insert_before: 3
                range_length: 2
              type: object
              additionalProperties: true
              properties:
                uris:
                  type: array
                  items:
                    type: string
                range_start:
                  type: integer
                  description: 'The position of the first item to be reordered.

                    '
                insert_before:
                  type: integer
                  description: 'The position where the items should be inserted.<br/>To reorder the items to the end of the playlist, simply set _insert_before_ to the position after the last item.<br/>Examples:<br/>To reorder the first item to the last position in a playlist with 10 items, set _range_start_ to 0, and _insert_before_ to 10.<br/>To reorder the last item in a playlist with 10 items to the start of the playlist, set _range_start_ to 9, and _insert_before_ to 0.

                    '
                range_length:
                  type: integer
                  description: 'The amount of items to be reordered. Defaults to 1 if not set.<br/>The range of items to be reordered begins from the _range_start_ position, and includes the _range_length_ subsequent items.<br/>Example:<br/>To move the items at index 9-10 to the start of the playlist, _range_start_ is set to 9, and _range_length_ is set to 2.

                    '
                snapshot_id:
                  type: string
                  description: 'The playlist''s snapshot ID against which you want to make the changes.

                    '
      responses:
        '200':
          $ref: '#/components/responses/PlaylistSnapshotId'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth_2_0:
        - playlist-modify-public
        - playlist-modify-private
    delete:
      tags:
      - Tracks
      operationId: remove-items-playlist
      summary: 'Remove Playlist Items

        '
      description: 'Remove one or more items from a user''s playlist.

        '
      parameters:
      - $ref: '#/components/parameters/PathPlaylistId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - items
              properties:
                items:
                  type: array
                  description: 'An array of objects containing [Spotify URIs](/documentation/web-api/concepts/spotify-uris-ids) of the tracks or episodes to remove.

                    For example: `{ "items": [{ "uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" },{ "uri": "spotify:track:1301WleyT98MSxVHPZCA6M" }] }`. A maximum of 100 objects can be sent at once.

                    '
                  items:
                    type: object
                    properties:
                      uri:
                        type: string
                        description: Spotify URI
                snapshot_id:
                  type: string
                  description: 'The playlist''s snapshot ID against which you want to make the changes.

                    The API will validate that the specified items exist and in the specified positions and make the changes,

                    even if more recent changes have been made to the playlist.

                    '
      responses:
        '200':
          $ref: '#/components/responses/PlaylistSnapshotId'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth_2_0:
        - playlist-modify-public
        - playlist-modify-private
  /me/tracks:
    get:
      tags:
      - Tracks
      operationId: get-users-saved-tracks
      summary: 'Get User''s Saved Tracks

        '
      description: 'Get a list of the songs saved in the current Spotify user''s ''Your Music'' library.

        '
      parameters:
      - $ref: '#/components/parameters/QueryMarket'
      - $ref: '#/components/parameters/QueryLimit'
      - $ref: '#/components/parameters/QueryOffset'
      responses:
        '200':
          $ref: '#/components/responses/PagingSavedTrackObject'
        '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:
      - Tracks
      operationId: save-tracks-user
      summary: 'Save Tracks for Current User

        '
      description: 'Save one or more tracks to the current user''s ''Your Music'' library.


        **Note:** This endpoint is deprecated. Use [Save Items to Library](/documentation/web-api/reference/save-library-items) instead.

        '
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              required:
              - uris
              properties:
                ids:
                  type: array
                  description: 'A JSON array of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `["4iV5W9uYEdYUVa79Axb7Rh", "1301WleyT98MSxVHPZCA6M"]`<br/>A maximum of 50 items can be specified in one request. _**Note**: if the `timestamped_ids` is present in the body, any IDs listed in the query parameters (deprecated) or the `ids` field in the body will be ignored._

                    '
                  items:
                    type: string
                timestamped_ids:
                  type: array
                  description: 'A JSON array of objects containing track IDs with their corresponding timestamps. Each object must include a track ID and an `added_at` timestamp. This allows you to specify when tracks were added to maintain a specific chronological order in the user''s library.<br/>A maximum of 50 items can be specified in one request. _**Note**: if the `timestamped_ids` is present in the body, any IDs listed in the query parameters (deprecated) or the `ids` field in the body will be ignored._

                    '
                  items:
                    type: object
                    required:
                    - id
                    - added_at
                    properties:
                      id:
                        type: string
                        description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the track.

                          '
                      added_at:
                        type: string
                        format: date-time
                        x-spotify-docs-type: Timestamp
                        description: 'The timestamp when the track was added to the library. Use ISO 8601 format with UTC timezone (e.g., `2023-01-15T14:30:00Z`). You can specify past timestamps to insert tracks at specific positions in the library''s chronological order. The API uses minute-level granularity for ordering, though the timestamp supports millisecond precision.

                          '
      responses:
        '200':
          description: Track saved
        '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:
      - Tracks
      operationId: remove-tracks-user
      summary: 'Remove User''s Saved Tracks

        '
      description: 'Remove one or more tracks from the current user''s ''Your Music'' library.


        **Note:** This endpoint is deprecated. Use [Remove Items from Library](/documentation/web-api/reference/remove-library-items) instead.

        '
      parameters:
      - $ref: '#/components/parameters/QueryTrackIds'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              properties:
                ids:
                  type: array
                  description: 'A JSON array of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example

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