Spotify Scraper — Tracks, Artists, Playlists, Charts avatar

Spotify Scraper — Tracks, Artists, Playlists, Charts

Pricing

from $0.12 / 1,000 scraped items

Go to Apify Store
Spotify Scraper — Tracks, Artists, Playlists, Charts

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

Eduardo Airaudo

Maintained by Community

Actor stats

1

Bookmarked

47

Total users

13

Monthly active users

5.9 days

Issues response

5 days ago

Last modified

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

Featurecanadeskcanadesk-plusThis 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 richpartial
Concert feed + concert locationspartialpartial
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.

FieldTypePurpose
modestringget / search / chart
categorystring42 categories (see below)
queriesarrayIDs, URLs, spotify:*:* URIs or search keywords
maxResultsPerQueryint1 – 1000 (default 50)
marketstringISO country (default US)
lyricsLanguagestringISO lang for lyric translations
chartDatestringYYYY-MM-DD for historical charts
concurrencyintParallel requests (1 – 20)
delayMsintPause between requests
includeRawboolAttach raw upstream JSON
enrichWithContraststringytmusic, 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 scraped
  • mode — get / search / chart
  • query — original input
  • id, 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)

EventPriceWhen charged
actor-start$0.00Once per run
result-item$0.0002Per dataset item (≈ $0.20 per 1k rows)
bulk-fetch$0.0003Reserved 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_KEYpreferred. 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 with RAPIDAPI_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_KEY is 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 install
npm run build
apify run

Edit storage/key_value_stores/default/INPUT.json to change input between runs.

License

MIT