Spotify Web API in 2026: Limits, Changes and Scraper Options
Spotify's Web API used to be the easy way to get music data. Since late 2024, Spotify has removed endpoints, cut Development Mode down and limited Extended Quota to large organizations. If your project broke or never got approved, this guide explains what changed, what still works, and the other options.
The timeline
| Date | Change |
|---|---|
| 27 Nov 2024 | New apps lose Related Artists, Recommendations, Audio Features, Audio Analysis, Featured Playlists, Category Playlists, 30-second previews in multi-get responses, and algorithmic and editorial playlists |
| 15 May 2025 | Extended Quota Mode accepts applications only from organizations, not individuals |
| 11 Feb 2026 | New Development Mode apps get new restrictions |
| 9 Mar 2026 | Existing Development Mode apps move to the same restrictions |
| 23 Jul 2026 | Client IDs per developer go from 1 to 25; quota is now counted per developer account; quota errors return "reason": "QUOTA_EXCEEDED" |
Development Mode today
From Spotify's quota modes page and February 2026 migration guide:
- The app owner must have Spotify Premium, or the app stops working.
- Up to 5 allowlisted users per new app.
- Removed: batch fetches of tracks, albums, artists and shows; browse endpoints; artist top tracks; other users' profiles and playlists; markets.
- Search returns at most 10 results per call, default 5. Page with
offset. - Playlist contents are only returned for playlists the user owns or collaborates on.
- Removed fields include artist
followersandpopularity, and track and albumpopularity.
The last point matters most for analytics. In Development Mode you can no longer read an artist's follower count or popularity score.
Extended Quota Mode
Extended Quota apps keep all endpoints and fields. To apply you must be a legally registered business with a launched service, at least 250,000 monthly active users, availability in key Spotify markets and commercial viability. Spotify says review can take up to six weeks. Most startups, agencies and researchers will not qualify.
The Developer Terms
If you build on the Spotify Platform, Spotify's Developer Terms apply. Three clauses shape data projects:
- IV.2.4.1 bars using a robot, spider or other tool to retrieve, duplicate or index Spotify content.
- IV.2.1.1 bars using the platform or its content to train AI or machine learning models.
- IV.3.1.1 bars storing or building databases of Spotify content beyond what your app strictly needs.
This is not legal advice. If your project depends on Spotify data, have a lawyer read the terms against your plan.
Your options
| Option | Good for | Limits |
|---|---|---|
| Web API, Development Mode | Personal tools and prototypes for up to 5 users | Premium owner, reduced endpoints and fields, search capped at 10 |
| Web API, Extended Quota | Large launched products | Organizations with 250,000+ MAU; review up to six weeks |
| spotipy | Python access to the Web API | Same limits as your app's mode |
| Bright Data Spotify scraper | Batch datasets of artists, tracks and albums | $1.50 per 1,000 page loads; 5,000 free a month |
| ScrapeIO | On-demand artist, album, track, playlist and podcast lookups | Per call; no subscription |
Questions to answer before you build
- How many users will sign in? Over 5 means Development Mode is not enough.
- Do you need follower counts or popularity? Development Mode no longer returns them.
- Will any of the data feed an AI model? The Developer Terms bar that.
- Do you need to keep data for months? The terms limit storage to what your app strictly needs.
If your answers point away from the Web API, decide early. Rewriting a data layer late is the expensive part.
Handling the new 429
Since July 2026 a 429 can mean two things. If the JSON body has "reason": "QUOTA_EXCEEDED", you used your account's quota and retrying soon will not help. Otherwise it is a short-term rate limit, and backing off works. Handle them separately:
import time, requests
def search(token, q):
while True:
r = requests.get("https://api.spotify.com/v1/search",
params={"q": q, "type": "artist", "limit": 10},
headers={"Authorization": "Bearer " + token})
if r.status_code != 429:
return r.json()
if "QUOTA_EXCEEDED" in r.text:
raise SystemExit("Quota used up for this developer account")
time.sleep(int(r.headers.get("Retry-After", 5)))
Remember that all your Development Mode apps now share one quota, so a test script can starve your demo app.
Doing it with ScrapeIO
ScrapeIO has a Spotify artist API, track API, album API, playlist API, Spotify search and podcast endpoints, by ID or URL, with one key and no Premium account. Weigh the Developer Terms above for your use case. See the Spotify endpoints.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://developer.spotify.com/blog/2024-11-27-changes-to-the-web-api
- https://developer.spotify.com/documentation/web-api/concepts/quota-modes
- https://developer.spotify.com/documentation/web-api/tutorials/february-2026-migration-guide
- https://developer.spotify.com/blog/2026-07-23-web-api-quota-updates
- https://developer.spotify.com/terms
- https://github.com/spotipy-dev/spotipy
- https://brightdata.com/products/web-scraper/spotify
100 free credits, no card. Credits never expire.
Get API key