Spotify Artist Scraper
Pricing
from $5.00 / 1,000 artist scrapeds
Spotify Artist Scraper
Scrape Spotify artist data — monthly listeners, followers, world rank, top cities, top tracks, and discography — by URL, ID, or artist name. HTTP-only, no API key. MCP/API-ready.
Pricing
from $5.00 / 1,000 artist scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
12
Monthly active users
17 days ago
Last modified
Categories
Share
Spotify Artist Scraper collects one record per Spotify artist from an artist URL, URI, bare artist ID, or artist name. It returns structured artist data such as monthly listeners, followers, world rank, top cities, top tracks, biography, external links, images, and discography summary. The Actor is HTTP-only, uses no API key, and is available on Apify as an Actor usable through Apify MCP.
Best fit and connected workflows
Use this Actor when your workflow starts with a Spotify artist identity and you want a single normalized artist record for analysis, enrichment, or downstream automation.
It fits well when you need to:
- resolve artist names into Spotify artist records for enrichment workflows
- compare artists by monthly listeners, followers, and world rank
- group artist audiences by top cities
- collect top tracks and discography summary for catalog or trend analysis
- feed Spotify artist data into AI agents that need compact structured JSON
This Actor returns artists only. If your starting point is a Spotify album, track, playlist, or podcast reference, a different Spotify collection workflow is a better match.
Opening contract
Spotify Artist Scraper is designed for analysts, operators, and AI agents that need one record per artist from Spotify.
Accepted input includes:
- artist URLs
- Spotify URIs
- bare 22-character artist IDs
- free-text artist names
One record means one resolved Spotify artist profile with fields such as:
- name, id, uri, and url
- verified status
- biography
- monthlyListeners, followers, and worldRank
- topCities and topTracks
- discography summary
- externalLinks
- avatarImage and headerImage
- dataSource and scrapedAt
The outcome is a dataset of structured artist records ready for filtering, joining, and agent reasoning.
Practical scenario
Maya, a music marketing analyst, starts with a list that contains a Spotify artist URL and two artist names from a campaign brief. She runs the Actor with those inputs and receives records containing the artist name, canonical URL, monthly listeners, followers, world rank, top cities, and top tracks.
She uses the topCities field to identify the strongest listener regions and checks the latest release in the discography summary before planning the next playlist and ad targeting step.
Input
| Field | Type | Description |
|---|---|---|
artists | array of strings | Spotify artist URLs, URIs, or bare artist IDs. Locale URL prefixes such as /intl-de/ are accepted. |
artistNames | array of strings | Free-text artist names resolved to the top-matching Spotify artist via search. One search request is used per name. |
maxResults | integer | Maximum number of artist records to return and bill for in one run. Default: 50. |
responseFormat | string | concise returns a compact profile with top cities, discography summary, and up to 10 top tracks. detailed returns the full top-track list. |
proxyConfiguration | object | Proxy settings. Apify automatic proxy is the default. Residential proxy also works if you choose it. |
Focused JSON input example
{"artists": ["https://open.spotify.com/artist/0TnOYISbd1XYRBk9myaseg"],"artistNames": ["Billie Eilish"],"maxResults": 2,"responseFormat": "concise","proxyConfiguration": {"useApifyProxy": true}}
Output
| Field | Type | Description |
|---|---|---|
type | string | Record type, expected to be artist. |
id | string or null | Spotify artist ID. |
uri | string or null | Spotify artist URI. |
url | string or null | Canonical Spotify artist URL. |
name | string or null | Artist name. |
verified | boolean or null | Verified profile indicator. |
biography | string or null | Artist biography text when present. |
monthlyListeners | integer or null | Current monthly listener count. |
followers | integer or null | Total followers. |
worldRank | integer or null | Global popularity rank when available. |
topCities | array or null | Top listener cities with city, country, region, and listeners. |
externalLinks | array or null | Linked external sites or socials. |
avatarImage | string or null | Profile image URL. |
headerImage | string or null | Header image URL. |
topTracksCount | integer or null | Count of top tracks returned. |
topTracks | array or null | Top track records. |
discography | object or null | Discography summary, including counts and latest release. |
popularityDataAvailable | boolean or null | Indicates whether popularity data was available. |
dataSource | string or null | Source indicator for the returned record. |
scrapedAt | string or null | ISO timestamp for when the record was collected. |
Illustrative output record
{"type": "artist","id": "0TnOYISbd1XYRBk9myaseg","uri": "spotify:artist:0TnOYISbd1XYRBk9myaseg","url": "https://open.spotify.com/artist/0TnOYISbd1XYRBk9myaseg","name": "Example Artist","verified": true,"monthlyListeners": 41250000,"followers": 9800000,"worldRank": 42,"topCities": [{"city": "Mexico City","country": "MX","region": null,"listeners": 980000}],"topTracksCount": 10,"discography": {"albumCount": 6,"singleCount": 28,"compilationCount": 1,"latest": {"name": "Latest Release","type": "SINGLE","date": "2026-05-01"}},"popularityDataAvailable": true,"dataSource": "partner","scrapedAt": "2026-06-20T00:00:00.000Z"}
How it works
The Actor resolves each artist from the input you provide and returns one dataset record per resolved artist. According to the live contract, it can accept Spotify artist URLs, URIs, bare IDs, and free-text artist names.
Implementation facts supplied by the contract:
- it is HTTP-only
- it uses a runtime-extracted Spotify web-player TOTP secret and GraphQL operation hashes
- it calls Spotify's Partner API for rich popularity data
- it falls back to the public embed page for baseline metadata when needed
- it uses Apify automatic proxy by default
- it supports a concise or detailed response format
Evergreen pricing
This Actor uses Apify pay per event pricing plus Apify platform usage.
Billing is based on:
- one run start event
- one artist scraped event for each returned artist record
For example, a run that returns ten artist records includes one start event and ten artist-scraped events. For current pricing details, check the live Pricing tab on the Actor page.
Use with AI agents (MCP)
This Actor is available through Apify MCP as a tool for retrieving structured Spotify artist data. The exact Actor identity is khadinakbar/spotify-artist-scraper.
Tool description: resolve Spotify artist inputs into a single record per artist, suitable for agent reasoning, enrichment, and downstream dataset use.
Scrape these Spotify artists and return structured JSON for each one. I have one artist URL and two artist names. Give me monthly listeners, followers, world rank, top cities, top tracks, and discography summary, then highlight the latest release for each artist.
Output interpretation:
- use
name,url, andidto confirm the artist identity - use
monthlyListeners,followers, andworldRankfor comparisons - use
topCitiesto group listener geography - use
topTracksanddiscographyfor catalog review - use
dataSourceandscrapedAtfor provenance and freshness
Scope and pagination guidance:
conciseis compact and agent-friendlydetailedreturns the full top-track list- the Actor returns discography counts plus the latest release in both modes
- the Actor returns artists only, one record per resolved artist
- billing follows the returned artist records, so
maxResultsis useful for cost control
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const input = {artists: ['https://open.spotify.com/artist/0TnOYISbd1XYRBk9myaseg',],artistNames: ['Billie Eilish'],maxResults: 2,responseFormat: 'concise',proxyConfiguration: {useApifyProxy: true,},};const run = await client.actor('khadinakbar/spotify-artist-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Best results and outcome guidance
Provide exact Spotify artist URLs or URIs when you already know the artist identity. Use artistNames when you only have a name and want Spotify to resolve the top match.
A few practical choices improve output consistency:
- use
artistsfor exact matches and deterministic routing - use
artistNamesfor discovery-style lookup - set
maxResultsto the number of artist records you want returned - choose
concisewhen you want compact records for agents or quick analysis - choose
detailedwhen you want the full top-track list
Continue the workflow
- Then use Spotify Monthly Listeners Scraper to extend Spotify Artist Scraper research with a complementary content contract.
- Then use Spotify Play Count Scraper to extend Spotify Artist Scraper research with a complementary content contract.
Design note
I found that the live dataset contract includes topTracksCount separately from topTracks, which makes it easy to compare summary size and track detail in one record.
FAQ
Can I start with a Spotify artist name instead of a URL?
Yes. Use artistNames when you only have a free-text artist name.
What input format is most precise?
artists with a Spotify artist URL, URI, or bare 22-character artist ID is the most direct route.
What if my list contains non-artist Spotify links?
The input contract is artist-specific, and the Actor returns artists only.
Can I choose between compact and full track output?
Yes. Use responseFormat: "concise" for a compact record, or responseFormat: "detailed" for the full top-track list.
Which proxy settings are used?
Apify automatic proxy is the default. Residential proxy also works if you choose it in proxyConfiguration.
Responsible use
Use this Actor in line with Spotify's terms and applicable laws. Review how you store, share, and automate the data you collect. Respect source platforms, rate your workflows conservatively, and apply the output only in ways that fit your organizational and legal requirements.