Spotify Scraper avatar

Spotify Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Spotify Scraper

Spotify Scraper

Scrape Spotify play counts, streams, monthly listeners, followers, world rank, top cities, and biographies. Six modes: artist, track, album, playlist, search, and playlist discovery (find playlists by keyword with save counts). 180+ markets: K-pop, J-pop, Latin, Afrobeats. $2.79/1K on Starter.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Sourabh Kumar

Sourabh Kumar

Maintained by Community

Actor stats

0

Bookmarked

188

Total users

77

Monthly active users

a day ago

Last modified

Categories

Share

Spotify Scraper: exact play counts, monthly listeners, world rank and top cities from any Spotify artist, track, album or playlist

Spotify Scraper: play counts, monthly listeners, tracks, albums & playlists

Scrape any Spotify artist, track, album, playlist, or keyword search in seconds, or find thousands of playlists by keyword with their save counts. No Spotify developer app, no OAuth, no login, no proxy setup. You get the numbers other scrapers can't touch: exact play counts, monthly listeners, followers, world rank, and top cities.

$2.79 per 1,000 results on the Starter plan ($3.00 on Free). No per-run fee. One actor, six modes.

Works for artists from every Spotify market (180+ countries). K-pop 🇰🇷, J-pop 🇯🇵, Latin 🇲🇽🇧🇷🇨🇴, Afrobeats 🇳🇬🇬🇭, Bollywood 🇮🇳, French rap 🇫🇷, German hip-hop 🇩🇪, Arabic 🇸🇦🇦🇪, C-pop 🇨🇳🇹🇼, Russian 🇷🇺: all in native script.

Quick facts
Price$2.79 per 1,000 results on Starter, $3.00 on Free, $2.00 on Business. No per-run fee
ModesArtist, track, album, playlist, search, playlist discovery
Speed2 to 5 seconds per artist, about 15 minutes for 500 artists
Login or API keyNot needed
OutputJSON, CSV, Excel, API, webhooks
LanguagesEvery Spotify market and script
Try Spotify Scraper free

Jump to: How it works · Modes with examples · Find playlists to pitch · Pricing · All fields · FAQ

Spotify Scraper is an independent tool. It is not affiliated with, endorsed by, or connected to Spotify AB.

How to scrape Spotify: step by step

How to scrape Spotify in three steps: paste a link, ID or keyword, click Start, export JSON, CSV or Excel
  1. Create a free Apify account. Takes 30 seconds, no card needed.
  2. Open Spotify Scraper in the Apify Console.
  3. Paste Spotify URLs, spotify: URIs, or bare IDs. Or pick search mode and type a keyword. Country links like intl-ko/ work too (see all).
  4. Click Start. Single entities finish in seconds; big batches in minutes.
  5. Export as JSON, CSV, or Excel, or fetch results via the API. What each row looks like: sample output per mode.

Why this scraper?

Spotify artist scraper: monthly listeners, followers, world rank, top cities Spotify track scraper: exact play count, artists, album, label
Spotify album scraper: full track listing with play counts and label Spotify playlist scraper: save count, owner, up to 500 tracks
Spotify search scraper: tracks, artists, albums and playlists for a keyword Spotify playlist finder: about 1,000 playlists per keyword with saves
Click a mode to jump to its input and an output example.
  • 🎯 Exact play counts on every track, down to the single play: the number people actually search for.
  • 📊 Monthly listeners and top 5 cities on every artist record, plus world rank for artists inside Spotify's global ranking (roughly the top 500): fields the official API doesn't expose.
  • 🧰 One actor, six modes (artist, track, album, playlist, search, playlist discovery) instead of stitching 3 to 6 separate scrapers together.
  • 🔎 Find playlists by keyword, filtered by saves. Up to about 1,000 playlists per keyword, each with its save count and owner, so you can pitch to curators instead of guessing.
  • 🔑 No app registration, no OAuth, no API keys. Paste a URL and click Start.
  • ⚡ No browser. A single artist finishes in 2 to 5 seconds; a batch of 500 artists takes about 15 minutes.
  • 🛡️ Built-in fallback keeps runs alive when Spotify hiccups, so batches don't die midway.
  • 💸 Bad input costs $0. Deleted artists, private playlists, and typo'd URLs log a warning and are never billed.
  • 🌍 Every market, every script. Hangul, Kanji, Cyrillic, Arabic, Devanagari returned untouched.

Spotify Scraper vs. the official Web API

Spotify Scraper compared with the official Spotify Web API: play counts, monthly listeners, world rank and top cities with no app registration
ConcernSpotify Web APIOther Spotify actorsThis actor
App registrationRequired, manual approval for extended quotaNot neededNot needed
Per-track play count❌ Not exposedPartial (play-count-only actors)✅ Every track
Monthly listeners, world rank, top cities❌ Not available❌ Mostly not available✅ All three
popularity, genresDeprecated Feb 2026 (returns stale data)Some still return dead fieldsSkipped on purpose
Audio features (tempo, key, danceability)Locked to pre-Nov-2024 grandfathered appsRarely available, and pricier when offeredNot included (honestly unavailable)
Number of actors to installN/AOften split into 3 to 6 separate scrapersOne actor, six modes
Per-run start feeN/A$5 on many competitors$0
Price per 1,000 resultsFree (but rate-limited)$3 to $5$2.79 on Starter
Locale URLs (intl-ko, intl-ja, etc.)N/AOften breakHandled

