Skip to content

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

@dargmuesli

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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions