# Spotify Play Count Scraper: Streams, Listeners, Credits, Labels (`vero-api/spotify-play-count-scraper`) Actor

Get exact Spotify play counts for any track, album, or artist — plus monthly listeners, followers, world rank, top cities, full discographies, song credits, and whole label catalogs. Search by name or paste links. Export to JSON, CSV, or Excel.

- **URL**: https://apify.com/vero-api/spotify-play-count-scraper.md
- **Developed by:** [VeroAPIs](https://apify.com/vero-api) (community)
- **Categories:** Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 spotify results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Spotify Play Count Scraper: Streams, Listeners, Credits, Labels

Get the exact play count of any Spotify track: the same number Spotify shows in its app. Paste links or just type names, and get play counts, monthly listeners, followers, world rank, top cities, song credits, and whole label catalogs in seconds.

### What you can do

- **Get exact play counts** for a single track, every track on an album, or an artist's top 10.
- **Search by name**: no links needed. Type `Arctic Monkeys` or `Blinding Lights` and get the best matches.
- **Pull a whole discography** from one artist: every album, single, EP, and compilation, with play counts for every track.
- **Get a label's catalog**: type a record label like `Domino Recording Co` and get play counts for up to 1,000 of its releases.
- **Focus on what matters**: keep only releases from a date range, or only tracks above a play count.
- **See who made each song**: songwriters, producers, and engineers for every track.
- **Track artist reach**: monthly listeners, followers, world rank, and the top 5 cities by listeners.
- **Map an artist's world**: similar artists, the playlists where fans discover them, releases they appear on, upcoming concerts, and music videos.
- **Follow growth over time**: schedule a daily run and watch the counts climb.
- **Add 30-second preview links** to every track.
- **Download one tidy play-count sheet**: one row per track (artist, album, track, plays), ready for Excel or Google Sheets.

### How to use it

1. Paste Spotify links (artists, albums, or tracks, in any mix), type names to search for, or add record labels.
2. For artists, switch on **Include all albums** (and singles, compilations, or popular releases) to get their full catalog.
3. Optionally narrow it down by release date or minimum play count, and add preview links or song credits.
4. Click **Start**.
5. Download your results as JSON, CSV, or Excel, or open the play-count sheet from the Output tab.

Links copied from the Spotify app or website both work.

### What you get

One result per artist, album, or track. A track looks like this:

```json
{
  "_url": "https://open.spotify.com/track/2x8evxqUlF0eRabbW2JBJd",
  "_type": "track",
  "id": "2x8evxqUlF0eRabbW2JBJd",
  "name": "Fluorescent Adolescent",
  "url": "https://open.spotify.com/track/2x8evxqUlF0eRabbW2JBJd",
  "streamCount": 1246171755,
  "duration": 183893,
  "contentRating": "none",
  "trackNumber": 5,
  "artists": [{ "id": "7Ln80lUS6He07XvHI8qqHH", "name": "Arctic Monkeys", "url": "https://open.spotify.com/artist/7Ln80lUS6He07XvHI8qqHH" }],
  "playable": true,
  "album": { "id": "1XkGORuUX2QGOEIL4EbJKm", "name": "Favourite Worst Nightmare", "type": "album", "releaseDate": "2007-04-22", "totalTracks": 12 }
}
```

- **Albums** add every track with its play count, the album's total plays, label, copyright, release date, artists, and cover art.
- **Artists** add monthly listeners, followers, world rank, top cities, top 10 tracks with play counts, every album, single, and compilation, biography, and social links. You also get "Fans also like" artists, "Discovered on" playlists, releases they appear on, upcoming concerts, music videos, the artist's pick, their own playlists, banner, and photo gallery.

The play-count sheet has one row per track:

| artist_name | album_name | track_name | play_count |
|---|---|---|---|
| Arctic Monkeys | Favourite Worst Nightmare | Brianstorm | 325608912 |
| Arctic Monkeys | Favourite Worst Nightmare | Teddy Picker | 335872590 |
| Arctic Monkeys | Favourite Worst Nightmare | Fluorescent Adolescent | 1246171755 |

### Use it from your AI assistant (MCP)

Ask Claude, Cursor, VS Code, or any other assistant that supports MCP for Spotify play counts in plain words. It runs this actor for you and reads back the results.

Add this server to your assistant's MCP settings:

```json
{
  "mcpServers": {
    "spotify-play-counts": {
      "url": "https://mcp.apify.com?tools=vero-api/spotify-play-count-scraper"
    }
  }
}
```

The first time it connects, your browser opens so you can sign in to Apify and approve access. No token to copy. Prefer a token? Add `"headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }` next to the `url`; you'll find the token under **Settings → API & Integrations** in Apify Console.

Other ways to set it up:

- **MCP configurator**: pick this actor at [mcp.apify.com](https://mcp.apify.com) and copy the ready-made setup for your assistant.
- **Apify CLI**: after `apify login`, run `apify mcp install cursor --tools vero-api/spotify-play-count-scraper`. Swap `cursor` for `claude-code`, `vscode`, `codex`, `kiro`, or `antigravity`.

Then just ask, for example:

- *"How many plays does every track on Arctic Monkeys' AM have?"*
- *"Compare the monthly listeners of The Weeknd and Dua Lipa."*
- *"List Domino Recording Co's releases from 2022 with their total plays."*
- *"Who produced Blinding Lights?"*

Runs through your assistant are priced exactly like runs in Apify Console.

### Pricing

You pay only for the results you get: one result per artist, album, or track. An album with 100 tracks costs the same as a single track. Each release you get from a discography, label, or search counts as one result.

### FAQ

**Can't I get play counts from Spotify's developer API?** No. It only offers a 0–100 popularity score. This actor gives you the exact play counts Spotify shows in its app.

**Do I need a Spotify account or API key?** No. Just paste links or type names.

**Which label name should I use?** The one Spotify shows under an album, like `Domino Recording Co`. Releases the label put out together with another label are included too.

**How big can a run be?** As big as you like. One artist with every album switched on returns their whole catalog: Mozart's 500+ albums and 11,000 tracks come back in about a minute.

**How fresh are the numbers?** They're the live counts Spotify shows at the moment of your run.

# Actor input Schema

## `urls` (type: `array`):

Paste Spotify artist, album, or track links — mix them freely. For example <code>https://open.spotify.com/album/1XkGORuUX2QGOEIL4EbJKm</code>. Each link gives you one result.

## `searchTerms` (type: `array`):

No link handy? Type names instead, like <code>Arctic Monkeys</code> or <code>Blinding Lights</code>. Each name gives you its best matches.

## `searchType` (type: `string`):

What your search names are: artists, albums, or tracks.

## `maxSearchResults` (type: `integer`):

How many matches you want for each name. Keep it at 1 for just the best match.

## `labels` (type: `array`):

Get play counts for a label's releases, like <code>Domino Recording Co</code>. Use the label name exactly as Spotify shows it under an album.

## `maxReleasesPerLabel` (type: `integer`):

How many releases you want from each label, up to 1,000.

## `followAlbums` (type: `boolean`):

For artists, also get play counts for every track on every album the artist released.

## `followSingles` (type: `boolean`):

For artists, also get play counts for every single and EP.

## `followCompilations` (type: `boolean`):

For artists, also get play counts for every compilation.

## `followPopularReleases` (type: `boolean`):

For artists, also get play counts for the releases Spotify shows as the artist's most popular.

## `releasedAfter` (type: `string`):

Only get releases from this date on. Applies to releases from artist discographies and labels.

## `releasedBefore` (type: `string`):

Only get releases up to this date. Applies to releases from artist discographies and labels.

## `minPlayCount` (type: `integer`):

Only list tracks with at least this many plays in track lists and the play-count sheet. Leave at 0 to keep every track.

## `includePreviewUrls` (type: `boolean`):

Add a link to each track's 30-second audio preview, next to its play count.

## `includeCredits` (type: `boolean`):

Add each track's songwriters, producers, and other credits. Takes a little longer for big albums.

## Actor input object example

```json
{
  "urls": [
    "https://open.spotify.com/album/1XkGORuUX2QGOEIL4EbJKm"
  ],
  "searchType": "artist",
  "maxSearchResults": 1,
  "maxReleasesPerLabel": 100,
  "followAlbums": false,
  "followSingles": false,
  "followCompilations": false,
  "followPopularReleases": false,
  "minPlayCount": 0,
  "includePreviewUrls": false,
  "includeCredits": false
}
```

# Actor output Schema

## `results` (type: `string`):

One result per artist, album, or track, with play counts and stats.

## `playCountsCsv` (type: `string`):

One row per track: artist, album, track, and play count — ready for Excel or Google Sheets.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://open.spotify.com/album/1XkGORuUX2QGOEIL4EbJKm"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("vero-api/spotify-play-count-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": ["https://open.spotify.com/album/1XkGORuUX2QGOEIL4EbJKm"] }

# Run the Actor and wait for it to finish
run = client.actor("vero-api/spotify-play-count-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://open.spotify.com/album/1XkGORuUX2QGOEIL4EbJKm"
  ]
}' |
apify call vero-api/spotify-play-count-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vero-api/spotify-play-count-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/l3m7VBTBJjact9PFU/builds/XSRDKygh4HliIDtRM/openapi.json
