Guide
Spotify scraper on Apify: play counts, charts, lyrics and credits as a scheduled run
The same data this API serves over REST is also packaged as an Apify actor: you give it a category and a list of ids, URLs or keywords, it writes the results to a dataset you can download as JSON or CSV, and it bills per result item rather than per month. No API key, no server, and a scheduler built in. This page covers what it extracts, what a run costs, and when a key is the better tool.
By Eduardo Airaudo, maintainer of the API and the actor · Updated 15 September 2026
What a run returns
The actor lists 51 categories in three modes. The ones people schedule most, grouped:
Play counts
track_play_count · album_play_counts · artist_play_counts
Per-track, per-album and per-artist play totals — not available as a REST endpoint.
Tracks and albums
track · track_credits · track_lyrics · album · album_tracks
Metadata, writers and producers, line-synced lyrics.
Artists
artist · artist_overview · artist_albums · artist_concerts
Overview with monthly listeners and top cities, discography, upcoming concerts.
Charts
chart_top_200_tracks · chart_viral_tracks · chart_top_artists
Daily charts by country; chartDate selects a past day.
Search
search_tracks · search_artists · search_multi · search_lyrics
Keyword queries; maxResultsPerQuery caps each one.
Playlists and users
playlist · user_profile · recommendations
Playlist contents, public profiles, seeded recommendations.
Play counts are the one thing the actor has that the REST API does not expose as its own endpoint: per-track, per-album and per-artist play totals, as shown on Spotify's own pages.
The input
A run is one JSON object. category and queries are required; mode is inferred from the category when omitted. Ids, full URLs and spotify: URIs are all accepted in queries, and for search categories the entries are keywords.
| { |
| "mode": "get", |
| "category": "track_credits", |
| "queries": [ |
| "7qiZfU4dY1lWllzX7mPBI3", |
| "https://open.spotify.com/track/42UBPzRMh5yyz0EDPr6fr1" |
| ], |
| "maxResultsPerQuery": 50, |
| "market": "US" |
| } |
- category
- One of the 51 categories; required.
- queries
- Ids, open.spotify.com URLs, spotify: URIs, or keywords for search categories; required.
- mode
- get, search or chart. Inferred from the category when left out.
- maxResultsPerQuery
- 1 to 1,000 results per query; default 50.
- market
- ISO country code for market-dependent data; default US.
- chartDate
- YYYY-MM-DD for a past chart; latest when omitted.
- lyricsLanguage
- ISO 639-1 code for lyric translations where available.
- concurrency, delayMs
- Parallelism (1–20) and a pause between requests, for gentle runs.
- includeRaw
- Attach the full upstream JSON next to the flattened row.
What a run costs
The actor is priced per event, as listed on its Apify page on 15 September 2026: $0.0002 per result item ($0.20 per 1,000), rising to $0.001 per result item ($1.00 per 1,000) from 28 September 2026, with a separate $0.0003 per single-entity fetch in bulk mode. There is no monthly rental, and failed queries are not charged. Apify's own platform credits — including the free monthly allowance on a new account — pay for it.
That pricing model inverts the API's. A key is cheapest when calls are steady and interactive; a run is cheapest when the work is a batch — a weekly chart pull, a catalogue export, a one-off backfill — because you pay for the rows you get and nothing while idle.
Actor or API key?
Run the actor when
- The job runs on a schedule: a weekly chart pull, a nightly catalogue refresh
- The output is a file — CSV for a spreadsheet, JSON for a warehouse load
- There is no server to hold a key; the run is the whole integration
- Downstream steps live in Zapier, Make or another Apify actor
- Volume is bursty and idle time should cost nothing
Get a key when
- A user is waiting: search-as-you-type, a lookup on page load
- The call is one of many inside your own backend
- You need a per-second rate you can plan around (5 or 10 req/s per key)
- Endpoint-level control matters — batch lookups, ISRC and UPC resolution, webhooks
- Requests are steady enough that a monthly quota is cheaper than per-row billing
Both read the same public catalogue, chart and lyric data. How you use the output is governed by Spotify's terms and Apify's terms, the same as for any other source.
Questions
Is this a Spotify scraper or an API?
Both exist. The Apify actor packages the same data source as a scheduled run that writes to a dataset; the REST API answers HTTP calls with a key. This site documents the API; the actor page on Apify documents the actor.
Do I need a Spotify account or API key to run it?
No. An Apify account is enough; the actor needs no Spotify credentials and no key from this site. Apify's platform credits pay for the run.
What does it cost?
Per result item: $0.0002 ($0.20 per 1,000) as listed on 15 September 2026, $0.001 from 28 September 2026, plus $0.0003 per single-entity fetch in bulk mode. No monthly fee; failed queries are not charged. The Apify listing is the authority if the numbers change.
Can it get play counts?
Yes — track_play_count, album_play_counts and artist_play_counts are actor categories. Play counts are not exposed as a REST endpoint on this API.
How do I get the results?
Every run writes to an Apify dataset. Download it as JSON, CSV or Excel from the console, fetch it with the Apify API or SDK, or point a webhook at the run's finish event.
Can I run it on a schedule?
Yes. Apify's scheduler runs any actor on a cron expression; pair it with a webhook or a dataset export to push each run's rows wherever they go.
Is the data the same as the API's?
It comes from the same source, so a track's credits or an artist's overview match what the corresponding REST endpoint returns. The actor adds play-count categories the API does not have; the API adds endpoints the actor does not wrap, such as ISRC and UPC lookups and webhooks.
Sources
- Spotify Scraper on Apify — the actor listing: categories, pricing and run statistics as currently published.
- Actor input schema — every input field with its type, default and allowed values.
- Apify pay-per-event pricing — how per-result billing and platform credits work.
More guides
- Spotify Web API alternativeEndpoint-by-endpoint mapping from the official API, including everything Spotify removed on 27 November 2024.
- Spotify API without OAuthOne header instead of the client-credentials flow — and the things a key genuinely cannot do.
- Spotify lyrics APIWhy the Web API has no lyrics endpoint, and how to get line-synced lyrics as JSON, LRC or SRT.
- Spotify charts APIDaily Top 200 and viral charts as JSON: rank movement, stream counts, credits, and how to backfill.
- Spotify monthly listeners APIMonthly listeners, follower counts, world rank and top cities per artist — numbers the Web API never returned.
- Spotify audio features API after the 2024 deprecationTempo, energy, danceability, recommendations and related artists after Spotify removed them for new apps.
- Spotify API rate limitsThe official 30-second rolling window, what each plan here allows per second and per month, and how to stay under it.
Start a run, or get a key
The actor needs an Apify account and nothing else. The key routes give you the same data as a REST call from your own code.