Skip to content

feat: implement Spotify Web API February 2026 breaking changes#296

Open
janvrska wants to merge 1 commit intozmb3:masterfrom
janvrska:february-2026-api-changes
Open

feat: implement Spotify Web API February 2026 breaking changes#296
janvrska wants to merge 1 commit intozmb3:masterfrom
janvrska:february-2026-api-changes

Conversation

@janvrska
Copy link

Implements all breaking changes from the Spotify Web API February 2026 update.

Removed Fields

Struct Removed Fields
SimpleAlbum AlbumGroup, AvailableMarkets
FullAlbum Popularity, ExternalIDs
FullArtist Popularity, Followers
SimpleTrack AvailableMarkets, ExternalIDs
FullTrack Popularity, LinkedFrom
User Followers
PrivateUser Country, Email, Product
SimpleShow AvailableMarkets, Publisher

Removed types: TrackExternalIDs, LinkedFromInfo, Category, CategoryPage.

Removed Endpoints

  • Batch gets: GetAlbums, GetArtists, GetTracks
  • Follow/Unfollow: FollowUser, FollowArtist, UnfollowUser, UnfollowArtist, CurrentUserFollows, FollowPlaylist, UnfollowPlaylist, UserFollowsPlaylist
  • Browse: GetCategory, GetCategories, GetCategoryPlaylists, NewReleases
  • Other: GetUsersPublicProfile, GetPlaylistsForUser, GetPlaylistTracks, GetArtistsTopTracks, SaveShowsForCurrentUser
  • Old library methods: UserHasTracks, UserHasAlbums, AddTracksToLibrary, RemoveTracksFromLibrary, AddAlbumsToLibrary, RemoveAlbumsFromLibrary

Renamed: tracksitems

  • PlaylistTracksPlaylistItems
  • SimplePlaylist.TracksSimplePlaylist.Items
  • FullPlaylist.TracksFullPlaylist.Items
  • PlaylistItem.TrackPlaylistItem.Item (JSON: "item")
  • PlaylistTrackPage.TracksPlaylistTrackPage.Items
  • All playlist endpoint URLs: /playlists/{id}/tracks/playlists/{id}/items
  • Request body key "tracks""items" in remove operations

New Endpoints

  • CreatePlaylist(ctx, name, description, public, collaborative) — replaces CreatePlaylistForUser, uses POST /me/playlists
  • SaveToLibrary(ctx, uris ...URI)PUT /me/library (generic, URI-based)
  • RemoveFromLibrary(ctx, uris ...URI)DELETE /me/library
  • UserHasSavedItems(ctx, uris ...URI)GET /me/library/contains

Other Changes

  • Search: updated limit docs (max 10, default 5)
  • Deleted category.go and category_test.go
  • Updated all tests and test data JSON to match the new API shape
  • All tests pass

- Remove deleted fields from structs (album, artist, track, user, show)
- Rename playlist 'tracks' to 'items' across types, endpoints, and JSON
- Remove deleted endpoints (batch gets, follows, categories, new releases)
- Replace old library methods with generic URI-based endpoints
- Replace CreatePlaylistForUser with CreatePlaylist (POST /me/playlists)
- Update search limit documentation (max 10, default 5)
- Update all tests and test data to match new API shape
@janvrska janvrska marked this pull request as ready for review February 18, 2026 13:51
Copilot AI review requested due to automatic review settings February 18, 2026 13:51
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link

@jdcukier jdcukier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much more thorough fix than my branch. Thanks for doing this 👍

@jetzlstorfer
Copy link

Thanks for providing this. Looking forward to having this merged and ready to use :)

@fira42073
Copy link

Sorry for "any updates" kind of message, but I'm not quite sure whether this repo is maintained. Is it? If not, are there any alternatives? Is forking the way to go?

@jdcukier
Copy link

jdcukier commented Mar 2, 2026

For anyone interested in a short term solution, I forked the repo with @janvrska's fixes here:

https://github.com/jdcukier/spotify

I don't plan on maintaining it long term though

@jetzlstorfer
Copy link

From the official communication from Spotify sent out on March 9:

After some review and feedback we’ve received from the community, we have decided to postpone the following changes for existing Development Mode integrations until further notice:
Restricting API access to a reduced set of supported endpoints
The following updates will still take effect on March 9 for existing Development Mode integrations:
Limiting each Client ID to five authorized users
Development Mode use will require a Spotify Premium account
Developers will be limited to one Development Mode Client ID
We will share further details as we continue reviewing the implementation of these changes.

As a reminder, these updates do not affect applications operating in Extended Quota Mode. Newly created Development Mode Client IDs remain subject to the updated rules introduced on February 11.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants