Spotify Artist Scraper - Listeners & Followers avatar

Spotify Artist Scraper - Listeners & Followers

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Spotify Artist Scraper - Listeners & Followers

Spotify Artist Scraper - Listeners & Followers

Look up Spotify artists by ID, URI or open.spotify.com URL and get exact numbers: monthly listeners and follower count as integers rather than the rounded 100.6M the page prints, plus verified status, artist image and the top-tracks list with a play count on every track. No API credentials.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

String

String

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Spotify Artist Scraper — exact monthly listeners and followers

This Actor collects public Spotify artist data by artist ID or open.spotify.com URL. It returns exact monthly listeners, follower count and top-track play counts — 100593317, not the rounded "100.6M" the artist page displays.

No Spotify account, login, API key or client credentials are used. The anonymous token the Actor reads is the one Spotify's own public embed page hands out.

What it returns

FieldTypeNotes
artistIdstringSpotify's 22-character artist ID — stable, use it to de-duplicate
namestringArtist name
monthlyListenersnumberExact, e.g. 100593317 — the page shows "100.6M"
followerCountnumberExact integer, not a rounded display figure
isVerifiedbooleanWhether Spotify shows the artist as verified
topTracksobject[]{ trackId, name, playCount }playCount is an exact integer, e.g. 2801945011
imageUrlstringArtist avatar, the widest of the sizes Spotify ships
artistUrlstringhttps://open.spotify.com/artist/<artistId>
sourceUrl, collectedAtstringProvenance for every row

Input

{ "artists": ["4gzpq5DPGxSnKTe4SA8HAU", "https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02"] }
FieldDescription
artistsSpotify artist IDs, spotify:artist:<id> URIs or open.spotify.com artist URLs. Required, 1–200.
maxItemsCap on dataset items. Default 1000. Free plans stop at 250 requests and 250 results — see below.
concurrencyArtists fetched in parallel. Default 5.

An ID, a URI and a full URL for the same artist collapse to one fetch, so a mixed list is never billed twice. A value that is not a 22-character Spotify ID — an artist's name, for example — is rejected before it costs a fetch and is reported as a failure.

How it reads exact figures

The Spotify artist page renders nothing server-side: an ordinary fetch returns the web-player shell, and a crawler user-agent upgrades that only to Open Graph tags whose listener count is already rounded for display. The exact figures come from the same queryArtistOverview call the web player itself makes.

That call needs an anonymous bearer token and a persisted-query hash, both of which the public pages hand out. This Actor reads them once per run — three fetches in total: the open.spotify.com shell, the web-player bundle it links, and one /embed/artist/ page — and then issues one request per artist. The three-fetch bootstrap is per run, not per artist, so it amortises across a large artist list.

If that bootstrap fails, the run fails as one error rather than reporting every artist as a separately broken target.

Use cases

  • A&R and artist scouting, ranked by exact monthly listeners rather than a rounded display figure
  • Tracking artist and catalogue growth over time by re-running on a schedule
  • Label, distributor and playlist reporting across a roster
  • Comparing follower count against monthly listeners to gauge audience conversion
  • Enriching a music or rights database with verified status and artist imagery

Reliability

Every field comes from Spotify's own GraphQL response rather than from rendered markup, so a value is either present and exact or absent — the counts do not change between runs for the same artist beyond Spotify's own updates.

An artist ID Spotify does not know answers with an empty record. That is treated as a failed target and recorded under failures in the run's SUMMARY, rather than reaching the dataset as an all-null row counted as a success. A run in which every artist failed exits with an error.

Frequently asked questions

Do I need a Spotify account, API key or client credentials? No. This Actor uses the anonymous access token that Spotify's own public /embed/ page mints server-side, so no login, no developer app and no client secret is involved.

Are the monthly listeners exact or rounded? Exact. This Actor returns monthlyListeners as an integer such as 100593317, where the Spotify artist page renders "100.6M". followerCount and every topTracks[].playCount are exact integers too.

How do I get Spotify artist follower counts? Supply the artist's 22-character Spotify ID (or its open.spotify.com URL) in the artists input, and each dataset row returns followerCount alongside monthlyListeners for that artist.

Can I search Spotify by artist name? No. The Spotify Artist Scraper takes artist IDs, URIs or artist URLs — you supply the artists, it does not do discovery. A name is rejected as an invalid target before any fetch is spent on it.

How many artists can one run collect? Up to 200 per run, which is the ceiling on the artists input.

Does it return albums, full discographies or playlists? No. This Actor returns artist-level fields plus the top-tracks list Spotify shows on the artist page.

Limitations

Artist-level data only: no full discography, no album or playlist listings, no track audio features, and no search or discovery. genres and popularity are Spotify Web API fields with no counterpart anywhere in the public web player's data — they are carried in the JSON as [] and null so the dataset keeps one column set per artist, and they are not part of the table view. Only spotify.com URLs are accepted.

Free plan limit

Runs started from an Apify free plan stop at 250 requests and 250 results, and the run reports that it reached the limit. Any paid plan runs the full input and maxItems you set. The artists input already caps at 200, so in practice a free-plan run is bounded by that ceiling rather than by the 250 limit.

The limit exists because this Actor fetches through our own infrastructure, which Apify does not cover for free-plan runs. It binds on requests as well as results so that a large input list cannot spend those fetches for rows the run will not return.