Spotify Monthly Listeners Scraper avatar

Spotify Monthly Listeners Scraper

Pricing

from $5.00 / 1,000 artist scrapeds

Go to Apify Store
Spotify Monthly Listeners Scraper

Spotify Monthly Listeners Scraper

Get Spotify artist monthly listeners, followers, world rank and top listener cities from an artist URL, ID or name. These figures are not in the official Spotify Web API. No Spotify API key needed.

Pricing

from $5.00 / 1,000 artist scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

37

Total users

18

Monthly active users

15 days ago

Last modified

Share

What is Spotify Monthly Listeners Scraper?

Use this Apify Actor to get Spotify artist monthly listeners, followers, world rank, and top listener cities from an artist URL, artist ID, Spotify URI, or artist name. It accepts a list of artist inputs, returns one dataset record per successfully scraped artist, and produces structured fields that are useful for analytics, routing, and agent workflows. The output includes artist identity fields plus popularity metrics and city data, so each record can be used as a compact snapshot of one artist at run time.

Best fit and connected workflows

This Actor fits workflows that start with an artist name or link and need Spotify artist popularity data in a structured format. It is useful for:

  • roster monitoring and artist benchmarking
  • audience geography review using top listener cities
  • enrichment steps in music marketing or A&R pipelines
  • AI agent tasks that need a single tool to resolve an artist and return current Spotify metrics

Because it is an Apify Actor, it can be used through Apify MCP as part of a larger agent flow, while still keeping the task focused on artist-level Spotify data.

Practical scenario

A music marketer is preparing a campaign for a shortlist of artists. They start with a list that includes a plain artist name and a Spotify artist URL. The Actor returns each artist's name, monthly listeners, followers, world rank, and top listener cities. The marketer uses the city list to decide where to concentrate ad spend and uses the world rank and listener counts to compare relative scale across the shortlist. The next action is to export the dataset items into a spreadsheet or pass them into a downstream reporting workflow.

Input

The Actor accepts these input fields:

FieldTypePurpose
artistsarray of stringsOne entry per artist. Accepts a Spotify artist URL, Spotify URI, bare 22-character artist ID, or plain artist name.
topCitiesLimitintegerNumber of top listener cities to include per artist. Range: 0 to 50. Spotify exposes up to 5 cities publicly.
maxResultsintegerHard cap on the number of artists processed and billed in one run.
proxyConfigurationobjectProxy used for Spotify requests. Apify Proxy is enabled by default.

Focused JSON input example

{
"artists": [
"Taylor Swift",
"https://open.spotify.com/artist/4q3ewBCX7sLwd24euuV69X",
"spotify:artist:1Xyo4u8uXC1ZmMpatF05PJ"
],
"topCitiesLimit": 5,
"maxResults": 10,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Output

Each dataset item represents one artist that was successfully scraped.

FieldTypeMeaning
querystring or nullOriginal input value for the artist.
resolvedViastring or nullHow the input was resolved, such as URL, URI, ID, or search.
typestringRecord type returned by Spotify.
idstring or nullSpotify artist ID.
uristring or nullSpotify artist URI.
urlstring or nullSpotify artist URL.
namestring or nullArtist name returned by Spotify.
verifiedboolean or nullVerified status when available.
monthlyListenersinteger or nullMonthly listeners value.
followersinteger or nullSpotify follower count.
worldRankinteger or nullWorld rank value when Spotify exposes it.
topCitiesarray or nullTop listener cities, ordered by listener count.
avatarImagestring or nullArtist image URL.
scrapedAtstring or nullTimestamp for when the record was scraped.

Illustrative output record

{
"query": "Taylor Swift",
"resolvedVia": "search",
"type": "artist",
"id": "06HL4z0CvFAxyc27GXpf02",
"uri": "spotify:artist:06HL4z0CvFAxyc27GXpf02",
"url": "https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02",
"name": "Taylor Swift",
"verified": true,
"monthlyListeners": 84213765,
"followers": 132847901,
"worldRank": 3,
"topCities": [
{
"city": "London",
"country": "GB",
"region": "England",
"listeners": 1284551
}
],
"avatarImage": "https://i.scdn.co/image/...",
"scrapedAt": "2026-06-20T22:41:09.412Z"
}

How it works

The Actor resolves each artist input to a Spotify artist and then queries Spotify's Partner API queryArtistOverview operation. According to the live contract, it is HTTP-only and uses a self-healing TOTP token plus operation hash extracted live from Spotify's web player. The actor does not launch a browser. Names are resolved to the top matching artist, while URLs, URIs, and bare IDs are used directly.

Pricing

Spotify Monthly Listeners Scraper uses Pay per event with Apify platform usage included. The charged events are:

  • Actor start
  • Artist scraped

An artist is billed when it is successfully returned with monthly listeners, followers, world rank, and top cities. Skipped inputs and non-artist links are not billed. Apify platform usage is included in the event price. For the current pricing details, open the live Pricing tab in the Apify Console.

For a simple example, a run that scrapes twenty artists triggers twenty artist events plus one Actor start event.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. It is designed for agent workflows that need a compact tool call to resolve Spotify artist inputs and retrieve structured artist-level metadata.

Actor identity: khadinakbar/spotify-monthly-listeners-scraper

Tool description: accept a list of Spotify artist URLs, URIs, IDs, or names and return one record per successfully scraped artist with monthly listeners, followers, world rank, top listener cities, and identity fields.

Get the Spotify artist profile for this artist name and return monthly listeners, followers, world rank, top listener cities, and the resolved Spotify URL. Use the artist's own Spotify page when possible.

Output interpretation:

  • resolvedVia shows how the artist was matched.
  • query preserves the original input.
  • monthlyListeners, followers, and worldRank are the main popularity fields.
  • topCities provides the publicly exposed top listener cities, ordered by listener count.
  • scrapedAt marks when the record was collected.

Provenance and scope:

  • Data comes from Spotify artist data exposed through the actor's HTTP-based scraping flow.
  • The scope is artist-level Spotify popularity data only.

Pagination and cost guidance:

  • Feed multiple artists in one input array.
  • Use maxResults to cap the number of processed and billed artists.
  • Use topCitiesLimit to control how many city rows are included per artist.
  • Billing follows the actor's Pay per event contract.

Apify API example

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/spotify-monthly-listeners-scraper').call({
artists: ['Taylor Swift', 'The Weeknd'],
topCitiesLimit: 5,
maxResults: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`${item.name}: ${item.monthlyListeners} monthly listeners`);
}

