Spotify Public Weekly Charts Scraper avatar

Spotify Public Weekly Charts Scraper

Pricing

Pay per event

Go to Apify Store
Spotify Public Weekly Charts Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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?

FieldMeaning
chartAliasSpotify's stable chart alias
chartTitleHuman-readable weekly chart title
chartDateDate attached to the current chart snapshot
chartTypesongs, albums, or artists
sourceChartTypeSpotify source dimension such as TOP_TRACK
countryChart territory, currently GLOBAL
recurrenceChart recurrence, currently WEEKLY
currentRankCurrent position
previousRankPrevious position when available
peakRankBest supplied position when available
rankChangePositive for a rise, negative for a fall
entryStatusSpotify's entry/movement status
appearancesOnChartTotal appearance counter supplied by Spotify
consecutiveAppearancesOnChartConsecutive appearance counter
entityNameTrack, album, or artist name
entityTypetrack, album, or artist
spotifyUriNative Spotify URI
spotifyUrlBrowser-ready open.spotify.com URL
artistNamesAll credited artist names
artistUrisCredited artist Spotify URIs
artworkUrlSpotify artwork image URL
releaseDateRelease date when supplied
scrapedAtUTC 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

  1. Open the Actor on Apify.
  2. Select Top Songs, Top Albums, Top Artists, or any combination.
  3. Set the maximum entries per selected chart from 1 to 50.
  4. Click Start and wait for the dataset link.
  5. 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:

  • songs
  • albums
  • artists

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:

  • 5 means the entity rose five places.
  • 0 means the rank did not change.
  • -3 means 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 spotifyUri as the entity key across weekly runs.
  • 🧮 Combine chartAlias, chartDate, and spotifyUri for 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 os
from apify_client import ApifyClient
client = 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().items
print(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.

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.

  • 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.