Spotify Charts Scraper: Top 200 Streams, Artists & Albums
Pricing
from $0.30 / 1,000 chart entries
Spotify Charts Scraper: Top 200 Streams, Artists & Albums
Spotify Charts by country: the Top 200 with daily streams, top artists and top albums, daily or weekly, plus weekly city charts. Rank change, peak and days on chart; optional play counts and genres.
Pricing
from $0.30 / 1,000 chart entries
Rating
0.0
(0)
Developer
Eduardo Airaudo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Spotify Charts Scraper
Spotify Charts as clean data: the Top 200 songs with their daily streams and the top artists of the world and 72 countries, and the top albums of the world and 52 of those countries, daily or weekly, plus weekly city charts. Every row is one chart entry with its rank, rank change, peak and days on chart. Run it once, schedule it as a daily chart feed, and export to JSON, CSV or Excel. No Spotify account and no API key.
Unofficial; not affiliated with Spotify. This Actor reads the rankings shown on Spotify Charts.
What does Spotify Charts Scraper do?
Spotify Charts Scraper exports three Spotify Charts for the markets you choose:
- Top 200 (
top200): the most-streamed songs of a day or a week, up to 200, each with the streams it got in that day or week (streams). - Top artists (
topArtists): the most-streamed artists, up to 200. - Top albums (
topAlbums): the most-streamed albums of the week, up to 200.
Smaller markets list fewer entries: on 30 October 2026 Luxembourg's Top 200 had 55 songs and its top artists chart 67 artists.
Every chart entry comes with its movement: the previous rank and the change since the previous chart, the peak position and when it was reached, when and at which rank it first entered, its status (new entry, re-entry, up, down, no change) and how many days or weeks it has spent on the chart. Songs and albums also carry their artists, label, release date, cover and Spotify link. On request, every Top 200 song gets its all-time play count and Spotify's genres, moods and tempo.
Spotify Top 200 with daily streams
The Top 200 ranks songs by streams, and that number is in every row: on 30 October 2026 the global number one, Housewife by Tate McRae, had 6,118,911 streams in one day. Ask for weekly and streams holds the week's total instead.
Pick global for the worldwide chart or any of the 72 countries below, and choose how deep to go with Max entries per chart (maxRowsPerChart): 200 for the whole chart, 50 for the top 50, 10 for the top 10. Each chart is one request, so the global and US Top 200 arrive in about two seconds.
Top artists and top albums
The top artists chart (topArtists) ranks artists by their streams of the day or week; Spotify Charts has it daily and weekly for the world and all 72 countries. The top albums chart (topAlbums) ranks albums by their weekly streams; Spotify Charts has it weekly only, so a daily run uses the latest weekly album chart and says so in its log, and only for the world and 52 of the 72 countries (the list follows the table below). Spotify gives no stream counts on these two charts, so streams is empty there, while every other column is filled in.
Countries, cities and weekly charts
Enter countries in Countries (countries) by code (US, gb) or by name (Brazil, México). These 72 countries have a Top 200 and a top artists chart:
| Country | Code | Country | Code | Country | Code |
|---|---|---|---|---|---|
| Argentina | AR | Honduras | HN | Paraguay | PY |
| Australia | AU | Hong Kong | HK | Peru | PE |
| Austria | AT | Hungary | HU | Philippines | PH |
| Belarus | BY | Iceland | IS | Poland | PL |
| Belgium | BE | India | IN | Portugal | PT |
| Bolivia | BO | Indonesia | ID | Romania | RO |
| Brazil | BR | Ireland | IE | Saudi Arabia | SA |
| Bulgaria | BG | Israel | IL | Singapore | SG |
| Canada | CA | Italy | IT | Slovakia | SK |
| Chile | CL | Japan | JP | South Africa | ZA |
| Colombia | CO | Kazakhstan | KZ | South Korea | KR |
| Costa Rica | CR | Latvia | LV | Spain | ES |
| Czech Republic | CZ | Lithuania | LT | Sweden | SE |
| Denmark | DK | Luxembourg | LU | Switzerland | CH |
| Dominican Republic | DO | Malaysia | MY | Taiwan | TW |
| Ecuador | EC | Mexico | MX | Thailand | TH |
| Egypt | EG | Morocco | MA | Turkey | TR |
| El Salvador | SV | Netherlands | NL | Ukraine | UA |
| Estonia | EE | New Zealand | NZ | United Arab Emirates | AE |
| Finland | FI | Nicaragua | NI | United Kingdom | GB |
| France | FR | Nigeria | NG | United States | US |
| Germany | DE | Norway | NO | Uruguay | UY |
| Greece | GR | Pakistan | PK | Venezuela | VE |
| Guatemala | GT | Panama | PA | Vietnam | VN |
Top albums exist for the world and every country above except these 20: Bolivia, Bulgaria, Costa Rica, Egypt, El Salvador, Estonia, Greece, Honduras, Iceland, Latvia, Lithuania, Luxembourg, Morocco, Nicaragua, Paraguay, Portugal, Saudi Arabia, South Korea, United Arab Emirates and Uruguay. Their top albums are reported in ERRORS without a request and never charged; their Top 200 and top artists are delivered as usual.
City charts. Spotify Charts also ranks the songs of selected cities every week, such as São Paulo, Mexico City, Los Angeles and Jakarta. Enter up to 20 in Cities (cities) by name. The Actor sends the name in lower case without spaces or accents (São Paulo → saopaulo, Mexico City → mexicocity), the form Spotify Charts uses for these four; if Spotify Charts knows a city by another name, enter that name. City charts list up to 100 songs, without stream counts, and come weekly whatever Period says. A city Spotify Charts does not chart is reported in ERRORS and never charged.
Weekly charts. Set Period (period) to weekly for the charts of a whole week. A weekly chart covers the seven days up to its date, which is always a Thursday.
Historical charts by date
Leave Chart date (date) empty for the latest charts, or pick a past day to get that day's charts (or, with weekly, that week's). Every row carries the chart's own date in date. When Spotify skipped the day you asked for, you get its nearest earlier chart, up to a week before, dated as such; a chart further away is not delivered and not charged.
How far back each chart goes:
| Chart | First chart |
|---|---|
| Top 200, daily | 1 January 2017 |
| Top 200, weekly | 29 December 2016 |
| Top albums (weekly) | 22 October 2020 |
| Top artists, daily and weekly | 21 October 2021 |
A date before a chart's first one is reported in ERRORS without a request and never charged. Some countries and the city charts start later; a date before their first chart is reported in ERRORS too.
To build a history, run the Actor once per date: a task with a different date per run, or one schedule that reads the latest chart every day.
Schedule a daily chart export
- Fill in your markets and charts and save the input as a task.
- Schedule the task daily in Apify (Spotify updates the daily charts once a day).
- Send every new dataset to Google Sheets, Slack, a webhook or your database with Apify integrations.
The latest daily chart is usually the one from two days before (on a Sunday morning the newest is Friday's), so a daily schedule always gets a new chart. If Spotify Charts stops updating a chart, the Actor refuses to deliver the stale one: a latest daily chart older than 10 days, or a weekly one older than 21 days, is reported in ERRORS and never charged.
Input
| Field | What it does | Default |
|---|---|---|
countries | Markets, one per line: global, a 2-letter country code or a country name. Each market is one chart per chart type. | global |
chartTypes | The charts to export for every market: top200, topArtists, topAlbums. | top200 |
period | daily or weekly. Top albums and city charts are always weekly. | daily |
maxRowsPerChart | Entries kept from the top of each chart, 1 to 200. | 200 |
cities | Cities for their weekly Top 200, one per line, up to 20. | empty |
date | A past chart date (YYYY-MM-DD); empty for the latest charts. | empty |
includePlayCounts | Adds each Top 200 song's all-time play count (playCount). | false |
includeGenres | Adds each Top 200 song's genres, moods and tempo. | false |
The form starts with the top 50 of the global and US Top 200; set Max entries per chart to 200 for the whole charts. Example input:
{"countries": ["global", "us", "Brazil", "MX"],"chartTypes": ["top200", "topArtists"],"period": "daily","maxRowsPerChart": 200,"cities": ["São Paulo"],"includePlayCounts": true}
Output
One row per chart entry, in rank order within each chart. The global Top 200 of 30 October 2026, number two, with both extras on:
{"chartType": "top200","country": "GLOBAL","city": null,"period": "daily","date": "2026-10-30","rank": 2,"previousRank": 2,"rankChange": 0,"peakRank": 1,"peakDate": "2026-08-27","entryRank": 189,"entryDate": "2026-08-12","entryStatus": "NO_CHANGE","appearancesOnChart": 80,"consecutiveAppearancesOnChart": 80,"streams": 5370997,"id": "3h5T5JypYU7huFiVYhv1dr","name": "BbY WOW","artists": ["KAROL G", "Judeline", "rusowsky"],"artistIds": ["790FomKkXshlbRYZFtlgla", "1H6X7yhnXZg73f9bssaj1Q", "1XEVu7gdRFfzEFqsPrancH"],"label": "Bichota/Interscope Records","releaseDate": "2026-08-07","imageUrl": "https://i.scdn.co/image/ab67616d00001e0221deb742375f88edfb2e7368","url": "https://open.spotify.com/track/3h5T5JypYU7huFiVYhv1dr","playCount": 409777638,"genres": ["reggaeton", "latin", "trap latino", "club"],"moods": ["happy", "pump up"],"tempo": 60,"scrapedAt": "2026-11-01T07:52:34.958Z"}
The song entered the global chart at number 189 on 12 August 2026, reached number one on 27 August and has now been on it 80 days in a row.
| Field | Meaning |
|---|---|
chartType | The chart: top200, topArtists or topAlbums. |
country, city | The market: GLOBAL or a country code; for a city chart the city instead. |
period, date | daily or weekly, and the chart's date (weekly charts are dated on a Thursday). |
rank | Position on the chart. |
previousRank, rankChange | Position on the previous chart and the places gained (negative: lost). Empty for new entries and re-entries. |
peakRank, peakDate | Best position ever reached on this chart, and when it was first reached. |
entryRank, entryDate | Position and date of the first appearance on this chart. |
entryStatus | NEW_ENTRY, RE_ENTRY, MOVED_UP, MOVED_DOWN or NO_CHANGE. |
appearancesOnChart, consecutiveAppearancesOnChart | Days (daily charts) or weeks (weekly charts) on the chart in total, and in a row. |
streams | Streams in the chart's day or week (Top 200 country and global charts). |
id, name, url, imageUrl | The song, artist or album: Spotify ID, name, Spotify link and cover or picture. |
artists, artistIds | Credited artists of a song or album, and their Spotify IDs. |
label, releaseDate | Record label and release date of a song or album. |
playCount | With includePlayCounts: the song's all-time Spotify play count (empty when it did not arrive). |
genres, moods, tempo | With includeGenres: Spotify's genre and mood descriptors of the song, strongest first, and its tempo in BPM (empty when they did not arrive). |
scrapedAt | When the chart was read. |
The Output tab has three views: Charts (rank, song, streams and movement), Rank movement (where every entry came from) and Play counts and genres (the extras). The CSV link leaves out the artistIds lists.
How much does it cost to scrape Spotify charts?
You pay per chart entry delivered. Your price follows your Apify plan:
| Apify plan | Per chart entry | Per 1,000 chart entries |
|---|---|---|
| Free | $0.0005 | $0.50 |
| Bronze | $0.00045 | $0.45 |
| Silver | $0.0004 | $0.40 |
| Gold, Platinum and Diamond | $0.0003 | $0.30 |
Each run also has Apify's start fee of $0.00005 (5 thousandths of a cent), and Apify covers the first 5 seconds of every run's compute. Play counts and genres cost nothing extra. There is no monthly rental and no charge for platform usage.
| Example (Free plan) | Chart entries | Cost |
|---|---|---|
| The prefilled run: top 50 of the global and US Top 200 | 100 | $0.05 + $0.00005 start |
| The global Top 200 every day for 30 days | 6,000 | $3.00 |
| The Top 200 of every market once (global and 72 countries) | up to 14,600 | up to $7.30 ($4.38 on Gold) |
| The top 10 of every market every day for 30 days | 21,900 | $10.95 |
Never charged: charts Spotify has not published, outdated charts, unknown countries and cities, dates before a chart's history, and repeated inputs. Set a maximum cost per run and the Actor stops at that amount without going over.
FAQ
When are Spotify charts updated?
Daily charts once a day, each covering one day; the newest is usually two days old. Weekly charts cover the seven days up to a Thursday and appear a day or two after it. Top albums are weekly only, and so are city charts.
Which countries does Spotify Charts cover?
The world (global) and the 72 countries in the table above have a Top 200 and a top artists chart; the world and 52 of those countries also have top albums. Other countries have no chart on Spotify Charts; a code or name outside the list is reported in ERRORS and never charged.
Can I get the Viral 50?
No. This Actor does not offer the viral charts: it could not read current ones reliably when it was published. It offers the Top 200, the top artists and the top albums, which are updated every day or week.
Why is streams empty?
Spotify publishes stream counts only on the Top 200 of a country or of the world. City charts, the top artists and the top albums rank by streams without showing them.
Why are previousRank and rankChange empty?
The entry was not on the previous chart: it is a new entry (NEW_ENTRY) or came back (RE_ENTRY).
What does a playCount of 0 mean?
Fewer than 1,000 plays: Spotify shows 0 until a song passes 1,000 plays. Songs on a chart are almost always far past that, so expect large numbers here.
Why are playCount or genres empty?
Each song's play count, genres, moods and tempo are looked up while the chart is read. A song Spotify had none for this time gets an empty field (RUN_SUMMARY counts them in entriesWithoutPlayCount). When they do not arrive for a whole chart, the Actor asks for that chart again about 15 seconds later; if they still do not arrive, it delivers the chart without them and says so in the run's status and in RUN_SUMMARY (chartsWithoutExtras and warnings). Play counts and genres cost nothing extra either way.
What happens when Spotify has not published a chart yet?
You get the latest chart Spotify has, with its own date in date. A chart that has stopped updating (a daily chart more than 10 days old, a weekly one more than 21) is not delivered and not charged, and the run says why in ERRORS.
Do I need a Spotify account or API key?
No. You only need an Apify account. Spotify's own Web API has no charts at all.
Is it legal to scrape Spotify charts?
Spotify Charts rankings are aggregate figures: ranks and stream counts of songs, artists and albums, with no personal data. Check that your use of the data complies with Spotify's terms and the laws that apply to you.
Use it from the Apify API or MCP
Start a run, wait for it and get the chart entries in one call (synchronous calls wait up to 5 minutes):
curl -X POST "https://api.apify.com/v2/acts/eduair94~spotify-charts-scraper/run-sync-get-dataset-items?maxTotalChargeUsd=1" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"countries": ["global", "us"], "chartTypes": ["top200"], "maxRowsPerChart": 10}'
JavaScript, with the apify-client package:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('eduair94/spotify-charts-scraper').call({countries: ['global', 'GB'],chartTypes: ['top200', 'topArtists'],period: 'weekly',});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const entry of items) console.log(entry.country, entry.rank, entry.name, entry.streams);
Python, with the apify-client package:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("eduair94/spotify-charts-scraper").call(run_input={"countries": ["BR", "MX"], "cities": ["São Paulo"], "includeGenres": True})for entry in client.dataset(run["defaultDatasetId"]).iterate_items():print(entry["date"], entry["rank"], entry["name"], entry.get("genres"))
AI agents can call it too: add the Actor to Apify's MCP server and ask for a country's Spotify Top 200 in plain language.
Use cases
- Label and artist marketing: daily chart positions and streams of your releases in every market, straight into a dashboard or a Slack channel.
- Chart tracking and reporting: a dated, ready-to-chart history of the Top 200, top artists and top albums for weekly reports.
- Music journalism: new entries, record streams and long chart runs by country, with the numbers to back the story.
- A&R and trend scouting: songs climbing city and country charts before they break globally, with their genres and moods.
- Market research: compare what each country streams, or how a genre performs across markets.
Related Spotify scrapers
- Spotify Scraper: Play Counts, Monthly Listeners & Playlists: tracks, albums, artists, playlists, lyrics and podcasts by link or keyword, with play counts on every track.
- Spotify Play Count Scraper: stream counts for every track of an album, a playlist or an artist's whole discography.
- Spotify Monthly Listeners Scraper: monthly listeners, followers, world rank and top cities, 50 artists per request.
- Spotify Playlist Scraper: whole playlists with every track's play count, priced per playlist, with change tracking.
- Spotify Artist Scraper: full artist profiles with biography, social links, top tracks and related artists.