Best results and outcome guidance

Use exact Spotify artist URLs or artist IDs when you want the most direct match. Use a plain artist name when you want the Actor to resolve the top matching artist on Spotify. Set topCitiesLimit to 0 when you only need core popularity fields and want smaller records. Keep maxResults aligned with the number of artists you intend to process in one run.

Continue the workflow

  • Then use Spotify Play Count Scraper to extend Spotify Monthly Listeners Scraper research with a complementary content contract.
  • Then use Terabox Video Downloader to extend Spotify Monthly Listeners Scraper with a neighboring creator and media research source when the brief calls for Terabox data.

Design note

I found that the live dataset contract exposes a single flat record per artist, with query, resolvedVia, monthlyListeners, followers, worldRank, topCities, and scrapedAt among the fields, which makes the Actor straightforward to consume in downstream workflows.

FAQ

Can I paste a Spotify artist URL, URI, or ID?
Yes. The Actor accepts all three, along with a plain artist name.

What happens with a Spotify album or playlist link?
The input schema is for artist entries. Artist URLs, URIs, IDs, and names are the intended inputs.

How many top listener cities can I request?
The topCitiesLimit field accepts 0 to 50, while Spotify exposes up to 5 cities publicly.

What does resolvedVia tell me?
It shows whether the artist was resolved from a URL, URI, ID, or search input.

Is this Actor usable through Apify MCP?
Yes. It is an Apify Actor that is MCP-ready and designed for agent workflows.

Can I use this for multiple artists in one run?
Yes. Pass an array of artist inputs and control the run with maxResults.

Responsible use

Use the data in ways that respect Spotify's terms, applicable laws, and your own data-handling requirements. This Actor collects publicly exposed Spotify artist information and returns it in structured form for legitimate research, operations, automation, and agent workflows.

Call over HTTP

Copy the authenticated URL from the Actor’s Endpoints tab. Send POST /artists with Authorization: Bearer <your Apify token> and a JSON body, for example:

{"artists":["0TnOYISbd1XYRBk9myaseg"],"maxResults":1,"topCitiesLimit":5,"maxCostUsd":0.005}

Use artists for artist IDs, URLs, URIs or names. maxResults defaults to50; topCitiesLimit defaults to5 and accepts0 through50. Zero omits cities. The same native overview parser, fields and proxy route rotation are used; unavailable values stay null. No new plan-specific free quota or paid feature gate is introduced. Existing normal-run limits and options remain available.

Each useful returned artist uses the existing artist-scraped event at $0.005 before discounts. Valid empty or failed lookups do not incur that result event. Shared HTTP adds no manual startup event to every request. Normal-run startup pricing ($0.00005) and platform-usage settings are unchanged.

The optional maxCostUsd must cover the maximum requested output count at the listed event price before lookup begins. Use maxResults to request a smaller maximum. This request budget is separate from your Console-wide maximum charge, which pooled billing does not currently enforce per request. X-Actor-Event-Count and X-Actor-Estimated-Charge-Usd describe the response; they are not final payout receipts.

Responses contain count, results and summary. Equivalent references are deduplicated. HTTP accepts up to10,000 entries per array, a1MiB uncompressed JSON body and a16MiB result budget, with up to four active requests per instance. The work deadline is four minutes; long/large jobs use normal runs with Dataset exports. A whole-result size error returns no billable result body; it does not silently strip fields.

HTTP rows and caller input are returned directly and are not saved in a shared Dataset/KV or caller run history. Save the JSON yourself. The service stores aggregate counters only. A502 BILLING_UNCONFIRMED withholds results and must not be retried automatically. A503 asks clients to retry later. Readiness and schema endpoints do no lookup or manual billing.

Shared-pool funding follows Apify’s beta rules: Apify covers free-pool platform usage; paid-pool platform usage is deducted from creator payout. This does not change normal-run pricing.