The short version: if you want play counts, followers, world rank, and top cities in one actor without juggling app keys or stitching six scrapers together, this is built for that. What it does not return: Limitations.

Scraping modes

Each mode below shows what you get, an input you can paste, and an output example.

Go to a mode: Artist · Track · Album · Playlist · Search · Playlist discovery

🎤 Artist mode

Spotify artist mode returns monthly listeners, followers, world rank, top 5 cities and top 10 tracks with play counts

Per-artist record with every demand-side metric Spotify shows the public: monthly listeners (active 30-day), followers, world rank, top 5 cities with per-city listener counts, top 10 tracks with exact play counts, related artists ("fans also like"), full biography in native language, external links (Instagram, Facebook, Wikipedia, TikTok), and discography counts. Set includeDiscography: true for full album, single, compilation, and popular-release lists.

🎤 Artist: settings

SettingDefaultWhat it does
Mode
mode
autoSet to artist, or leave empty: an artist URL sets it.
Spotify URLs or IDs
spotifyUrls
(none)Full URLs, spotify: URIs, or bare 22-character IDs.
Include artist discography
includeDiscography
falseInclude full album, single, compilation, and popular-release lists instead of just counts.
Max results
maxResults
500 means unlimited.

🎤 Artist: example input

{ "mode": "artist", "spotifyUrls": ["3TVXtAsR1Inumwj472S9r4"], "maxResults": 1 }

List every BLACKPINK album, single, and compilation (feed the album IDs to album mode for track listings and labels):

{ "mode": "artist", "spotifyUrls": ["41MozSoPIsD1dJM0CLPjZF"], "includeDiscography": true, "maxResults": 1 }

Bulk compare K-pop followers and world rank:

{
"mode": "artist",
"spotifyUrls": [
"3Nrfpe0tUJi4K4DXYWgMUX",
"41MozSoPIsD1dJM0CLPjZF",
"6HvZYsbFfjnjFrWF950C9d",
"2dIgFjalVxs4ThymZ67YCE",
"7nqOGRxlXj7N2JYbgNEjYH"
],
"maxResults": 5
}
Run this Spotify example: monthly listeners and top cities for an artist

🎤 Artist: example output

Fields in every Spotify artist record: monthly listeners, followers, world rank, top 5 cities, top 10 tracks with play counts, related artists, biography and discography counts

Artist record (Drake, real values 2026-10-08)

{
"type": "artist",
"spotifyId": "3TVXtAsR1Inumwj472S9r4",
"name": "Drake",
"monthlyListeners": 94598855,
"followers": 117796261,
"worldRank": 8,
"biography": "Canadian rapper and vocalist Drake has retained a bigger-than-life commercial presence...",
"imageUrl": "https://i.scdn.co/image/ab6761610000e5eb4293385d324db8558179afd9",
"headerImageUrl": "https://image-cdn-fa.spotifycdn.com/image/ab6761860000eab1a76cf626917521176d2f7723",
"externalLinks": [],
"topCities": [
{"city": "London", "country": "GB", "region": "ENG", "listeners": 2026128},
{"city": "Los Angeles", "country": "US", "region": "CA", "listeners": 1424617},
{"city": "New York City", "country": "US", "region": "NY", "listeners": 1403247},
{"city": "Chicago", "country": "US", "region": "IL", "listeners": 1283319},
{"city": "Dallas", "country": "US", "region": "TX", "listeners": 1120837}
],
"topTracks": [
{"spotifyId": "514joG57v4yKTsfQmz7stz", "name": "Janice STFU", "durationMs": 237344, "playCount": 359613936, "explicit": true, "previewUrl": "https://p.scdn.co/mp3-preview/1de9b315e1aa811aedaf905b1058b668b2d3146e"},
{"spotifyId": "1zi7xx7UVEFkmKfv06H8x0", "name": "One Dance", "durationMs": 173986, "playCount": 4502463260, "explicit": false, "previewUrl": "https://p.scdn.co/mp3-preview/0ee5843f6060102ce4ac239c856c452439e3d9d2"}
],
"topTracksCount": 10,
"relatedArtists": [
{"spotifyId": "1RyvyyTE3xzB2ZywiAwp0i", "name": "Future", "imageUrl": "https://i.scdn.co/image/ab6761610000e5eb2c472c891062acb4f3068583"},
{"spotifyId": "0Y5tJX1MQlPlqiwlOH1tJY", "name": "Travis Scott", "imageUrl": "https://i.scdn.co/image/ab6761610000e5eb19c2790744c792d05570bb71"}
],
"discography": {"albumsCount": 22, "singlesCount": 65, "compilationsCount": 0, "albums": [], "singles": [], "popularReleases": [], "compilations": []},
"spotifyUrl": "https://open.spotify.com/artist/3TVXtAsR1Inumwj472S9r4",
"dataSource": "partner"
}

