Skip to content

feat(spotify)!: technical specification for changes to the api starting 2026-02-11 #447

Description

@dargmuesli

Technical changes for #445

Minimal instructions for agentic work to resolve the issue.

🔄 Endpoint Changes

❌ Removed Endpoints

  • Create Playlist for User
    POST /users/{user_id}/playlists
    Create a playlist for a Spotify user.
    ➡️ Use POST /me/playlists instead

  • Get Artist's Top Tracks
    GET /artists/{id}/top-tracks
    Get Spotify catalog information about an artist's top tracks by country.

  • Get Available Markets
    GET /markets
    Get the list of markets where Spotify is available.

  • Get New Releases
    GET /browse/new-releases
    Get a list of new album releases featured in Spotify.

  • Get Several Albums
    GET /albums

  • Get Several Artists
    GET /artists

  • Get Several Audiobooks
    GET /audiobooks

  • Get Several Browse Categories
    GET /browse/categories

  • Get Several Chapters
    GET /chapters

  • Get Several Episodes
    GET /episodes

  • Get Several Shows
    GET /shows

  • Get Several Tracks
    GET /tracks

  • Get Single Browse Category
    GET /browse/categories/{id}

  • Get User's Playlists
    GET /users/{id}/playlists

  • Get User's Profile
    GET /users/{id}


➕ Added Endpoints

  • Save to Library
    PUT /me/library
    Save a list of Spotify URIs to the user's library.

  • Remove from Library
    DELETE /me/library
    Remove a list of Spotify URIs from the user's library.


❌ Removed (Replaced by /me/library)

  • Remove Albums for Current User
    DELETE /me/albums
    ➡️ Use DELETE /me/library

  • Remove Audiobooks for Current User
    DELETE /me/audiobooks
    ➡️ Use DELETE /me/library

  • Remove Episodes for Current User
    DELETE /me/episodes
    ➡️ Use DELETE /me/library

  • Remove Shows for Current User
    DELETE /me/shows
    ➡️ Use DELETE /me/library

  • Remove Tracks for Current User
    DELETE /me/tracks
    ➡️ Use DELETE /me/library

  • Save Albums for Current User
    PUT /me/albums
    ➡️ Use PUT /me/library

  • Save Audiobooks for Current User
    PUT /me/audiobooks
    ➡️ Use PUT /me/library

  • Save Episodes for Current User
    PUT /me/episodes
    ➡️ Use PUT /me/library

  • Save Shows for Current User
    PUT /me/shows
    ➡️ Use PUT /me/library

  • Save Tracks for Current User
    PUT /me/tracks
    ➡️ Use PUT /me/library


🧩 Response Field Changes

These changes apply wherever the following objects appear in API responses.


Album

Removed fields:

  • album_group
  • available_markets
  • external_ids
  • label
  • popularity

Artist

Removed fields:

  • followers
  • popularity

Audiobook

Removed fields:

  • available_markets
  • publisher

Chapter

Removed fields:

  • available_markets

Playlist

Only user-owned playlists will return playlist contents.
Other playlists return metadata only.

Renamed fields:

  • tracksitems
  • tracks.tracksitems.items
  • tracks.tracks.trackitems.items.item

Show

Removed fields:

  • available_markets
  • publisher

Track

Removed fields:

  • available_markets
  • external_ids
  • linked_from
  • popularity

User

Removed fields:

  • country
  • email
  • explicit_content
  • followers
  • product

✅ Expected Work

  • Remove deprecated endpoints and related request/response models
  • Add /me/library PUT and DELETE endpoints
  • Update DTOs / models to reflect removed fields
  • Rename playlist-related fields as specified
  • Adjust deserialization logic accordingly
  • Update tests and documentation where applicable

📌 Notes

These changes apply globally across all affected endpoints and models.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions