Playlists

Update Playlist Items

PUT
/playlists/{playlist_id}/tracks

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

Authorization

oauth_2_0 playlist-modify-public, playlist-modify-private
AuthorizationBearer <token>

Spotify supports OAuth 2.0 for authenticating all API requests.

In: header

Scope: playlist-modify-public, playlist-modify-private

Path Parameters

playlist_id*Playlist ID

The Spotify ID of the playlist.

Query Parameters

uris?Spotify Track URIs

A comma-separated list of Spotify URIs to set, can be track or episode URIs. For example: uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M,spotify:episode:512ojhOuo1ktJprKbVcKyQA maximum of 100 items can be set in one request.

Request Body

application/json

uris?array<string>
range_start?integer

The position of the first item to be reordered.

insert_before?integer

The position where the items should be inserted.To reorder the items to the end of the playlist, simply set insert_before to the position after the last item.Examples: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.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?integer

The amount of items to be reordered. Defaults to 1 if not set.The range of items to be reordered begins from the range_start position, and includes the range_length subsequent items.Example: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?string

The playlist's snapshot ID against which you want to make the changes.

[key: string]?any

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/playlists/3cEYpjA9oz9GiPac4AsH4n/tracks" \  -H "Content-Type: application/json" \  -d '{    "range_start": 1,    "insert_before": 3,    "range_length": 2  }'
{  "snapshot_id": "abc"}