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