Spotify Play Count Scraper avatar

Spotify Play Count Scraper

Pricing

from $1.60 / 1,000 item processeds

Go to Apify Store
Spotify Play Count Scraper

Spotify Play Count Scraper

Export timestamped public Spotify track play counts and artist listener metrics from watchlist URLs.

Pricing

from $1.60 / 1,000 item processeds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Export timestamped public Spotify track play counts, artist monthly listeners, and album metadata from Spotify watchlist URLs.

Monitor Spotify music metrics over time

Spotify Play Count Scraper is built for music marketers, labels, playlist analysts, and creator-economy teams that need a repeatable public-metric export.

Use it to:

  • Track public play counts for a watchlist of Spotify tracks.
  • Record public monthly-listener values for artists.
  • Save timestamps so exports can be compared across reporting periods.
  • Keep album identity and release metadata alongside a metric watchlist.

It works with public Spotify URLs. It does not access Spotify for Artists, listener accounts, user libraries, or private analytics.

Who is it for?

Music marketers can compare track momentum between campaign snapshots.

Record labels and managers can maintain an exportable artist and release watchlist.

Playlist analysts can collect public track identifiers and visible performance metrics for reporting workflows.

Creator-economy researchers can build timestamped datasets for public music-performance analysis.

Ready-to-run examples

Open a public example to inspect its input, run it, or reuse it as a task:

Start with a track watchlist

Paste public Spotify URLs and use a low maxItems value for a quick first export.

{
"trackUrls": [
"https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"
],
"artistUrls": [
"https://open.spotify.com/artist/0C0XlULifJtAgn6ZNCW2eu"
],
"maxItems": 10,
"includeRelatedTracks": false
}

Spotify monthly listeners scraper and artist metrics scraper

Track play-count monitoring

Add one or more trackUrls. Keep maxItems close to the number of watchlist URLs when you only need requested tracks.

{
"trackUrls": [
"https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"
],
"maxItems": 1
}

Artist monthly-listener monitoring

Add public artist URLs to return a timestamped monthly-listener metric when Spotify exposes one.

{
"artistUrls": [
"https://open.spotify.com/artist/0C0XlULifJtAgn6ZNCW2eu"
],
"maxItems": 1,
"failOnUnavailableMetric": false
}

Set includeRelatedTracks when you also want public track rows shown on a requested artist or album page.

{
"artistUrls": [
"https://open.spotify.com/artist/0C0XlULifJtAgn6ZNCW2eu"
],
"includeRelatedTracks": true,
"maxItems": 10
}

Example output

{
"entityType": "track",
"spotifyId": "3n3Ppam7vgaVa1iaRUc9Lp",
"url": "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp",
"name": "Mr. Brightside",
"artistNames": ["The Killers"],
"albumName": "Hot Fuss",
"playCount": 3427230508,
"monthlyListeners": null,
"releaseDate": "2004-06-15T00:00:00Z",
"snapshotAt": "2026-08-26T00:00:00.000Z",
"scrapedAt": "2026-08-26T00:00:00.000Z",
"metricAvailability": "available",
"sourceInput": "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp",
"isTarget": true
}

Input settings

InputDescription
trackUrlsPublic Spotify track URLs. Returns an exact public play count when Spotify exposes it.
artistUrlsPublic Spotify artist URLs. Returns public monthly listeners when exposed.
albumUrlsPublic Spotify album URLs. Returns album metadata; Spotify does not provide one aggregate album play count.
maxItemsMaximum rows to persist (1–1000; default 10).
includeRelatedTracksAdd public track rows exposed on requested artist or album pages.
failOnUnavailableMetricSkip a target rather than save its unavailable metric row; remaining targets continue.

Output fields

FieldDescription
entityType, spotifyId, url, nameSpotify entity identity and canonical URL.
artistNames, albumName, releaseDatePublic track, artist, or album metadata when applicable.
playCountPublic exact track play count; null when Spotify does not expose an applicable value.
monthlyListenersPublic artist monthly-listener metric; null for non-artist rows.
snapshotAt, scrapedAtISO timestamps for the metric capture.
metricAvailability, warningsExplicit availability state and any source limitation.
sourceInput, isTargetRequested input provenance and target-versus-related-track indicator.

Pricing and limits

This Actor charges once when a run starts and for each dataset row it successfully saves. Check the live Pricing tab for current rates.

maxItems is limited to 1,000 rows per run. A row is charged only after it is saved to the dataset.

Tips and limits

  • Use track URLs when exact track play counts are required.
  • Keep snapshotAt when comparing a metric across reporting periods.
  • Invalid Spotify URLs are ignored. If no valid URL remains, the run fails before browsing.
  • A public metric can change between runs.
  • Public pages may omit a metric. This Actor never substitutes a zero for an unavailable metric.
  • Album rows describe the album; Spotify does not expose one aggregate public album play count.

API Usage: Spotify play count API

Use the Apify API to run a saved or scheduled metric watchlist.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/spotify-play-count-scraper').call({
trackUrls: ['https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp'],
maxItems: 1,
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/spotify-play-count-scraper').call(run_input={
'trackUrls': ['https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp'],
'maxItems': 1,
})
print(run['defaultDatasetId'])

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~spotify-play-count-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"trackUrls":["https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"],"maxItems":1}'

MCP and agents

Connect an MCP-capable assistant to this Actor with:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/spotify-play-count-scraper"

Or add this server configuration to an MCP client:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/spotify-play-count-scraper"
}
}
}

Example prompts

  • “Run my Spotify track watchlist and return each play count with snapshotAt.”
  • “Compare this artist's monthly-listener snapshots from two datasets.”
  • “Export public metadata and exact counts for these Spotify track URLs.”

FAQ

What data can I export with spotify play count scraper? Public track play counts, artist monthly listeners when exposed, album metadata, canonical Spotify IDs, and timestamped availability states.

Can I run Spotify Play Count Scraper through an API, schedule, or MCP client? Yes. Use the Spotify play count API examples above, schedule a saved watchlist input in Apify, or connect through the MCP configuration in this README.

How much does it cost to use Spotify Play Count Scraper? It charges once when the run starts and once per saved dataset row. See the live Pricing tab for current rates.

Can it access Spotify for Artists or private listener data? No. It only returns public page data and does not accept Spotify credentials.

Why is playCount null for an album? Spotify exposes per-track counts, not one aggregate album count.

What happens when a public metric is unavailable? The row states its availability unless failOnUnavailableMetric tells the Actor to skip it; other valid targets continue.

Support

Open an issue from the Actor page with the public Spotify URL, run ID, and expected public field. Do not share credentials or private account information.