Spotify Scraper - Artists, Playlists & Tracks avatar

Spotify Scraper - Artists, Playlists & Tracks

Pricing

from $1.50 / 1,000 dataset items

Go to Apify Store
Spotify Scraper - Artists, Playlists & Tracks

Spotify Scraper - Artists, Playlists & Tracks

Scrape public Spotify artists, tracks, albums, playlists and podcasts. Get available listener and play counts, discover artists and track playlist or catalog changes. Export JSON or CSV and schedule repeat runs.

Pricing

from $1.50 / 1,000 dataset items

Rating

0.0

(0)

Developer

Fetch Finch

Fetch Finch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Explore Spotify catalogs. Track changes. Map playlist connections.

No Spotify API key required Pay per event Export Public tasks Monitoring and graph analysis

Collect public Spotify artist, track, album, playlist, and podcast data in a structured Apify Dataset. Use one-off snapshots for catalog research, or build repeatable monitoring workflows that surface artist and playlist changes.

Monitoring and playlist graph analysis make this more than a one-time catalog export: compare snapshots over time, identify playlist additions and ranking moves, and explore relationships between playlists, tracks, artists, and albums.

Provide Spotify URLs, URIs, IDs, or search queries. Export results as JSON, CSV, or Excel, or connect runs to the Apify API, schedules, webhooks, and other integrations.

Pricing

  • Actor start: $0.005 at the default 256 MB memory setting.
  • Default Dataset output: $0.0015 per row.
  • Platform usage during the run is included; it is not added as a separate per-run usage charge. Larger memory settings can increase the start-event charge.

Example costs at the default memory setting:

Example runBilled default-Dataset rowsApprox. event cost
One artist snapshot1$0.0065
One playlist snapshot1$0.0065
Representative playlist graph run308$0.467

The graph example reflects a previously tested run, not a fixed price. Graph row counts vary with the playlist contents and graph limits. Each default Dataset row is billed the same way, regardless of record type:

  • A playlist or artist snapshot is one row, even when its record contains nested tracks or releases.
  • A playlist_analysis record is one row.
  • Every graph node and edge is one row.
  • Every emitted change record is one row.
  • In monitor mode, each snapshot written to the default Dataset is one row too. With onlyChanges: true, snapshots are omitted from the default Dataset and only emitted changes are billed as rows. The separate named history Dataset can still receive snapshots and changes; those copies do not trigger the default-Dataset-item event.

So a graph run with one playlist row, one analysis row, and 306 node/edge rows has 308 billed rows: $0.005 + (308 × $0.0015) = $0.467. Dataset/API reads after a run may incur standard Apify platform charges.

What you can do

  • Collect artist profiles, listener and follower metrics, releases, top tracks, and related artists.
  • Collect track metadata, play counts, artist references, albums, release dates, durations, previews, and identifiers.
  • Collect album and playlist metadata with their visible track listings.
  • Collect podcast show and episode metadata, including descriptions, publishers, release dates, durations, and show relationships.
  • Monitor catalog entities over time and receive compact change events.
  • Analyze playlist composition and export a graph of playlists, tracks, artists, and albums.
  • Search for artists and rank enriched results for discovery and A&R research.

Run modes

Snapshot

The default mode returns the current records for your targets and searches.

Monitor changes

Set mode to monitor to compare each successful fetch with its previous successful snapshot. The first run emits first_seen events. Later runs emit updated events with changed field paths, playlist additions/removals/position changes, and numeric metric deltas where available.

{
"mode": "monitor",
"stateStoreName": "my-artist-monitor",
"historyDatasetName": "my-artist-history",
"onlyChanges": true,
"targets": [
"https://open.spotify.com/artist/0gxyHStUsqpMadRV0Di1Qt"
]
}

Use onlyChanges for compact alert or webhook payloads. Use changePreset to keep all changes, playlist changes, or metric changes. ignoredFields and metricThresholdPercent help reduce noisy alerts.

For recurring monitoring, create an Apify Schedule using the same input and keep the stateStoreName and historyDatasetName values stable between runs. Attach an Apify Webhook to send new run or dataset events to your application.

Playlist intelligence

Set mode to playlist_intelligence to return the playlist record, composition metrics, and a bounded graph of related playlists, tracks, artists, and albums. Set maxGraphNodes to control output size.

{
"mode": "playlist_intelligence",
"maxTracks": 100,
"maxGraphNodes": 500,
"targets": [
"https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"
]
}

Artist discovery

Set mode to discover to search the artist catalog, enrich the matching artists, rank them, and optionally filter by listeners, followers, or release count.

{
"mode": "discover",
"searchQueries": ["indie electronic"],
"searchTypes": ["artist"],
"enrichSearchResults": true,
"rankBy": "monthly_listeners",
"minMonthlyListeners": 10000,
"maxItems": 25
}

Input

Targets can be Spotify URLs or typed Spotify URIs. A raw 22-character Spotify ID requires an explicit targetType because the ID itself does not identify whether it belongs to an artist, track, album, playlist, show, or episode.

{
"targets": [
"https://open.spotify.com/artist/0gxyHStUsqpMadRV0Di1Qt",
"spotify:track:4uLU6hMCjMI75M1A2tKUQC"
],
"searchQueries": ["daft punk"],
"searchTypes": ["artist", "track"],
"enrichSearchResults": false,
"maxSearchResults": 20,
"maxTracks": 100,
"maxEpisodes": 50,
"maxItems": 100
}

Search results are sparse by default. Set enrichSearchResults to fetch full records for each matching entity. Use maxItems, maxTracks, and maxEpisodes to keep runs bounded and predictable.

Output

Every dataset row includes a consistent envelope such as record_type, id, uri, url, status, and scraped_at, together with the available fields for that entity.

Depending on the mode, the dataset can also contain:

  • change rows with change_type, changed_fields, playlist_changes, and metric_deltas.
  • analysis rows with playlist composition metrics such as unique artists, duplicate tracks, concentration, and diversity.
  • node and edge rows for graph analysis.
  • Discovery fields such as discovery_rank, ranked_by, and release counts.

Successful monitor snapshots and change events are also appended to the named history Dataset. The latest run summary is available in the run's default Key-Value Store under the OUTPUT key.

Preconfigured Tasks

The Actor includes ready-to-run examples for catalog lookup, track performance, artist and album research, podcast lookup, playlist intelligence, graph analysis, artist discovery, growth monitoring, playlist change monitoring, low-noise alerts, and historical archiving. Open the Actor's Tasks tab to run one of these workflows or save your own configuration.

Integrations

Use the standard Apify API, Dataset exports, Schedules, Webhooks, Make, Zapier, Slack, Google Sheets, or your own application. The Actor is designed so a single run can be used as a one-time export, a recurring monitor, or an input to another workflow.

Data scope

The Actor returns publicly available Spotify catalog metadata. Private account data, listening history, and private playlists are not included.

Support

If a run produces unexpected results, include the Apify run ID, sanitized input, one reproducible public Spotify URL, and the expected versus actual output when reporting the issue.