<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: 403 Errors in Spotify for Developers</title>
    <link>https://community.spotify.com/t5/Spotify-for-Developers/403-Errors/m-p/7379428#M20983</link>
    <description>&lt;P&gt;That's worked thanks!&lt;/P&gt;</description>
    <pubDate>Wed, 18 Mar 2026 22:48:30 GMT</pubDate>
    <dc:creator>ragenow99</dc:creator>
    <dc:date>2026-03-18T22:48:30Z</dc:date>
    <item>
      <title>403 Errors</title>
      <link>https://community.spotify.com/t5/Spotify-for-Developers/403-Errors/m-p/7378007#M20966</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Apologies this is written by Claude, but at least it includes all the relvant data!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Problem&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;POST /v1/playlists/{playlist_id}/tracks&amp;nbsp;consistently returns 403 "Forbidden" with&amp;nbsp;no&amp;nbsp;WWW-Authenticate&amp;nbsp;header, even though:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The token has all required scopes&lt;BR /&gt;The same token successfully creates playlists via&amp;nbsp;POST /v1/me/playlists&lt;BR /&gt;The playlist is owned by the authenticated user&lt;BR /&gt;The user is registered as a test user in the app's User Management&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;What works ✓&lt;/P&gt;&lt;P&gt;GET /v1/me&amp;nbsp;→ 200 (user: xxxxxx, product: premium)&lt;BR /&gt;POST /v1/me/playlists&amp;nbsp;→ 201 (playlist created,&amp;nbsp;public: true,&amp;nbsp;owner: xxxxxx)&lt;BR /&gt;All read endpoints (search, albums, tracks)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;What fails ✗&lt;/P&gt;&lt;P&gt;POST /v1/playlists/{id}/tracks&amp;nbsp;→ 403&amp;nbsp;{"error":{"status":403,"message":"Forbidden"}}&lt;BR /&gt;PUT /v1/playlists/{id}/tracks&amp;nbsp;→ same 403&lt;BR /&gt;Same result from browser (native fetch) and server (Node.js native fetch + node-fetch)&lt;BR /&gt;Tried query-param format (?uris=...) — same 403&lt;BR /&gt;Tried collaborative private playlist — same 403&lt;BR /&gt;Token scopes granted&amp;nbsp;(confirmed from&amp;nbsp;/api/token&amp;nbsp;response):&lt;/P&gt;&lt;P&gt;playlist-modify-private playlist-modify-public user-read-email user-read-private user-top-read&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Server log showing the inconsistency:&lt;/P&gt;&lt;P&gt;POST /me/playlists → 201 {"public":true,"collaborative":false,"owner":{"id":"xx"}}GET /playlists/{id}?fields=public,collaborative,owner → public:true, owner:xx&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;POST /playlists/{id}/tracks → 403 {"error":{"status":403,"message":"Forbidden"}}&lt;BR /&gt;WWW-Authenticate header: null&lt;/P&gt;&lt;P&gt;Key detail:&amp;nbsp;This functionality worked in an earlier version of the same app with the same client ID.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;No changes were made to the Spotify Developer Dashboard between then and now.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Questions:&lt;/P&gt;&lt;P&gt;What does 403 "Forbidden" with no&amp;nbsp;WWW-Authenticate&amp;nbsp;header mean specifically for&amp;nbsp;POST /playlists/{id}/tracks?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Is there an app-level approval step required for this endpoint that's separate from the standard Development Mode 25-user limit?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;If so, how do we request it — I can't find an "Extended Access" option in the dashboard?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Wed, 18 Mar 2026 11:43:08 GMT</pubDate>
      <guid>https://community.spotify.com/t5/Spotify-for-Developers/403-Errors/m-p/7378007#M20966</guid>
      <dc:creator>ragenow99</dc:creator>
      <dc:date>2026-03-18T11:43:08Z</dc:date>
    </item>
    <item>
      <title>Re: 403 Errors</title>
      <link>https://community.spotify.com/t5/Spotify-for-Developers/403-Errors/m-p/7378477#M20975</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.spotify.com/t5/user/viewprofilepage/user-id/2021136"&gt;@ragenow99&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for posting in the Spotify Community!&lt;/P&gt;
&lt;P&gt;You are getting this error, because the API has been cleaned up and simplified.&lt;/P&gt;
&lt;P&gt;Instead of having one endpoint to get tracks from a playlist and another to get podcast episodes from your playlist, you can now just use&amp;nbsp;&lt;STRONG&gt;&lt;EM&gt;/v1/playlists/{id}/items&lt;/EM&gt;&lt;/STRONG&gt; . Note: you are only able to get items from your own (collaborative-) playlists now.&lt;BR /&gt;You can see all the changes on &lt;A title="Web API Changelog - February 2026" href="https://developer.spotify.com/documentation/web-api/references/changes/february-2026" target="_blank" rel="noopener"&gt;this page&lt;/A&gt;. Also have a look at &lt;A title="February 2026 Web API Dev Mode Changes - Migration Guide" href="https://developer.spotify.com/documentation/web-api/tutorials/february-2026-migration-guide" target="_blank" rel="noopener"&gt;this guide&lt;/A&gt; to have a clear overview.&lt;/P&gt;
&lt;P&gt;I hope this helps clear things up. If you need more help, feel free to ask!&lt;/P&gt;</description>
      <pubDate>Wed, 18 Mar 2026 16:27:23 GMT</pubDate>
      <guid>https://community.spotify.com/t5/Spotify-for-Developers/403-Errors/m-p/7378477#M20975</guid>
      <dc:creator>Ximzend</dc:creator>
      <dc:date>2026-03-18T16:27:23Z</dc:date>
    </item>
    <item>
      <title>Re: 403 Errors</title>
      <link>https://community.spotify.com/t5/Spotify-for-Developers/403-Errors/m-p/7379428#M20983</link>
      <description>&lt;P&gt;That's worked thanks!&lt;/P&gt;</description>
      <pubDate>Wed, 18 Mar 2026 22:48:30 GMT</pubDate>
      <guid>https://community.spotify.com/t5/Spotify-for-Developers/403-Errors/m-p/7379428#M20983</guid>
      <dc:creator>ragenow99</dc:creator>
      <dc:date>2026-03-18T22:48:30Z</dc:date>
    </item>
  </channel>
</rss>

