All posts

Spotify API Rate Limit: 30-Second Window, 429s and Quota

November 9, 2026

Short answer

The Spotify API rate limit is counted per app over a rolling 30-second window, and Spotify does not publish the number. When you go over, the Web API returns HTTP 429, normally with a Retry-After header in seconds. Development Mode apps also have a separate quota, counted per developer account since July 2026, which returns 429 with "reason": "QUOTA_EXCEEDED"; Extended Quota Mode raises the rate limit but is open only to organizations with at least 250,000 monthly active users.

Spotify's Web API can send you a 429 for two different reasons, and they need different fixes. One is the rate limit, a short rolling window. The other is the Development Mode quota, a budget shared by all your development apps. This post covers both and how to tell them apart. What Development Mode can and cannot read is covered in Is the Spotify API free?

How the Spotify API rate limit works

  • Rolling 30 seconds. Spotify counts the calls your app made in the last 30 seconds source. There is no fixed reset moment.
  • Per app. The count is of calls "your app makes", so all users of one client ID share it.
  • Depends on mode. Development Mode apps have a lower limit than Extended Quota Mode apps. Spotify publishes neither number.
  • Some endpoints are stricter. A few, such as the playlist cover image upload, have their own custom limit. The error body tells you which limit you hit.

Rate limit or quota: two different 429s

Rate limitDevelopment Mode quota
CountedPer app, rolling 30 secondsPer developer account, across all its Development Mode client IDs, in buckets of endpoints
Response429, normally with Retry-After429 with "reason": "QUOTA_EXCEEDED" in the JSON body
FixWait Retry-After seconds, then slow downUse fewer calls; retrying soon will not help
Raised byExtended Quota ModeExtended Quota Mode

The quota change is from Spotify's 23 July 2026 update: an account can now have up to 25 client IDs, but they all draw from one quota pool, and the 429 body now names the reason. Spotify's quota modes page says the bucket groupings and limits are subject to change and does not list them.

{
  "error": {
    "status": 429,
    "message": "Too many requests",
    "reason": "QUOTA_EXCEEDED"
  }
}

Handling a Spotify 429 in Python

import random, time, requests

class QuotaExceeded(Exception):
    pass

def spotify_get(url, token, **params):
    for attempt in range(6):
        r = requests.get(url, params=params, timeout=30,
                         headers={"Authorization": "Bearer " + token})
        if r.status_code != 429:
            r.raise_for_status()
            return r.json()
        try:
            reason = r.json().get("error", {}).get("reason")
        except ValueError:
            reason = None
        if reason == "QUOTA_EXCEEDED":
            raise QuotaExceeded("development mode quota used up")
        wait = r.headers.get("Retry-After")
        delay = int(wait) if wait and wait.isdigit() else random.uniform(1, min(60, 2 ** attempt))
        time.sleep(delay + 0.5)
    raise RuntimeError("still rate limited after 6 tries")

album = spotify_get("https://api.spotify.com/v1/albums/4aawyAB9vmqN3uQ7FjRGTy", "TOKEN")

Two practical notes. Spotify says the header is "normally" present, so keep a fallback backoff for when it is missing. And if Retry-After is very large, log it and stop the job rather than sleeping in a request thread for hours.

How many calls can you really make?

Because Spotify does not publish the limit, you plan in calls, not in seconds. Take a job that needs 1,000 albums:

ModeHowCalls
Development ModeBatch endpoints were removed in February 2026, so GET /albums/{id} once per album source1,000
Extended Quota ModeGet Several Albums, up to 20 IDs per call50

Search is similar. In Development Mode a search returns at most 10 results, so 200 results for one query is 20 calls instead of 4.

For pacing, start conservatively and adapt. A reasonable start for a background job is one request every 250 ms, which is 120 per 30 seconds. On the first 429, honor Retry-After and halve your rate; after 10 clean minutes, raise it by 10%. At 4 requests a second the 1,000-album job takes about 4 minutes in Development Mode, if the quota holds.

Ways to stay under the limit

  • Batch where you can. In Extended Quota Mode, the Get Several endpoints cut calls by up to 20 times.
  • Use snapshot_id. Store each playlist's snapshot and skip refetching playlists that have not changed.
  • Cache catalog data. Album and track metadata rarely changes. A day-long cache removes most repeat calls.
  • Load lazily. Fetch details when a user opens them, not for every item on screen.
  • Watch the dashboard. Your app's page in the Developer Dashboard graphs request volume, which shows the spikes that trip the limit, such as a newsletter going out.

Extended quota mode

Extended Quota Mode removes the 5-user allowlist and has a much higher rate limit. Since 15 May 2025, Spotify accepts applications only from organizations, sent from a company email. Requirements include a registered business, a launched service and at least 250,000 monthly active users. If the partner application is approved, you submit the Quota extension Request questionnaire in the dashboard, and review can take up to six weeks. For an individual developer or a small project, Extended Quota Mode is not available.

When a paid API is simpler

If your job is reading public catalog data, such as albums, artists, playlists and podcasts, at a volume Development Mode cannot serve, and you are not a 250,000-user business, the official route is closed. ScrapeIO allows 300 requests a minute per API key, with no daily or monthly cap beyond the credits you hold. A 429 from ScrapeIO costs nothing, and neither do failed calls, private or not-found answers, or cached repeats.

ScrapeIO's spotify album API, spotify artist API, spotify playlist API and spotify search API return public Spotify data at 1 credit a call, with no user login. It cannot control playback or read a user's library. Agents can use the Spotify MCP server. For more options, see Spotify Web API and scraper options.

FAQ

What is the Spotify API rate limit?

Spotify does not publish a number. It counts each app's calls over a rolling 30 seconds, with a higher limit in Extended Quota Mode.

How long should I wait after a Spotify 429?

The number of seconds in the Retry-After header. If there is none, back off exponentially with jitter.

What does QUOTA_EXCEEDED mean?

Your developer account's Development Mode quota is used up. It is not the rolling rate limit, so short waits will not fix it.

Is the Spotify rate limit per user or per app?

Per app. The Development Mode quota is wider still: it is shared by every Development Mode app on your developer account.

Can an individual get Extended Quota Mode?

No. Since May 2025 Spotify only accepts organizations, and it asks for at least 250,000 monthly active users.

Sources

Checked on 9 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.

100 free credits, no card. Credits never expire.

Get API key