All input fields: Input · Fields per mode: Field availability by mode · Back to all modes

🎵 Track mode

Spotify track mode returns exact play count, all artists, album, label, copyright lines and a preview MP3

Exact play count, all artists (primary and featured, each with Spotify ID), album context (name, type, release date, label, copyright C and P lines), disc number, track number, content rating (EXPLICIT / NONE), duration, 30-second preview MP3 URL, and cover image.

🎵 Track: settings

SettingDefaultWhat it does
Mode
mode
autoSet to track, or leave empty: a track URL sets it.
Spotify URLs or IDs
spotifyUrls
(none)Full URLs, spotify: URIs, or bare 22-character IDs.
Max results
maxResults
500 means unlimited.

🎵 Track: example input

{ "mode": "track", "spotifyUrls": ["https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b"], "maxResults": 1 }
Run this Spotify example: play counts for tracks

🎵 Track: example output

Track record (Blinding Lights, 5.62 billion plays)

{
"type": "track",
"spotifyId": "0VjIjW4GlUZAMYd2vXMi3b",
"name": "Blinding Lights",
"artists": [
{ "name": "The Weeknd", "spotifyId": "1Xyo4u8uXC1ZmMpatF05PJ", "isPrimary": true }
],
"album": {
"spotifyId": "4yP0hdKOZPNshxUOjY0cZj",
"name": "After Hours",
"type": "ALBUM",
"releaseDate": "2020-03-20T00:00:00Z",
"label": "Republic Records",
"copyright": [
{ "text": "© 2020 The Weeknd XO, Inc., marketed by Republic Records, a division of UMG Recordings, Inc.", "type": "C" },
{ "text": "℗ 2020 The Weeknd XO, Inc., marketed by Republic Records, a division of UMG Recordings, Inc.", "type": "P" }
]
},
"durationMs": 200040,
"playCount": 5622156475,
"trackNumber": 9,
"discNumber": 1,
"contentRating": "NONE",
"explicit": false,
"previewUrl": "https://p.scdn.co/mp3-preview/...",
"releaseDate": "2020-03-20T00:00:00Z",
"imageUrl": "https://i.scdn.co/image/...",
"spotifyUrl": "https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b",
"dataSource": "partner",
"releaseDatePrecision": "DAY"
}

All input fields: Input · Fields per mode: Field availability by mode · Back to all modes

💿 Album mode

Spotify album mode returns the full track listing with play counts, album type, label and copyright lines

Name, album type (ALBUM / SINGLE / COMPILATION), label (e.g., "Republic Records"), copyright lines, release date, and the full track listing: each track with play count, track and disc number, duration, content rating, and all artists. Multi-artist albums supported.

💿 Album: settings

SettingDefaultWhat it does
Mode
mode
autoSet to album, or leave empty: an album URL sets it.
Spotify URLs or IDs
spotifyUrls
(none)Full URLs, spotify: URIs, or bare 22-character IDs.
Max results
maxResults
500 means unlimited.

💿 Album: example input

{ "mode": "album", "spotifyUrls": ["https://open.spotify.com/album/4yP0hdKOZPNshxUOjY0cZj"], "maxResults": 1 }
Run this Spotify example: an album track list with play counts

💿 Album: example output

Album record (After Hours, real values 2026-10-10, 2 of its 14 tracks shown)

{
"type": "album",
"spotifyId": "4yP0hdKOZPNshxUOjY0cZj",
"name": "After Hours",
"albumType": "ALBUM",
"artists": [{"name": "The Weeknd", "spotifyId": "1Xyo4u8uXC1ZmMpatF05PJ"}],
"artist": "The Weeknd",
"releaseDate": "2020-03-20T00:00:00Z",
"label": "Republic Records",
"copyright": [{"text": "© 2020 The Weeknd XO, Inc., marketed by Republic Records, a division of UMG Recordings, Inc.", "type": "C"}, {"text": "℗ 2020 The Weeknd XO, Inc., marketed by Republic Records, a division of UMG Recordings, Inc.", "type": "P"}],
"trackCount": 14,
"tracks": [
{"spotifyId": "6b5P51m8xx2XA6U7sdNZ5E", "name": "Alone Again", "trackNumber": 1, "discNumber": 1, "durationMs": 250053, "playCount": 232408609, "contentRating": "EXPLICIT", "explicit": true, "artists": [{"name": "The Weeknd", "spotifyId": "1Xyo4u8uXC1ZmMpatF05PJ"}]},
{"spotifyId": "2K9Ovn1o2bTGqbsABGC6m3", "name": "Too Late", "trackNumber": 2, "discNumber": 1, "durationMs": 239973, "playCount": 231219421, "contentRating": "EXPLICIT", "explicit": true, "artists": [{"name": "The Weeknd", "spotifyId": "1Xyo4u8uXC1ZmMpatF05PJ"}]}
],
"imageUrl": "https://i.scdn.co/image/ab67616d0000b2738863bc11d2aa12b54f5aeb36",
"spotifyUrl": "https://open.spotify.com/album/4yP0hdKOZPNshxUOjY0cZj",
"dataSource": "partner",
"releaseDatePrecision": "DAY"
}

