Spotify Monthly Listeners Scraper: Followers & World Rank avatar

Spotify Monthly Listeners Scraper: Followers & World Rank

Pricing

from $0.90 / 1,000 artists

Go to Apify Store
Spotify Monthly Listeners Scraper: Followers & World Rank

Spotify Monthly Listeners Scraper: Followers & World Rank

Spotify monthly listeners, followers, world rank and top 5 listener cities for any artist. Paste artist links, IDs or names; 50 artists per request. Track changes between runs. Pay per artist.

Pricing

from $0.90 / 1,000 artists

Rating

0.0

(0)

Developer

Eduardo Airaudo

Eduardo Airaudo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Spotify Monthly Listeners Scraper

Spotify monthly listeners, followers, world rank and top cities for any artist, as one clean row per artist. Paste artist links, IDs or plain artist names, run it once or on a schedule, and export the numbers to JSON, CSV or Excel. No Spotify account and no API key.

Unofficial; not affiliated with Spotify. This Actor reads the public numbers Spotify shows on artist pages.

What does Spotify Monthly Listeners Scraper do?

For every artist you enter, Spotify Monthly Listeners Scraper returns:

  • Monthly listeners (monthlyListeners): unique listeners over the last 28 days, the number on the artist's Spotify page, as an exact whole number.
  • Followers (followers) and world rank (worldRank), Spotify's ranking of the most-listened artists.
  • Top cities (topCities): the 5 cities with the most monthly listeners, each with country, region and listener count, plus the number one city as topCity, topCityCountry and topCityListeners.
  • Popularity (popularity, 0-100), the profile picture (imageUrl) and the artist's Spotify link (url).

It is built for rosters: 50 artists are fetched per request, so a list of 1,000 artist links or IDs takes 20 requests (each artist name adds one search first). With Track changes on, every row also says how the artist moved since your previous run.

How to scrape Spotify monthly listeners

  1. Paste your artists into Artists, one per line: Spotify artist links, spotify:artist: URIs, 22-character artist IDs or artist names (for example Bad Bunny).
  2. Click Start. Three artists take about two seconds; thousands take a few minutes.
  3. Open the Monthly listeners view in the Output tab, or download the rows as JSON, CSV, Excel or HTML.

A name is looked up with Spotify's artist search, and only an artist whose name matches it is used: case, accents, punctuation, & versus "and", a leading "The" and a small typo don't matter ("Tyler The Creator" finds Tyler, The Creator; "Weeknd" finds The Weeknd). matchedName shows the artist it matched. A name that matches no artist is not charged, and its line in ERRORS names Spotify's top result so you can paste that artist's link instead. Links and IDs are always exact.

Input

FieldWhat it doesDefault
artistsArtist links (open.spotify.com/artist/…, spotify.link short links too), spotify:artist: URIs, artist IDs or artist names, one per line (a line with several links or IDs is read as one artist each). The same artist entered twice is fetched and charged once.required
includeTopCitiesAdds topCities and the number one city (topCity, topCityCountry, topCityListeners).true
trackChangesCompares each artist with its previous run and adds the change columns (see below).false
historyStoreNameThe key-value store in your account that keeps the previous values for Track changes. Use one name per roster.spotify-monthly-listeners-history

Example input:

{
"artists": [
"https://open.spotify.com/artist/1Xyo4u8uXC1ZmMpatF05PJ",
"https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02",
"https://open.spotify.com/artist/4q3ewBCX7sLwd24euuV69X",
"Peso Pluma"
],
"trackChanges": true
}

Output example

One row per artist (The Weeknd on 2026-11-01, with Track changes on and a previous run a week earlier):

