And be sure to tweet us your feedback at @SpotifyPlatform on Twitter!
Reorder a Playlist's Tracks
Reorder a track or a group of tracks in a playlist.
When reordering tracks, the timestamp indicating when they were added and the user who added them will be kept untouched. In addition, the users following the playlists won’t be notified about changes in the playlists when the tracks are reordered.
Endpoints
PUT https://api.spotify.com/v1/playlists/{playlist_id}/tracks
Request Parameters
Path Parameters
Path Parameter | Value |
---|---|
playlist_id | The Spotify ID for the playlist. |
Header Fields
Header Field | Value |
---|---|
Authorization | Required. A valid access token from the Spotify Accounts service: see the Web API Authorization Guide for details. The access token must have been issued on behalf of the user. Reordering tracks in the current user’s public playlists requires authorization of the playlist-modify-public scope; reordering tracks in the current user’s private playlist (including collaborative playlists) requires the playlist-modify-private scope. See Using Scopes. |
Content-Type | Required if URIs are passed in the request body, otherwise ignored. The content type of the request body: application/json |
Body Parameters
Request Body Data | Value Type | Value |
---|---|---|
range_start | integer | Required. The position of the first track to be reordered. |
range_length | integer | Optional. The amount of tracks to be reordered. Defaults to 1 if not set. The range of tracks to be reordered begins from the range_start position, and includes the range_length subsequent tracks. Example: To move the tracks at index 9-10 to the start of the playlist, range_start is set to 9, and range_length is set to 2. |
insert_before | integer | Required. The position where the tracks should be inserted. To reorder the tracks to the end of the playlist, simply set insert_before to the position after the last track. Examples: To reorder the first track to the last position in a playlist with 10 tracks, set range_start to 0, and insert_before to 10. To reorder the last track in a playlist with 10 tracks to the start of the playlist, set range_start to 9, and insert_before to 0. |
snapshot_id | string | Optional. The playlist’s snapshot ID against which you want to make the changes. |
Visualization of how reordering tracks works
Response Format
On success, the response body contains a snapshot_id
in JSON format and the HTTP status code in the response header is 200
OK. The snapshot_id
can be used to identify your playlist version in future requests.
On error, the header status code is an error code, the response body contains an error object, and the existing playlist is unmodified.
Example (moving the first track to the fifth position)
curl -i -X PUT "https://api.spotify.com/v1/playlists/0vXtvEeftmc2aVQD9QBWrQ/tracks" -H "Authorization: Bearer {your access token}" -H "Content-Type:application/json" --data "{ \"range_start\" : 0, \"insert_before\" : 4 }"
HTTP/1.1 200 OK
{ "snapshot_id" : "KsWY41k+zLqbx7goYX9zr+2IUZQtqbBNfk4ZOgEpIurvab4VSHhEL2L4za8HW6D0" }
Example (moving the second and third tracks to the fourth position)
curl -i -X PUT "https://api.spotify.com/v1/playlists/0vXtvEeftmc2aVQD9QBWrQ/tracks" -H "Authorization: Bearer {your access token}" -H "Content-Type:application/json" --data "{ \"range_start\" : 1, \"range_length\" : 2, \"insert_before\" : 3 }"
HTTP/1.1 200 OK
{ "snapshot_id" : "KsWY41k+zLqbx7goYX9zr+2IUZQtqbBNfk4ZOgEpIurvab4VSHhEL2L4za8HW6D0" }
NOTE: looking for PUT https://api.spotify.com/v1/users/{user_id}/playlists/{playlist_id}/tracks
? Read the blog post.