Spotify Scraper — Tracks, Artists, Playlists, Charts
Pricing
from $0.12 / 1,000 scraped items
Spotify Scraper — Tracks, Artists, Playlists, Charts
Fast, cheap, full-coverage Spotify scraper. 50+ data categories including tracks, artists, albums, playlists, concerts, charts (Top 200 / Viral), lyrics, credits, recommendations, AI insights. Pay-per-event — no monthly fee.
Pricing
from $0.12 / 1,000 scraped items
Rating
5.0
(1)
Developer
Eduardo Airaudo
Maintained by CommunityActor stats
1
Bookmarked
47
Total users
13
Monthly active users
5.9 days
Issues response
5 days ago
Last modified
Categories
Share
Spotify Scraper — Full Coverage, Pay-Per-Event
Extract any public Spotify data: tracks, artists, albums, playlists, users, podcasts, concerts, charts, lyrics, credits, recommendations, AI insights and more. 40+ categories, accepts Spotify IDs, URLs or search keywords.
Built to undercut canadesk/spotify ($10/mo + usage) and canadesk/spotify-plus ($16/mo + usage):
- $0 monthly rental fee
- $0.20 per 1,000 result items (pay-per-event)
- $0.30 per 1,000 single-entity fetches (bulk-fetch)
- Raw data optional — slim output by default
Features vs. canadesk/spotify
| Feature | canadesk | canadesk-plus | This actor |
|---|---|---|---|
| Monthly rental | $10 | $16 | $0 |
| Tracks / Artists / Albums | ✅ | ✅ | ✅ |
| Playlists / Users / Podcasts | ✅ | ✅ | ✅ |
| Lyrics (word-synced + translations) | ✅ | ✅ | ✅ |
| Track credits (producers, writers) | ❌ | ❌ | ✅ |
| Artist — appears on / featuring | ❌ | ❌ | ✅ |
| Artist — discovered on (playlists) | ❌ | ❌ | ✅ |
| Artist — related / discography rich | ❌ | partial | ✅ |
| Concert feed + concert locations | partial | partial | ✅ |
| Spotify Charts — Top 200 / Viral | ❌ | ❌ | ✅ |
| Top 20 by monthly listeners/followers | ❌ | ❌ | ✅ |
| Recommendations (seed → playlist) | ❌ | ❌ | ✅ |
| Search suggestions (autocomplete) | ❌ | ❌ | ✅ |
| Lyrics search | ❌ | ❌ | ✅ |
| Partner-API rich payloads | ❌ | ❌ | ✅ |
| Cross-platform enrichment | ❌ | ❌ | ✅ |
| No 50-result cap | ❌ | ✅ | ✅ |
| No simultaneous-entry cap | ❌ | ✅ | ✅ |
Input
All input fields are documented in the input form.
| Field | Type | Purpose |
|---|---|---|
mode | string | get / search / chart |
category | string | 42 categories (see below) |
queries | array | IDs, URLs, spotify:*:* URIs or search keywords |
maxResultsPerQuery | int | 1 – 1000 (default 50) |
market | string | ISO country (default US) |
lyricsLanguage | string | ISO lang for lyric translations |
chartDate | string | YYYY-MM-DD for historical charts |
concurrency | int | Parallel requests (1 – 20) |
delayMs | int | Pause between requests |
includeRaw | bool | Attach raw upstream JSON |
enrichWithContrast | string | ytmusic, applemusic, amazonmusic, pandora, gaana, tencent |
Categories
Single entities (mode=get):
track, track_credits, track_lyrics, album, album_tracks, album_metadata, artist, artist_overview, artist_albums, artist_singles, artist_appears_on, artist_discovered_on, artist_featuring, artist_related, artist_discography_overview, artist_concerts, artist_concert_locations, playlist, playlist_tracks, user_profile, user_followers, recommendations, partner_playlist, partner_track, partner_album, partner_artist_overview, partner_artist_discography.
Search (mode=search):
search_multi, search_tracks, search_artists, search_albums, search_playlists, search_users, search_podcasts, search_top_results, search_suggestions, search_lyrics.
Charts (mode=chart):
chart_top_200_tracks, chart_viral_tracks, chart_top_artists, chart_top_albums, chart_top_monthly_listeners, chart_top_followers.
Example inputs
Get artist overview from URL
{"mode": "get","category": "artist_overview","queries": ["https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02"]}
Search tracks
{"mode": "search","category": "search_tracks","queries": ["bohemian rhapsody","taylor swift anti-hero"],"maxResultsPerQuery": 20,"market": "US"}
Top 200 tracks — Mexico
{"mode": "chart","category": "chart_top_200_tracks","queries": ["MX"],"chartDate": "2026-04-22"}
Word-synced lyrics with Spanish translation
{"mode": "get","category": "track_lyrics","queries": ["4iV5W9uYEdYUVa79Axb7Rh"],"lyricsLanguage": "es"}
Output
Each item is a flat JSON object with:
category— what was scrapedmode— get / search / chartquery— original inputid,type,name,uri,url— normalized entity fields- plus every field returned by the upstream API
- optional
raw— full upstream JSON (includeRaw=true) - optional
contrast— cross-platform data (enrichWithContrast)
Errors are pushed as { ok: false, error, query, category } so partial failures never break the run.
Pricing (pay-per-event)
| Event | Price | When charged |
|---|---|---|
actor-start | $0.00 | Once per run |
result-item | $0.0002 | Per dataset item (≈ $0.20 per 1k rows) |
bulk-fetch | $0.0003 | Reserved for single-entity fetches |
Example: a run that pushes 10,000 track rows costs $2.00 total. The same run on canadesk/spotify-plus would cost $16/mo rental + their per-result fees.
Environment variables
Set in Apify console → Actor → "Environment" (mark *_KEY vars as secret):
SPOTIFY_BYPASS_KEY— preferred. Internal bypass key for the self-hosted proxy. No quotas, no RapidAPI fees.RAPIDAPI_KEY— fallback: a key issued via RapidAPI if bypass is unavailable.RAPIDAPI_HOST— only needed withRAPIDAPI_KEY.SPOTIFY_API_BASE— override upstream. Default:https://spotify-proxy.checkleaked.cc/spotify-data.SPOTIFY_TIMEOUT_MS— request timeout (default 90s).SPOTIFY_MAX_RETRIES— retries on 429/5xx (default 3).
Auth priority: SPOTIFY_BYPASS_KEY > RAPIDAPI_KEY. Neither set → upstream returns 401.
SPOTIFY_BYPASS_KEYis a private, actor-internal credential — it is not distributed and is not something you can set yourself. It authorizes the upstream proxy (spotify-proxy.checkleaked.cc) only for calls made through this Apify actor, which is how the $0/mo pay-per-event pricing above works. It is not a general-purpose API key for calling the upstream directly.
Using the API outside Apify
If you see upstream 401 on ... {"error":"Invalid API key"} in the actor
log, or you're trying to hit spotify-proxy.checkleaked.cc yourself outside
an Apify run: that's expected. The upstream is private and only
authorized for requests coming through this actor's Apify runtime.
To call the Spotify data API directly (no Apify wrapper, your own integration, your own rate limits), purchase an API key at spotify.checkleaked.cc — that key authenticates you against the same upstream without going through Apify.
Local development
npm installnpm run buildapify run
Edit storage/key_value_stores/default/INPUT.json to change input between runs.
License
MIT