{
"artistId": "1Xyo4u8uXC1ZmMpatF05PJ",
"name": "The Weeknd",
"url": "https://open.spotify.com/artist/1Xyo4u8uXC1ZmMpatF05PJ",
"monthlyListeners": 116457297,
"followers": 129632964,
"worldRank": 3,
"topCity": "Mexico City",
"topCityCountry": "MX",
"topCityListeners": 1645614,
"topCities": [
{ "city": "Mexico City", "country": "MX", "region": "CMX", "listeners": 1645614 },
{ "city": "London", "country": "GB", "region": "ENG", "listeners": 1489446 },
{ "city": "São Paulo", "country": "BR", "region": "SP", "listeners": 1393878 },
{ "city": "Los Angeles", "country": "US", "region": "CA", "listeners": 1084296 },
{ "city": "Sydney", "country": "AU", "region": "NSW", "listeners": 978781 }
],
"popularity": 96,
"imageUrl": "https://i.scdn.co/image/ab6761610000e5ebc1719ac9e6a75c1c25835018",
"input": "https://open.spotify.com/artist/1Xyo4u8uXC1ZmMpatF05PJ",
"resolvedFrom": "url",
"matchedName": null,
"scrapedAt": "2026-11-01T08:00:01.284Z",
"previousMonthlyListeners": 114902551,
"monthlyListenersChange": 1554746,
"monthlyListenersChangePct": 1.35,
"previousFollowers": 129401877,
"followersChange": 231087,
"previousWorldRank": 4,
"worldRankChange": 1,
"previousScrapedAt": "2026-10-25T08:00:02.512Z"
}
FieldMeaning
artistId, name, urlThe artist's Spotify ID, name and page.
monthlyListenersMonthly listeners: unique listeners over the last 28 days.
followersSpotify followers.
worldRankSpotify world rank by monthly listeners; empty when the artist is not ranked.
topCity, topCityCountry, topCityListenersThe city with the most monthly listeners, its country code and its listeners.
topCitiesUp to 5 cities: {city, country, region, listeners}, most listeners first.
popularity, imageUrlSpotify popularity score (0-100) and profile picture.
input, resolvedFrom, matchedNameThe line you entered; how it named the artist (url, uri, id, short_link or search); for a name, the artist it matched.
scrapedAtWhen the numbers were read.
previousMonthlyListeners, monthlyListenersChange, monthlyListenersChangePctTrack changes: monthly listeners at the previous run, the difference and the difference in percent.
previousFollowers, followersChangeTrack changes: followers at the previous run and the difference.
previousWorldRank, worldRankChangeTrack changes: world rank at the previous run and the places gained (12 to 9 is +3).
previousScrapedAtTrack changes: when the previous numbers were read.

The Output tab has three views: Monthly listeners, Top cities, and Changes since the last run. The CSV link leaves out the nested topCities list; the number one city stays in its own columns.

Track Spotify monthly listeners over time

Spotify only shows today's number. To build your own monthly listeners history:

  1. Turn on Track changes (trackChanges) and give your roster a History store name (historyStoreName).
  2. Save the input as a task and schedule it daily or weekly in Apify.
  3. Each run compares every artist with the last run that delivered it and fills previousMonthlyListeners, monthlyListenersChange, monthlyListenersChangePct, followersChange and worldRankChange. An artist's first run leaves them empty.

Every run's dataset stays in your account, so the datasets of a schedule are also a full time series. Send them to Google Sheets, Slack or a webhook with Apify integrations. Use a separate history store for each schedule: two schedules writing the same store at the same time overwrite each other's values.

How much does it cost to scrape Spotify monthly listeners?

You pay per artist delivered. Your price follows your Apify plan:

Apify planPer artistPer 1,000 artists
Free$0.0015$1.50
Bronze$0.00125$1.25
Silver$0.001$1.00
Gold, Platinum and Diamond$0.0009$0.90

Each run also has Apify's start fee of $0.00005 (5 thousandths of a cent), and Apify covers the first 5 seconds of every run's compute. There is no monthly rental and no charge for platform usage.

Example (Free plan)ArtistsCost
The prefilled 3 artists3$0.0045 + $0.00005 start
A roster of 1,000 artists1,000$1.50
10,000 artists10,000$15.00 ($9.00 on Gold)
500 artists weekly for a month (4 or 5 runs)2,000 to 2,500$3.00 to $3.75

Never charged: unknown artists, names that match no artist, links to tracks or albums, broken IDs, repeats, and artists whose monthly listeners Spotify did not return this time. Set a maximum cost per run and the Actor stops at that amount without going over: it does not even look up the names it could not pay for.

FAQ

