SoundCloud Scraper · Tracks + Artists + Emails · $1.50/1k
Pricing
from $1.50 / 1,000 results
SoundCloud Scraper · Tracks + Artists + Emails · $1.50/1k
Scrape SoundCloud tracks, artists, playlists, albums, and search results in one actor — with management/booking emails parsed directly from artist bios. Auto-classifies any SoundCloud URL. Uses the public v2 JSON API (no browser, no client_id setup). 30+ fields per row, JSON or CSV
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
SoundCloud Scraper — Tracks, Artists, Playlists, Search & Bio Emails
Auto-classify any SoundCloud URL — tracks, artist profiles, playlists/albums, or search queries — and get a clean structured dataset with 30+ fields per row plus management/booking emails parsed directly from artist bios. Uses the public v2 JSON API (no browser, no client_id setup). Pure HTTP.
How it works
Why use this scraper
- All SoundCloud URL kinds in one input — paste a track, an artist profile, a playlist, and a search query in the same array. Each is auto-classified and routed to the right v2 API endpoint. No separate actors per URL shape.
- Bio emails included — SoundCloud artists routinely put management/booking emails in their
descriptionfield (e.g. Flume's bio begins withManagement: flume@threesixzero.com). The actor parses these directly from the API response — no separate website fetch needed, ~30-50% hit rate on verified artists. - 30+ fields per artist — username, fullName, followers, followings, track count, playlist count, city, country, verified flag, pro subscription, creation date, avatar URL, bio, and more.
- 20+ fields per track — title, plays, likes, reposts, comments, genre, tags, duration, license, label, release date, monetization model, artwork URL, waveform URL.
- 15+ fields per playlist/album — title, track count, total duration, set type (album / EP / compilation), full track list with permalinks, genre, tags, release date, label name.
- No browser, no client_id setup — the actor extracts a fresh
client_idfrom SoundCloud's JS bundle automatically (24h cache, auto-refresh on 401/403). No manual setup. - CSV-friendly flatten — nested API objects auto-expand to underscore-separated top-level fields, perfect for spreadsheet workflows.
Overview
SoundCloud has 175+ million tracks and 40+ million artists. Whether you're building a label scouting tool, a music-industry sales pipeline, a trend tracker, or a producer-collab finder, you eventually need this data in CSV.
The actor uses SoundCloud's public v2 JSON API (api-v2.soundcloud.com) — the same API the web app uses. Five URL shapes are auto-classified by URL pattern, so you don't tell the actor "what kind of URL this is"; you just paste URLs.
Supported inputs
| Input | Row(s) emitted |
|---|---|
Track — /{artist}/{track-slug} | 1 track row with title, plays, likes, reposts, genre, tags, duration, license, monetization, artwork. |
Artist profile — /{artist} | 1 artist row with username, full name, followers, followings, track count, country, city, verified flag, pro subscription, bio — plus emails parsed from bio. |
Playlist or album — /{artist}/sets/{slug} | 1 playlist row with title, set type (album / ep / single / compilation / '' for plain playlist), track count, full track list (id + title + permalink for each), release date, label. |
Search — /search?q=... | Fans out to up to N rows across tracks + users (filtered search supported: /search/sounds, /search/people, /search/sets, /search/albums). Cursor-paginated. |
Discover — /discover | Fans out SoundCloud's curated mixed-selections panels (~40-60 playlist rows depending on maxItems). /discover/sets/genre:{slug} returns featured tracks for that genre. |
Mix any of these in the same startUrls[] array — the actor auto-classifies each one. JSON + CSV output.
Pure HTTP. No browser, no client_id manual setup, no third-party services.
Use cases
- Label A&R — find emerging electronic artists by
genre=techno+followers_count > 10000+ active in the last 6 months. - Music-industry sales pipeline — collect management/booking emails for booking agents and labels by scraping artists in your target genre.
- Track release monitor — re-scrape your competitor labels' artists daily to catch new track uploads.
- Producer/remix sourcing — search by tag to find remixers; cold-pitch them via bio emails.
- Genre trend tracker — search by tag/keyword + sort by
playback_countto find what's blowing up. - Playlist curation analysis — pull a curator's full set list to study how they sequence tracks.
- Verified-artist market research — filter
verified=trueto study only the SoundCloud-verified accounts in your category.
How it works (under the hood)
Five stages, all pure HTTP via the v2 JSON API, ~150ms per resolve call:
- Classify URL — every input URL is matched against a deterministic regex set. Five URL shapes, one classifier function. Reserved paths (
/upload,/discover,/search, etc.) are filtered out so they don't get misclassified as artists. - Extract client_id — SoundCloud's v2 API requires a
client_idquery param. On first call, the actor fetches one JS bundle froma-v2.sndcdn.com, scans for the patternclient_id:"…", caches the result for 24h. Auto-refresh on 401/403. - Call v2 API —
resolveendpoint for individual entities;search/{tracks|users|albums|playlists}for search queries. impit's Chrome TLS fingerprint + Referer header pass the API's anti-bot cleanly. - Parse bio emails — for artist rows, the actor runs an email regex over the
descriptionfield (mailto + plain-text patterns, junk-filtered for CRM relays and template addresses). Surfaces asharvestedEmails[]field. - Push flat row to dataset — one row per track, artist, or playlist. Optionally flattened (CSV-friendly) or kept nested (JSON-rich).
End-to-end live smoke test: 12 rows from 5 mixed URLs (2 artists + 1 playlist + 9 search results), 1 email harvested (flume@threesixzero.com from Flume's bio), 0 hard failures, completed in ~3 seconds.
Input configuration
| Field | Type | Required | Notes |
|---|---|---|---|
startUrls | string[] | yes | Any mix of track / artist / playlist / search URLs. Auto-classified. |
harvestArtistEmails | boolean | no | Default true. Parses emails from each artist's bio. Disable for slightly cleaner raw output. |
paginateSearch | boolean | no | Default true. Follow cursor pagination on search URLs until maxItems is reached. Disable for first-page-only. |
flatten | boolean | no | Default true. Flatten nested API objects to underscore-separated top-level keys for CSV-friendly output. |
includeRaw | boolean | no | Default false. Attach the full v2 API response as a raw field on every row. |
hydratePlaylistTracks | boolean | no | Default true. SoundCloud's playlist endpoint returns the first few tracks fully populated and the rest as id-only stubs. When enabled, the actor issues one extra /tracks?ids=… call per playlist to fill in titles and permalinks for every track. Disable to save one API call per playlist (titles for stub tracks will be null). |
maxItems | integer | no | Hard cap on rows emitted (combined tracks + artists + playlists). Default 1000. Free-tier users capped at 100. |
maxConcurrency | integer | no | API calls in parallel. Default 8. SC's API is forgiving — 6-10 is the sweet spot. |
proxy | object | no | Default: Apify Proxy. Provide your own residential pool only if you hit rate-limits — the API doesn't require one in testing. |
Example input
{"startUrls": ["https://soundcloud.com/skrillex","https://soundcloud.com/flume","https://soundcloud.com/skrillex/sets/recess","https://soundcloud.com/search?q=techno","https://soundcloud.com/search/people?q=label%20manager"],"harvestArtistEmails": true,"paginateSearch": true,"maxItems": 500}
Output overview
Three row shapes, distinguished by the rowType field: track, artist, playlist.
rowType: "artist" — for /{artist} URLs
{"rowType": "artist","sourceUrl": "https://soundcloud.com/flume","userId": 2976616,"username": "Flume","fullName": "","permalinkUrl": "https://soundcloud.com/flume","avatarUrl": "https://i1.sndcdn.com/avatars-...-large.jpg","description": "Management: flume@threesixzero.com\n...","city": "Sydney","countryCode": "AU","followersCount": 2226886,"followingsCount": 203,"trackCount": 231,"playlistCount": 46,"likesCount": 1289,"repostsCount": 78,"verified": true,"isPro": true,"harvestedEmails": ["flume@threesixzero.com"],"scrapedAt": "2026-05-26T..."}
rowType: "track" — for /{artist}/{track-slug} URLs
{"rowType": "track","trackId": 74415567,"title": "Scary Monsters and Nice Sprites","permalinkUrl": "https://soundcloud.com/skrillex/scary-monsters-and-nice-sprites","durationMs": 249000,"genre": "Dubstep","tags": ["dubstep", "electronic", "scary monsters"],"playbackCount": 127500000,"likesCount": 2500000,"repostsCount": 450000,"commentCount": 80000,"labelName": "Big Beat Records","license": "all-rights-reserved","artistId": 856062,"artistUsername": "Skrillex","artistUrl": "https://soundcloud.com/skrillex"// 8 more fields...}
rowType: "playlist" — for /{artist}/sets/{slug} URLs (also covers albums)
{"rowType": "playlist","playlistId": 91234567,"title": "Recess","setType": "album","isAlbum": true,"trackCount": 11,"tracks": [{ "id": 142535312, "title": "All Is Fair in Love and Brostep", "permalinkUrl": "..." },{ "id": 142535313, "title": "Recess", "permalinkUrl": "..." }// ... 9 more],"releaseDate": "2014-03-18T00:00:00Z","labelName": "OWSLA","artistUsername":"Skrillex"// 10 more fields...}
Key output fields
The most-used fields for filtering / scoring:
harvestedEmails—string[]of plausible management/booking emails parsed from the artist bio. Empty when the bio has no email patterns.followersCount— primary popularity metric for artists. Skrillex = 6.6M. Use to filter "established artists" (e.g.> 10000).verified— boolean SoundCloud-verified flag. Useful for filtering only the "real" accounts.isPro— boolean derived fromcreator_subscription.product.id. Pro/Plus accounts are paying SC subscribers = serious artists.playbackCount+likesCount+commentCount— track engagement metrics. Combined → "trending track" score.genre+tags— for category filters. Tags include both single-word and quoted multi-word tags.countryCode— 2-letter ISO country. Filter for territorial campaigns.setType— distinguishesalbum/ep/single/compilationfrom regular playlists.
FAQ
Q: Do I need a SoundCloud account or API key?
A: No. Everything in scope here is publicly accessible. The actor auto-extracts a fresh client_id from SoundCloud's public JS bundle on each run (cached 24h).
Q: How am I billed for a run? A: Two pay-per-event line items combined:
- Output record — $0.0025 per row paid tier, $0.0015 free tier. One event per dataset row (track, artist, or playlist).
- Additional data — $0.0001 per event, charged at 2× the count of nested items inside each row. That means each track listed inside a playlist row, each email harvested from an artist bio, and each tag on a track or playlist all bill at this rate.
So a Skrillex artist row with 0 emails costs just $0.0025. A Flume artist row with 1 email costs $0.0025 + (1 × 2 × $0.0001) = $0.0027. A 50-track playlist row with ~30 tags costs $0.0025 + ((50 + 30) × 2 × $0.0001) = $0.0185. The dense /discover panels (40-50 tracks per playlist, ~30 tags each) are where additional-data charges add up — you're getting a lot of dense data per primary row.
Q: What's the realistic email-harvest rate? A: 30-50% of verified artists put a management/booking email in their bio. Smaller/hobbyist accounts rarely do. Rate depends heavily on your input list — top-tier artists (e.g. on a label scouting list) hit ~50%.
Q: Why is description sometimes null?
A: SoundCloud lets users leave their bio blank. Free / inactive accounts often have null descriptions. No bio → no email harvest possible.
Q: Can I scrape a specific artist's full track catalog?
A: V1 — pass the artist URL to get the artist row (track count + summary). The artist's individual track URLs would each need to be passed separately. A future version will support /{artist}/tracks as a fan-out URL.
Q: How does Discover work, given SoundCloud removed the /charts endpoint?
A: SC pulled the old /charts?genre=…&kind=top endpoint in 2026. The actor now uses what's still alive: /mixed-selections (4 curated panels of playlists — what you see on the /discover page itself) and /featured_tracks/top/{genre} (genre-targeted track lists). Pass /discover for the editorial panels or /discover/sets/genre:{slug} (e.g. /discover/sets/genre:techno) for genre-targeted tracks.
Q: How does the actor handle SoundCloud's API rate limits?
A: The actor uses impit's Chrome TLS fingerprint + a real Referer header — passes cleanly in testing. If you hit a 401/403, the actor auto-refreshes the client_id once and retries. Set maxConcurrency lower (4 or below) if you're seeing transient errors.
Q: Does this work for SoundCloud Go+ exclusive tracks? A: The metadata for Go+ tracks is public (so you'll get title, artist, etc.), but the playable audio isn't accessible without a SoundCloud Go+ subscription. The actor scrapes metadata only.
Q: Output format? A: JSON (Apify Dataset default) or CSV via the Apify Console "Export" tab. Default flatten makes CSV directly usable in Excel / Google Sheets.
Support
Found a bug, hit an unexpected URL pattern, or want a new entity type supported? File feedback via the Apify Console "Issues" tab on this actor's page.
Additional services
Open to building custom scrapers, data enrichment pipelines, or co-developing actors. Reach out via the Apify Console contact form on the memo23 profile.
Explore more scrapers
These pair well with the SoundCloud scraper for music-industry workflows:
- Product Hunt Scraper — pull music-tech product launches and their founder emails. Pairs for "find the labels building tools".
- LinkedIn Profiles Scraper — backfill artist profiles (where bio email is null).
- Y Combinator Scraper — find music-tech startups going through YC.
- Trustpilot Scraper — customer reviews for music-streaming services and labels.
- YouTube Comments Scraper — find SoundCloud artists' YouTube cross-platform presence + comment-driven outreach.
Full portfolio: apify.com/memo23.
⚠️ Disclaimer
This scraper accesses publicly available data on soundcloud.com via SoundCloud's public v2 JSON API. It does NOT bypass authentication, scrape private content, or access content not intended for public consumption.
Users are responsible for ensuring their use of this scraper complies with:
- SoundCloud Terms of Service — review at soundcloud.com/terms-of-use
- SoundCloud API Terms of Use — review at developers.soundcloud.com/docs
- Applicable data protection laws including GDPR (Europe), CCPA (California), and equivalent regulations in your jurisdiction. Email harvesting falls under data-protection obligations — process responsibly, honor opt-outs, and consult legal counsel before using harvested emails for outbound marketing.
robots.txtand rate-limiting guidance from SoundCloud- Local jurisdiction laws regarding web scraping and data collection
The scraper is provided for legitimate purposes such as market research, label A&R, music-industry sales pipelines, trend tracking, and personal use. Commercial use, redistribution, or use that violates SoundCloud's Terms of Service is the user's responsibility.
This actor is independently built and is not affiliated with, endorsed by, or sponsored by SoundCloud Limited.
By using this scraper, you acknowledge that you understand and accept these responsibilities.
SEO Keywords
soundcloud scraper, soundcloud api, soundcloud data extraction, soundcloud tracks scraper, soundcloud artists scraper, soundcloud playlist scraper, soundcloud search scraper, soundcloud emails, soundcloud management contacts, soundcloud booking emails, soundcloud labels scraper, soundcloud a&r tool, soundcloud verified artists, soundcloud genre tracker, soundcloud playback count, soundcloud followers scraper, soundcloud csv export, soundcloud trending tracks, soundcloud techno scraper, soundcloud electronic music data, soundcloud producer scraper, soundcloud remix sourcing, soundcloud market research, soundcloud apify, soundcloud automation, scrape soundcloud without api key, soundcloud without oauth, no-code soundcloud scraper, soundcloud v2 api scraper.