All input fields: Input · Fields per mode: Field availability by mode · Back to all modes

📜 Playlist mode

Spotify playlist mode returns save count, owner and up to 500 tracks with play counts and the date each was added

Name, save count, owner, description, item count, and the full track listing paginated automatically up to 500 tracks. Per track: name, artists, album, duration, play count, content rating, the addedAt timestamp (great for tracking editorial adds), and itemType (track, episode or localFile).

📜 Playlist: settings

SettingDefaultWhat it does
Mode
mode
autoSet to playlist, or leave empty: a playlist URL sets it.
Spotify URLs or IDs
spotifyUrls
(none)Full URLs, spotify: URIs, or bare 22-character IDs.
Max results
maxResults
500 means unlimited.

📜 Playlist: example input

{ "mode": "playlist", "spotifyUrls": ["37i9dQZF1DXcBWIGoYBM5M"], "maxResults": 1 }
Run this Spotify example: export a playlist with its tracks

📜 Playlist: example output

Playlist record (Today's Top Hits, 33.7M saves, real values 2026-10-08)

{
"type": "playlist",
"spotifyId": "37i9dQZF1DXcBWIGoYBM5M",
"name": "Today’s Top Hits",
"description": "The hottest 50. Cover: Taylor Swift",
"owner": "Spotify",
"itemCount": 50,
"saveCount": 33756415,
"tracks": [
{"spotifyId": "11hcBLPtbMp4aQI6zGQLub", "name": "Patient Zero", "artists": [{"name": "Taylor Swift", "spotifyId": "06HL4z0CvFAxyc27GXpf02"}], "album": {"spotifyId": "4hF2gTGuPYlykYuphDxi8J", "name": "The Life of a Showgirl: The Encore", "releaseDate": null}, "durationMs": 225868, "playCount": 69816683, "contentRating": "NONE", "explicit": false, "addedAt": "2026-09-25T04:02:48.872Z", "itemType": "track"}
],
"imageUrl": "https://i.scdn.co/image/ab67706f0000000271992d3b45eb1297df9c6bf7",
"spotifyUrl": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M",
"dataSource": "partner"
}

All input fields: Input · Fields per mode: Field availability by mode · Back to all modes

🔍 Search mode

Spotify search mode returns tracks, artists, albums and playlists for one keyword, in any language

One request returns matching tracks, artists, albums, and playlists in a single grouped record. Accepts any Unicode input.

🔍 Search: settings

SettingDefaultWhat it does
Mode
mode
requiredSet to search.
Search term
searchTerm
""The keyword to search. Any Unicode.
Max results
maxResults
50Number of items per category (up to 50).

🔍 Search: example input

{ "mode": "search", "searchTerm": "米津玄師", "maxResults": 10 }
Run this Spotify example: search tracks, artists and playlists

🔍 Search: example output

Search record (query "drake", real values 2026-10-08)

{
"type": "search",
"query": "drake",
"tracks": [
{"spotifyId": "6DCZcSspjsKoFjzjrWoCdn", "name": "God's Plan", "artists": ["Drake"], "album": "Scorpion", "playCount": null, "durationMs": 198973, "spotifyUrl": "https://open.spotify.com/track/6DCZcSspjsKoFjzjrWoCdn"}
],
"artists": [
{"spotifyId": "3TVXtAsR1Inumwj472S9r4", "name": "Drake", "imageUrl": "https://i.scdn.co/image/ab6761610000e5eb4293385d324db8558179afd9", "spotifyUrl": "https://open.spotify.com/artist/3TVXtAsR1Inumwj472S9r4"}
],
"albums": [
{"spotifyId": "4gvyJRNQPBb1kOWqwZjUYI", "name": "HABIBTI (FOMO)", "artist": "Drake", "albumType": "ALBUM", "imageUrl": "https://i.scdn.co/image/ab67616d0000b2732685b70af798b4f272c00d8a", "spotifyUrl": "https://open.spotify.com/album/4gvyJRNQPBb1kOWqwZjUYI"}
],
"playlists": [
{"spotifyId": "6SFx39GsC05tDIFlTMUsIK", "name": "BEST OF DRAKE ", "owner": "anac.ac1996", "description": "", "imageUrl": "https://mosaic.scdn.co/640/ab67616d00001e022090f4f6cc406e6d3c306733ab67616d00001e0267ffd8d6bbf399430ba9c044ab67616d00001e02d6adfbd3f091d6f2b9af6507ab67616d00001e02f9a9abe8ed9ffaba55412384", "spotifyUrl": "https://open.spotify.com/playlist/6SFx39GsC05tDIFlTMUsIK"}
],
"dataSource": "partner"
}

All input fields: Input · Fields per mode: Field availability by mode · Back to all modes

🔎 Playlist discovery mode

Spotify playlist discovery mode returns about 1,000 playlists per keyword, each with save count, owner and contact hints

Give it keywords, get back one row per playlist with its save count and owner. Built for artists and labels looking for playlists to pitch to.

  • Each keyword is searched up to about 1,000 playlists deep. Different keywords mostly find different playlists, so a list of keywords is how you scale.
  • Minimum saves: only playlists with at least this many saves are returned, and only those are charged.
  • Skip these playlists: paste the spotifyId column from earlier runs and those playlists are never returned or charged again. Repeats across keywords in the same run are removed automatically.
  • Spotify-owned or not: every row says whether Spotify itself runs the playlist (its editorial, algorithmic, genre and chart accounts). Tick "Skip Spotify-owned playlists" to keep only playlists run by people and brands.
  • Owner and contact hints: owner name, username and profile link. When the curator wrote an email, an Instagram/TikTok handle, or a link (a submission form such as SubmitHub or sbmt.to, a website, Linktree) in the description, it is pulled into contactEmails, contactHandles and contactLinks. Spotify does not publish curator emails, so most rows have none: in our 70-keyword indie test about 1 in 9 rows had at least one.
  • Search countries (optional): Spotify shows a different mix of playlists in each country, so you can repeat every keyword as if searching from up to 10 countries (US, UK, Canada, Mexico, Brazil, Germany and more). A playlist found in several countries comes back once, is charged once, and searchCountries lists every country that found it. Your "Skip these playlists" list applies to all of them.
  • Search languages (optional): repeats each keyword in other Spotify languages. This adds far fewer playlists than countries do: in our tests each language added about 5% new playlists, against 25 to 50% for each country.
Spotify playlist discovery: keywords in, about 1,000 playlists per keyword, filtered by minimum saves, with owner and curator contact hints

🔎 Playlist discovery: settings

SettingDefaultWhat it does
Mode
mode
requiredSet to playlistDiscovery.
Search terms
searchTerms
[]Keywords to search. If empty, searchTerm is used.
Minimum saves
minSaves
0Only return (and charge for) playlists with at least this many saves.
Skip Spotify-owned playlists
excludeSpotifyOwned
falseLeave out playlists Spotify itself runs.
Skip these playlists
excludePlaylistIds
[]Playlist URLs or IDs to skip.
Search countries
searchCountries
[]Optional country codes (US, GB, MX, ...), up to 10, to repeat each keyword from. Empty searches once from the United States.
Search languages
searchLanguages
[]Optional language codes (en, de, ja, ...) to repeat each keyword in.
Max results
maxResults
500 means unlimited.

🔎 Playlist discovery: example input

{
"mode": "playlistDiscovery",
"searchTerms": ["indie rock", "bedroom pop", "shoegaze", "chill indie"],
"minSaves": 200,
"excludeSpotifyOwned": true,
"maxResults": 0
}
Run this Spotify example: find indie playlist curators with contact hints

What to expect: in our tests, 30 keywords across many genres returned 12,395 playlists with 200+ saves in 20 minutes (about 400 per keyword). Within one genre, keywords overlap: 70 indie rock keywords returned 9,883 playlists in 34 minutes (about 140 per keyword), and near-duplicate keywords such as "indie rock uk" added almost nothing. Varied keywords (sub-genres, moods, eras, scenes) find the most new playlists. Results for the same keyword are stable when you repeat a search, so use new keywords to find new playlists. Always set a minimum saves value: a vague or misspelled keyword still returns loosely related playlists, and with a minimum of 0 you pay for all of them.

Countries roughly double what the same keywords find. 10 indie keywords with 45,000+ saves found 89 playlists from the US alone and 171 across 8 countries (about 18 minutes). 5 keywords with 1,000+ saves went from 1,052 to 2,245.

🔎 Playlist discovery: example output

Playlist discovery record (real row, query "post punk", 8 countries searched)

{
"type": "playlistDiscovery",
"spotifyId": "5GAHZbCRGu6NtqM2JhlaCH",
"name": "80s New Wave & Alternative",
"saveCount": 190829,
"owner": "Troy @ TavernTails",
"ownerUsername": "1297830857",
"ownerProfileUrl": "https://open.spotify.com/user/1297830857",
"isSpotifyOwned": false,
"description": "https://twitch.tv/taverntails",
"contactEmails": [],
"contactHandles": [],
"contactLinks": ["https://twitch.tv/taverntails"],
"searchTerm": "post punk",
"searchLanguage": null,
"searchRank": 25,
"imageUrl": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000d72c9e1e96192e75a9240fb4b69c",
"spotifyUrl": "https://open.spotify.com/playlist/5GAHZbCRGu6NtqM2JhlaCH",
"dataSource": "partner",
"searchCountries": ["US", "CA", "GB", "MX", "BR", "DE", "FR"]
}

All input fields: Input · Fields per mode: Field availability by mode · Back to all modes

How much does Spotify Scraper cost?

Spotify Scraper pricing per 1,000 results by Apify plan: $3.00 Free, $2.79 Starter, $2.50 Scale, $2.00 Business

Spotify Scraper charges $2.00 to $3.00 per 1,000 results depending on your Apify plan: $3.00 on Free, $2.79 on Starter, $2.50 on Scale, $2.00 on Business. No per-run fee, no subscription. The Free plan's $5 monthly credit covers about 1,666 results; the $29 Starter plan about 10,394 results per month.

Failed lookups are never billed (details). Pay-per-use. Pause whenever. One run or ten million, same price per result.

Global & multi-language support

Search Spotify in any language: Korean, Japanese, Arabic and Latin script examples, returned in their native script

Spotify publishes names and metadata in the artist's native script. This scraper returns them untouched: no transliteration, no dropped characters. It handles Hangul, Kanji, Katakana, Hiragana, Simplified and Traditional Chinese, Cyrillic, Arabic, Hebrew, Devanagari, Gurmukhi, Tamil, Thai, Greek, and every other Unicode script Spotify indexes.

Locale URLs supported

Paste any country-prefixed Spotify link, the scraper auto-strips the locale:

  • https://open.spotify.com/intl-ko/artist/... (Korean)
  • https://open.spotify.com/intl-ja/artist/... (Japanese)
  • https://open.spotify.com/intl-de/artist/... (German)
  • https://open.spotify.com/intl-fr/artist/... (French)
  • https://open.spotify.com/intl-es/artist/... (Spanish)
  • https://open.spotify.com/intl-pt/artist/... (Portuguese / Brazilian)
  • https://open.spotify.com/intl-it/artist/... (Italian)
  • https://open.spotify.com/intl-tr/artist/... (Turkish)
  • https://open.spotify.com/intl-ar/artist/... (Arabic)
  • https://open.spotify.com/intl-hi/artist/... (Hindi)
  • ...every other intl-XX/ locale variant

Search accepts any language

{ "mode": "search", "searchTerm": "米津玄師" } // J-pop
{ "mode": "search", "searchTerm": "أم كلثوم" } // Arabic
{ "mode": "search", "searchTerm": "방탄소년단" } // Korean (BTS in Hangul)
{ "mode": "search", "searchTerm": "Bad Bunny" } // Latin
{ "mode": "search", "searchTerm": "Rammstein" } // German

Top artist IDs by region (paste these to try)

RegionArtists & IDs
🇰🇷 K-popBTS 3Nrfpe0tUJi4K4DXYWgMUX · BLACKPINK 41MozSoPIsD1dJM0CLPjZF · Stray Kids 2dIgFjalVxs4ThymZ67YCE · NewJeans 6HvZYsbFfjnjFrWF950C9d · SEVENTEEN 7nqOGRxlXj7N2JYbgNEjYH · TWICE 7n2Ycct7Beij7Dj7meI4X0
🇯🇵 J-popYOASOBI 64tJ2EAv1R6UaZqc4iOCyj · Ado 6mEQK9m2krja6X1cfsAjfl · Kenshi Yonezu 1snhtMLeb2DYoMOcVbb8iB · Official HIGE DANdism 5Vo1hnCRmCM6M4thZCInCj · Aimyon 5kVZa4lFUmAQlBogl1fkd6
🇲🇽🇧🇷🇨🇴 LatinBad Bunny 4q3ewBCX7sLwd24euuV69X · Karol G 790FomKkXshlbRYZFtlgla · Peso Pluma 12GqGscKJx3aE4t07u7eVZ · Feid 2LRoIwlKmHjgvigdNGBHNo · Rauw Alejandro 1mcTU81TzQhprhouKaTkpq · Anitta 7FNnA9vBm6EKceENgCGRMb
🇳🇬🇬🇭🇿🇦 AfrobeatsBurna Boy 3wcj11K77LjEY1PkEazffa · Wizkid 3tVQdUvClmAT7URs9V3rsp · Tyla 3SozjO3Lat463tQICI9LcE · Asake 3a1tBryiczPAZpgoZN9Rzg · Rema 46pWGuE3dSwY3bMMXGBvVS · Davido 0Y3agQaa6g2r0YmHPOO9rh
🇮🇳 Bollywood & IndianArijit Singh 4YRxDV8wJFPHPTeXepOstw · AP Dhillon 6LEG9Ld1aLImEFEVHdWNSB · Diljit Dosanjh 2FKWNmZWDBZR4dE5KX4plR · Shreya Ghoshal 0oOet2f43PA68X5RxKobEy
🇫🇷 FrenchAya Nakamura 7IlRNXHjoOCgEAWN5qYksg · Orelsan 4FpJcNgOvIpSBeJgRg3OfN · PNL 3NH8t45zOTqzlZgBvZRjvB
🇩🇪 GermanApache 207 1qQLhymHXFPtP5U8KNKsm6 · Rammstein 6wWVKhxIU2cEi0K81v7HvP · RAF Camora 0Dvx6p8JDyzeOPGmaCIH1L
🇨🇳🇹🇼 C-popJay Chou 2elBjNSdBE2Y3f0j1mjrql · JJ Lin 7Dx7RhX0mFuXhCOUgB01uM · Jolin Tsai 1r9DuPTHiQ7hnRRZ99B8nL
🇸🇦🇦🇪🇪🇬 Arabic / MENAAmr Diab 5abSRg0xN1NV3gLbuvX24M · Fairuz 0dwFxqYkvZLSA6U6XfQcDV · Elissa 68rvMwPL0yMbYR5cv0pzCR

Every one of these returns monthly listeners, followers, top 5 cities, biography, top 10 tracks with play counts, related artists, and discography counts. World rank is filled only for artists inside Spotify's global ranking (roughly the top 500) and is null for the rest.

Input

{
"mode": "artist",
"spotifyUrls": [
"https://open.spotify.com/artist/3TVXtAsR1Inumwj472S9r4",
"spotify:artist:06HL4z0CvFAxyc27GXpf02",
"1Xyo4u8uXC1ZmMpatF05PJ"
],
"maxResults": 5,
"includeDiscography": true
}
FieldTypeDefaultNotes
modestring"artist"One of artist, track, album, playlist, search, playlistDiscovery. Auto-detected from URL if omitted.
spotifyUrlsstring[](none)Full URLs, spotify: URIs, or bare 22-character IDs. Used by artist, track, album, and playlist modes.
searchTermstring""Search mode, and playlist discovery when searchTerms is empty. Any Unicode.
maxResultsinteger500 means unlimited. In search mode it is the number of items per category (up to 50).
includeDiscographybooleanfalseArtist mode: include full album, single, compilation, and popular-release lists instead of just counts.
searchTermsstring[][]Playlist discovery: keywords to search.
minSavesinteger0Playlist discovery: only return (and charge for) playlists with at least this many saves.
searchLanguagesstring[][]Playlist discovery: optional language codes (en, de, ja, ...) to repeat each keyword in.
searchCountriesstring[][]Playlist discovery: optional country codes (US, GB, MX, ...), up to 10, to repeat each keyword from. Empty searches once from the United States.
excludePlaylistIdsstring[][]Playlist discovery: playlist URLs or IDs to skip.
excludeSpotifyOwnedbooleanfalsePlaylist discovery: leave out playlists Spotify itself runs.

Output

Every mode has a real output example next to its input in Scraping modes. Export results as JSON, CSV or Excel, or read them through the Apify API.

Field availability by mode

Fieldartisttrackalbumplaylistsearchplaylist discovery
name, spotifyId, spotifyUrl, imageUrl✅✅✅✅(per item; tracks have no image)✅
monthlyListeners, followers, worldRank, biography, topCities✅-----
topTracks, relatedArtists, discography, externalLinks, headerImageUrl✅-----
playCount, durationMs, explicit(top tracks)✅✅ (per track)✅ (per track)(tracks: durationMs; playCount is null)-
previewUrl(top tracks)✅----
trackNumber, contentRating-✅✅ (per track)(contentRating per track)--
discNumber-✅✅ (per track)---
artists-✅✅✅ (per track)(tracks: names; albums use artist)-
album-✅ (object)-✅ (per track)(per track, name only)-
releaseDate, releaseDatePrecision(discography)✅✅---
albumType, label, copyright, trackCount, tracks-(album object: label, copyright)✅---
saveCount, owner, description---✅(playlists: owner, description)✅
itemCount, addedAt, itemType---✅ (addedAt, itemType per track)--
ownerUsername, ownerProfileUrl, isSpotifyOwned, contactEmails, contactHandles, contactLinks-----✅
searchTerm, searchLanguage, searchRank, searchCountries-----✅
tracks, artists, albums, playlists, query (grouped results)----✅-

Use cases

  • 🇰🇷 K-pop analytics. BTS, BLACKPINK, NewJeans, Stray Kids, SEVENTEEN, TWICE, ATEEZ: monthly listeners, world rank, and top cities for fandom mapping, plus per-song play counts.
  • 🇯🇵 J-pop & anime OST pipeline. YOASOBI, Ado, Kenshi Yonezu, Official HIGE DANdism, Aimyon: release calendars for anime content sites.
  • 🇲🇽🇧🇷🇨🇴 Latin music trend tracking. Bad Bunny, Karol G, Peso Pluma, Feid, Rauw Alejandro, Anitta: reggaeton, corridos tumbados, funk carioca.
  • 🇳🇬🇬🇭🇿🇦 Afrobeats discovery. Burna Boy, Wizkid, Davido, Tyla, Asake, Rema: top cities (Lagos, London) and regional chart data.
  • 🇮🇳 Bollywood & Indian music. Arijit Singh, AP Dhillon, Diljit Dosanjh, Shreya Ghoshal: Hindi, Punjabi, Tamil, Telugu catalogs in native script.
  • 🇫🇷🇩🇪🇮🇹🇪🇸 European markets. French rap, German hip-hop, Italian pop, Spanish flamenco-pop: native-script names preserved.
  • 🇨🇳🇹🇼🇭🇰 C-pop & Chinese markets. Jay Chou, JJ Lin, Jolin Tsai: Simplified and Traditional Chinese names for Mandarin-language analytics.
  • 🇸🇦🇦🇪🇪🇬 Arabic music research. MENA artists, Khaleeji, Egyptian pop, Rai in Arabic script.
  • 📜 Editorial playlist monitoring. Today's Top Hits, RapCaviar, Viva Latino, Tomorrow's Hits: track save counts and per-track play movement daily.
  • 📡 Regional chart scraping. Daily Top 50 per country (France, Japan, Brazil, Germany, Korea, Mexico), Viral 50, Global Top 50, RADAR editorial lists.
  • 💿 Artist catalog audits. Every album, single, and compilation for a roster; run the album IDs through album mode for full track listings, labels, and copyright lines for rights workflows.
  • 🎧 A&R and sync licensing. Surface breakout artists in any language market before they chart globally, with cover art, release dates, and labels for clearance.
  • 📈 Competitor benchmarking. Compare followers, monthly listeners, world rank, and top cities across a label's roster or a DSP playlist.
  • 📊 Market research dashboards. Feed monthly listener and follower trends into Looker, Tableau, or Metabase.
  • 🗞️ Newsletter and content automation. Push Spotify metadata into Google Sheets, Airtable, Webflow, Ghost, or any webhook-driven pipeline.

Limitations

  • No popularity, genres, or audio features. Spotify deprecated popularity and genres in Feb 2026, and audio features (tempo, key, danceability) are locked to legacy developer apps. Any scraper still returning these hands you stale or fake numbers. I'd rather ship nothing than fake it.
  • No ISRC or UPC yet. Both require a registered Spotify developer app. An opt-in enrichment flag is planned; follow the Issues tab for the ship date.
  • Playlists return up to 500 tracks each, paginated automatically.
  • Album track listings cap at 1,000 tracks, paginated automatically.
  • Year-only release dates. Spotify only knows the year for some older releases; releaseDate then reads as January 1 of that year and releaseDatePrecision is YEAR (otherwise MONTH or DAY). Check it before trusting the day.
  • Playlist tracks have no album release date (album.releaseDate is null): Spotify does not include it in playlist data.
  • Search returns up to 50 items per category (tracks, artists, albums, playlists) per query. Search results carry no play counts. For more playlists, use playlist discovery mode.
  • Playlist discovery reaches about 1,000 playlists per keyword (Spotify's own search limit), usually 900 to 990 after removing repeats. Use more keywords or more search countries for more playlists.
  • Each search country adds run time. 10 keywords across 8 countries took about 18 minutes. Raise the run timeout for long keyword lists.
  • No curator emails from Spotify. Contact details appear only when the curator wrote them in the playlist description.
  • Public data only. The actor sees what a logged-out visitor sees: no private playlists, no user listening history.

Other scrapers you might like

Apple Podcast ScraperGoogle Play Store ScraperApple App Store Scraper
Threads ScraperShopify ScraperSimilarWeb Traffic Scraper

Frequently asked questions

Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data that falls under GDPR or CCPA without a lawful basis. This actor only touches publicly accessible Spotify pages: the same pages a logged-out visitor sees in a browser. You're responsible for how you use the output. Apify has a detailed breakdown: Is web scraping legal?.

How does it compare to Spotify's official Web API?

The official Web API requires you to register a developer app, manage OAuth, handle rate limits, and live with deprecations. It also doesn't expose per-track play counts, monthly listeners, world rank, or top cities. This actor gives you those fields with zero setup (full comparison). The tradeoff: no ISRC, UPC, or audio features, which live behind the official API.

What happens on bad URLs, deleted artists, or private playlists?

The run succeeds with zero results for that specific URL plus a warning line in the log. You're billed $0 for failed lookups. No run-level failures on input mistakes. And if the run hits its maximum cost limit, it stops cleanly and keeps the results already delivered.

Does it work on K-pop, J-pop, Arabic, Hindi, and other non-Latin scripts?

Yes. Names come back in whatever script Spotify publishes: Hangul, Kanji, Cyrillic, Arabic, Devanagari, Thai, Hebrew, Simplified and Traditional Chinese. intl-ko/, intl-ja/, intl-de/, intl-ar/, and every other locale prefix is accepted. BTS (3Nrfpe0tUJi4K4DXYWgMUX), Arijit Singh (4YRxDV8wJFPHPTeXepOstw), and Amr Diab (5abSRg0xN1NV3gLbuvX24M) all return monthly listeners, top cities, top tracks, and biography. More IDs to try: top artists by region.

How fast is it?

2 to 5 seconds per entity at default memory (512 MB). A batch of 500 artists takes about 15 minutes. Long playlist discovery runs take longer: see Limitations. Playlists of up to 500 tracks paginate automatically in a single run.

What's the rate limit?

None you have to manage. The actor paces requests and retries on its own. No Spotify API quota to track and no OAuth to babysit.

Can I integrate Spotify Scraper with other tools?

Push results straight into Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and any webhook consumer. The Apify platform treats every actor as a webhook source. See Apify integrations.

Can I use it with the Apify API?

Yes. Minimal start-run call:

curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~spotify-scraper/runs?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"artist","spotifyUrls":["3TVXtAsR1Inumwj472S9r4"],"maxResults":1}'

Full docs: Apify API reference.

Can I use it through an MCP server (Claude Desktop, Cursor)?

Yes. Apify ships an MCP server that exposes every actor as a tool. Setup: Apify MCP docs.

Your feedback

Ran into a bug, want a new field, or need a different market covered? Drop a note in the Issues tab. Every report goes to a human and fixes usually ship the same week.

Ask a question or report an issue about Spotify Scraper