Spotify Play Count Scraper avatar

Spotify Play Count Scraper

Pricing

from $2.00 / 1,000 track play counts

Go to Apify Store
Spotify Play Count Scraper

Spotify Play Count Scraper

Scrape Spotify play counts (stream counts) for every track on any track, album, playlist, or artist. One flat row per track. HTTP-only, no API key.

Pricing

from $2.00 / 1,000 track play counts

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Get the play count (stream count) of every track on any Spotify track, album, playlist, or artist — as one flat row per track. Paste a URL, URI, or bare ID and the actor auto-detects the type, expands albums and playlists track-by-track, and returns a clean table you can drop straight into a spreadsheet, royalty model, or chart tracker. HTTP-only, no login, no API key.

What you get

One row per track, every row carrying its play count:

FieldExampleNotes
trackNameNever Gonna Give You Up
playcount1605446789The stream count (integer)
playcountFormatted1,605,446,789Human-readable
artistNamesRick AstleyComma-joined; artists[] also provided
albumName / albumId / albumUrlWhenever You Need Somebody
trackUrl / trackUri / trackIdhttps://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT
durationMs / durationText213573 / 3:34
explicit / trackNumber / discNumberfalse / 1 / 1
releaseDate1987-11-12T00:00:00Z
sourceType / sourceId / sourceName / sourceUrlalbum / …Which input the row came from
dataSource / scrapedAtpartner / ISO 8601

When to use it

  • Royalty / revenue modelling — pull every track's streams for an album or catalog and multiply by your per-stream rate.
  • Chart & A&R tracking — snapshot play counts for a playlist or an artist's top tracks over time.
  • Competitive research — compare stream counts across releases.
  • Agent / MCP workflows — a narrow tool: items in, flat play-count rows out.

Not for podcasts or episodes (they have no play count), monthly-listener / world-rank / top-cities data, or audio downloads. For the full entity picture (artists, podcasts, search, monthly listeners), use the companion Spotify Scraper — All-in-One.

Input

FieldRequiredDefaultDescription
spotifyUrlsList of track / album / playlist / artist URLs, spotify: URIs, or bare 22-char IDs (mixed freely).
defaultTypetrackHow to interpret bare IDs with no type prefix (track/album/playlist/artist).
maxResults1000Hard cap on total track rows charged + returned. Also caps cost.
proxyConfigurationApify datacenter (US)Datacenter US works for Spotify's Partner API. Switch to residential only if you hit rate limits.

Example input

{
"spotifyUrls": [
"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT",
"https://open.spotify.com/album/4aawyAB9vmqN3uQ7FjRGTy",
"spotify:playlist:37i9dQZF1DXcBWIGoYBM5M"
],
"maxResults": 500
}

How each input type expands

InputRows returned
Track1 row
Albumone row per track (fully paginated)
Playlistone row per track (episodes skipped; fully paginated)
Artistthe artist's top tracks (≈10)

Pricing — Pay Per Event

EventPrice
Actor start$0.00005
Track play count (per track row)$0.002

A 12-track album ≈ $0.024. A 500-track playlist ≈ $1.00. maxResults caps the worst case. Pay-Per-Usage (compute + proxy) is also available — pick at run time.

Usage examples

Apify API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~spotify-play-count-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "spotifyUrls": ["https://open.spotify.com/album/4aawyAB9vmqN3uQ7FjRGTy"], "maxResults": 200 }'

JavaScript (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('khadinakbar/spotify-play-count-scraper').call({
spotifyUrls: ['spotify:artist:0gxyHStUsqpMadRV0Di1Qt'],
defaultType: 'artist',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((t) => `${t.trackName}: ${t.playcountFormatted}`));

MCP (AI agents)

Exposed as apify--spotify-play-count-scraper via the Apify MCP server. Feed a Spotify URL/ID, get back per-track play counts as structured JSON.

How it works

Spotify exposes per-track play counts through its internal Partner API (the same data the web player shows). This actor obtains a short-lived web-player token by extracting the current TOTP secret live from Spotify's own JavaScript bundle — so it self-heals when Spotify rotates the secret or the GraphQL operation hashes. All over plain HTTP through a residential proxy; no browser, no login, no cookies.

Reliability notes

  • Datacenter (US) proxy works. The Spotify Partner API tolerates Apify datacenter IPs; residential is optional for heavier jobs.
  • Honest failure. If Spotify is unreachable (block/auth), the run fails clearly instead of silently returning an empty dataset.
  • Play counts can be null for a small number of tracks Spotify itself doesn't expose a count for; those rows are still returned with playcountAvailable: false.

Use this actor only for data you are authorized to access and in compliance with Spotify's Terms of Service and applicable law. It collects publicly visible information and performs no login or authentication bypass. You are responsible for how you use the data. Not affiliated with or endorsed by Spotify.