Spotify Public Weekly Charts Scraper
Pricing
Pay per event
Spotify Public Weekly Charts Scraper
Export Spotify's current global weekly Top Songs, Top Albums, and Top Artists rankings with movement, entities, artists, and artwork.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Export Spotify's current global weekly Top Songs, Top Albums, and Top Artists as clean, ranked dataset records.
This Actor reads Spotify's public charts service directly, so it needs no Spotify login, developer token, browser, or proxy. Schedule it every week to build rank history, catch breakouts, track catalog momentum, and feed music-intelligence workflows.
- 🎵 Get official current weekly song rankings
- 💿 Compare album movement and chart longevity
- 🎤 Monitor the artists leading global listening
- 📈 Capture previous rank, peak rank, status, and appearance counters
- 🔗 Export Spotify URIs, web links, credits, and artwork
What does Spotify Public Weekly Charts Scraper do?
The Actor makes one request to Spotify's anonymous public weekly charts endpoint and converts its nested response into one record per ranked entity.
Choose any combination of:
- Top Songs — Global
- Top Albums — Global
- Top Artists — Global
Each run captures the chart date and current ranking snapshot. Use Apify schedules to run it weekly and append snapshots to your own warehouse, spreadsheet, dashboard, or alerting pipeline.
The v1 product intentionally focuses on the reliable anonymous surface. It does not claim to provide authenticated daily, country-specific, or historical Spotify charts.
Who is this Spotify charts scraper for?
Record labels and A&R teams
Track which songs, albums, and artists enter or climb the global charts. Compare weekly snapshots to prioritize fast-moving releases.
Artist managers
Monitor an artist's current position, movement, consecutive appearances, and related album or track momentum without copying chart tables by hand.
Music analysts and researchers
Build a reproducible weekly panel from structured records with stable fields, timestamps, Spotify identifiers, and chart metadata.
Playlist and market-intelligence teams
Feed current chart leaders into playlist research, trend scoring, catalog analysis, or competitive reports.
Data engineers
Schedule a lightweight HTTP Actor and export JSON, CSV, Excel, XML, or RSS through Apify's dataset APIs.
Why use this Actor?
- ✅ Official public data surface — reads Spotify's public charts service.
- ✅ No account or API key — no Spotify OAuth setup is required.
- ✅ Three charts in one run — songs, albums, and artists share a normalized contract.
- ✅ Movement-ready records — current, previous, peak, and calculated rank change are included when Spotify supplies them.
- ✅ Automation-friendly — stable JSON, Apify schedules, webhooks, API, and integrations.
- ✅ Cost efficient — one HTTP fetch per run, no browser and no proxy.
- ✅ Fail-closed extraction — upstream breakage raises an error instead of returning a misleading empty success.
What Spotify chart data can I extract?
| Field | Meaning |
|---|---|
chartAlias | Spotify's stable chart alias |
chartTitle | Human-readable weekly chart title |
chartDate | Date attached to the current chart snapshot |
chartType | songs, albums, or artists |
sourceChartType | Spotify source dimension such as TOP_TRACK |
country | Chart territory, currently GLOBAL |
recurrence | Chart recurrence, currently WEEKLY |
currentRank | Current position |
previousRank | Previous position when available |
peakRank | Best supplied position when available |
rankChange | Positive for a rise, negative for a fall |
entryStatus | Spotify's entry/movement status |
appearancesOnChart | Total appearance counter supplied by Spotify |
consecutiveAppearancesOnChart | Consecutive appearance counter |
entityName | Track, album, or artist name |
entityType | track, album, or artist |
spotifyUri | Native Spotify URI |
spotifyUrl | Browser-ready open.spotify.com URL |
artistNames | All credited artist names |
artistUris | Credited artist Spotify URIs |
artworkUrl | Spotify artwork image URL |
releaseDate | Release date when supplied |
scrapedAt | UTC extraction timestamp |
Spotify may leave some movement or appearance fields empty or zero in its public response. The Actor preserves meaningful supplied values and does not invent missing history.
How much does it cost to scrape Spotify weekly charts?
Pricing is pay per event:
- Run started: $0.001 once per run
- Chart entry saved: tiered by your Apify plan; BRONZE is currently $0.000028297 per record
A 10-entry Top Songs snapshot is about $0.0013 at the BRONZE rate. A complete 50-entry export of all three charts (up to 150 records) is about $0.0052. Higher Apify plans receive lower per-entry prices.
Apify's Free plan credits can cover many small weekly snapshots. The final platform price shown before starting a run is authoritative.
How to scrape Spotify charts in 5 steps
- Open the Actor on Apify.
- Select Top Songs, Top Albums, Top Artists, or any combination.
- Set the maximum entries per selected chart from 1 to 50.
- Click Start and wait for the dataset link.
- Export the results or schedule the same input weekly.
For a cheap first run, keep the prefilled input: Top Songs with 10 entries.
Input parameters
chartTypes
An array containing one or more chart names:
songsalbumsartists
If omitted through the API, all three current weekly charts are selected. An empty array or unknown value fails validation.
maxItemsPerChart
An integer from 1 to 50. The limit applies independently to each selected chart.
For example, selecting songs and artists with a limit of 20 can produce up to 40 records.
Input examples
Current Top Songs, first 10
{"chartTypes": ["songs"],"maxItemsPerChart": 10}
All complete current weekly charts
{"chartTypes": ["songs", "albums", "artists"],"maxItemsPerChart": 50}
Albums and artists for a weekly intelligence report
{"chartTypes": ["albums", "artists"],"maxItemsPerChart": 25}
Output example
{"chartAlias": "REGIONAL_GLOBAL_WEEKLY","chartTitle": "Weekly Top Songs: Global","chartDate": "2026-07-16","chartType": "songs","sourceChartType": "TOP_TRACK","country": "GLOBAL","recurrence": "WEEKLY","currentRank": 1,"previousRank": 1,"rankChange": 0,"entryStatus": "NO_CHANGE","entityName": "Example track","entityType": "track","spotifyUri": "spotify:track:example","spotifyUrl": "https://open.spotify.com/track/example","artistNames": ["Example artist"],"artistUris": ["spotify:artist:example"],"artworkUrl": "https://i.scdn.co/image/example","scrapedAt": "2026-07-22T00:00:00.000Z"}
Actual names, dates, ranks, and IDs come from the live current chart.
Understanding rank movement
rankChange is calculated as previousRank - currentRank:
5means the entity rose five places.0means the rank did not change.-3means the entity fell three places.
For a new entry without a meaningful previous rank, previousRank and rankChange are omitted. Check entryStatus for Spotify's source status.
Do not interpret an absent peakRank as a claim that the current rank is the all-time peak. The Actor only reports a peak when the public source supplies a meaningful positive value.
Tips for reliable weekly monitoring
- 🗓️ Schedule the Actor once per week after Spotify refreshes the public chart.
- 🧱 Store snapshots in a named dataset or external warehouse for long-term history.
- 🔑 Use
spotifyUrias the entity key across weekly runs. - 🧮 Combine
chartAlias,chartDate, andspotifyUrifor a snapshot-level unique key. - 📊 Calculate velocity from multiple snapshots rather than one week's movement alone.
- 💸 Use a small per-chart limit for alerts and 50 for complete current snapshots.
Scheduling and webhooks
Create an Apify schedule with the desired input to collect the chart automatically. A weekly schedule is usually enough because this Actor's public v1 source is weekly.
Attach a webhook to the successful-run event to:
- send the dataset to a data warehouse;
- trigger a Slack or email breakout alert;
- refresh a dashboard;
- start a downstream enrichment Actor;
- archive the snapshot in object storage.
If a run fails because Spotify changed its response, use the failed-run webhook rather than treating a missing dataset as a quiet no-change week.
Integrations for music intelligence
Google Sheets or Airtable
Export each weekly dataset and compare current rank with the previous imported snapshot. Add conditional formatting for positive rankChange values.
BigQuery, Snowflake, or PostgreSQL
Upsert on chart alias, date, and Spotify URI. Build week-over-week models without scraping presentation HTML.
Slack and Microsoft Teams
Filter for entryStatus values representing new entries or large positive movement, then post only those records to a trend channel.
Zapier and Make
Use the finished-run webhook to export the dataset and fan records into CRM, editorial, or research workflows.
Other Apify Actors
Feed Spotify URLs into Spotify Scraper when you need broader entity metadata beyond the official weekly ranking snapshot.
Run through the Apify API with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/spotify-public-weekly-charts-scraper').call({chartTypes: ['songs', 'albums', 'artists'],maxItemsPerChart: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Install the client with npm install apify-client.
Run through the Apify API with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/spotify-public-weekly-charts-scraper').call(run_input={'chartTypes': ['songs'],'maxItemsPerChart': 20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Install the client with pip install apify-client.
Run through the API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~spotify-public-weekly-charts-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"chartTypes":["artists"],"maxItemsPerChart":10}'
Use the returned run ID to fetch run status and the default dataset.
Use Spotify charts with MCP and AI agents
Connect the Actor to Claude Code:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/spotify-public-weekly-charts-scraper"
For Claude Desktop, Cursor, or VS Code, add this server configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/spotify-public-weekly-charts-scraper"}}}
Example prompts:
- "Get this week's top 20 global Spotify songs and summarize the biggest risers."
- "Export the current Top Albums and Top Artists charts, then group albums by artist."
- "Compare this Spotify weekly chart dataset with last week's file and flag new entries."
Data quality and limitations
The Actor reports what Spotify's anonymous public charts response currently provides.
- The public endpoint currently returns the current global weekly song, album, and artist charts.
- Each chart currently exposes up to 50 records through this surface.
- Daily, historical, genre, city, and country chart controls are outside v1.
- Some rank-history counters may be zero or absent in Spotify's response.
- Spotify may rename aliases or fields; total extraction failure causes a failed run for visibility.
- Artwork URLs are hosted by Spotify and may change independently of this Actor.
The Actor never fabricates daily history or expands the scope using unofficial approximations.
Is it legal to scrape public Spotify charts?
This Actor accesses a public, anonymous structured endpoint and exports factual chart records. You are responsible for using the data in compliance with applicable laws, Spotify's terms, intellectual-property rights, and your organization's policies.
Do not use the Actor to evade access controls, impersonate users, or redistribute protected artwork beyond your rights. For legal advice about a specific use case, consult qualified counsel.
FAQ
Does this Actor require Spotify OAuth?
No. The supported current global weekly charts are available anonymously.
Can it scrape historical or daily charts?
Not in v1. The Actor deliberately avoids claiming access to authenticated daily and historical surfaces.
Why are some previous or peak ranks missing?
Spotify may supply zero or empty values for those fields. The Actor omits meaningless values rather than presenting zero as a real rank.
Why did I get fewer than 150 records?
The result count equals selected chart types multiplied by maxItemsPerChart, up to what Spotify currently exposes. One chart with a limit of 10 returns up to 10 records.
What if the run fails with an upstream response error?
Retry later and check Spotify's public charts availability. A schema-changing upstream response intentionally fails the run instead of returning an empty successful dataset.
How do I track changes over months?
Schedule weekly runs and persist each dataset in your warehouse or spreadsheet. Use Spotify URI plus chart alias and date as the snapshot key.
Related Spotify scrapers
- Spotify Scraper — scrape broader Spotify tracks, artists, albums, playlists, and search results.
- Spotify Play Count Scraper — collect track play-count signals when that metric is the primary workflow.
- Spotify Song Downloader — use only when your workflow requires supported media-download functionality rather than chart ranks.
Choose this Actor when the official current weekly chart position is the core record. Choose a related Actor when you need deep entity metadata, counts, or media rather than rankings.
Support
If a run fails or output appears inconsistent with Spotify's visible current weekly charts, open an issue from the Actor page and include:
- the run URL;
- the exact input;
- the affected chart type;
- the expected rank or entity;
- when you observed the discrepancy.
That evidence helps distinguish an upstream chart refresh from a parser regression quickly.