What are Spotify monthly listeners?

The number of unique people who played an artist at least once in the last 28 days, the figure on every artist's Spotify page. One listener who plays 50 songs counts once.

How often does Spotify update monthly listeners?

About once a day. Running this Actor more often than daily mostly returns the same numbers, so a daily or weekly schedule is enough for tracking.

Why is worldRank empty?

Spotify ranks only its most-listened artists, roughly the top 500 worldwide. Everyone else has no world rank, so the field is empty (null), not 0.

Why is monthlyListeners 0?

Nobody played the artist in the last 28 days. Spotify then shows no monthly listeners at all, and the row says 0. Followers are still filled in. Artists with very few listeners also have fewer than 5 top cities, or none.

Can I get historical monthly listeners?

Spotify publishes only the current number. Turn on Track changes and schedule the Actor: from your first run on, every run adds a data point and the change since the previous one.

What happens when Spotify does not answer for an artist?

The artist is asked for again right away and once more at the end of the run. If its monthly listeners still did not arrive, it is listed in the ERRORS record of the run's key-value store as temporary and is not charged. Run it again later.

When monthly listeners are missing for every artist of two requests in a row, Spotify's statistics are down for the moment: the Actor stops asking for the rest, tries them once more at the end of the run, and charges nothing for the artists it could not deliver (a run that delivered nothing ends as failed). Run it again later.

Do I need a Spotify account or API key?

No. You only need an Apify account, and the Actor never uses your Spotify login. Spotify's own Web API has never returned monthly listeners, world rank or top cities, and it stopped returning artist followers in 2026.

Yes. Links and IDs are fetched directly; names are looked up with Spotify's artist search first, 50 at a time, so the first rows arrive while a long list of names is still being looked up. When several artists share a name, Spotify's top-ranked one is used, so prefer links for exact results. resolvedFrom and matchedName tell you how each row was found.

Why did a name return no artist?

Spotify's search answers every text with its closest artists, even when none of them is the one you meant, so the Actor only accepts an artist whose name matches yours. Nicknames and other spellings ("Tupac" for 2Pac) don't match: the ERRORS record shows Spotify's top result for that line, and nothing is charged. Enter the artist's link or exact name instead.

The Actor reads public statistics that Spotify shows to every visitor of an artist page. It returns no personal data about listeners. Check that your use of the data complies with Spotify's terms and the laws that apply to you.

Use it from the Apify API or MCP

Start a run, wait for it and get the rows in one call (synchronous calls wait up to 5 minutes):

curl -X POST "https://api.apify.com/v2/acts/eduair94~spotify-monthly-listeners-scraper/run-sync-get-dataset-items?maxTotalChargeUsd=1" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"artists": ["https://open.spotify.com/artist/4q3ewBCX7sLwd24euuV69X", "Taylor Swift"]}'

JavaScript, with the apify-client package:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('eduair94/spotify-monthly-listeners-scraper').call({
artists: ['https://open.spotify.com/artist/1Xyo4u8uXC1ZmMpatF05PJ', 'Bad Bunny'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const artist of items) console.log(artist.name, artist.monthlyListeners, artist.worldRank, artist.topCity);

Python, with the apify-client package:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("eduair94/spotify-monthly-listeners-scraper").call(
run_input={"artists": ["Karol G", "https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02"], "trackChanges": True}
)
for artist in client.dataset(run["defaultDatasetId"]).iterate_items():
print(artist["name"], artist["monthlyListeners"], artist.get("monthlyListenersChange"))

AI agents can call it too: add the Actor to Apify's MCP server and ask for an artist's monthly listeners in plain language.

Use cases

  • A&R and talent scouting: compare a shortlist of artists by monthly listeners, followers and world rank, and spot who is growing fastest with Track changes.
  • Label and roster monitoring: a weekly snapshot of every signed artist, with the change since last week, straight into a spreadsheet.
  • Tour routing: the top cities show where an artist's listeners are before you book venues.
  • Playlist pitching and marketing: measure what a release, a playlist placement or a campaign did to an artist's monthly listeners.
  • Music market research: bulk Spotify artist stats for a genre, a country scene or a festival lineup.