SoundCloud Scraper
Pricing
Pay per event
SoundCloud Scraper
Extract SoundCloud tracks, playlists, and artist profiles. Get play counts, likes, reposts, genre, tags, ISRC, and full creator details. No API key needed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract tracks, playlists, user profiles, and search results from SoundCloud — no API key or login required. Get full metadata: play counts, likes, reposts, comments, genre, tags, ISRC, and creator profiles. Export to JSON, CSV, Excel, or feed into your pipelines.
Try it free on Apify Store. Get up to 100 tracks free on the Apify Free plan ($5 credits).
What does SoundCloud Scraper do?
SoundCloud Scraper uses SoundCloud's public API to extract full track, playlist, and user data without a browser or paid API subscription. Just enter a search query or a SoundCloud URL and you get structured data you can use immediately.
Supported scrape modes:
- 🔍 Search tracks — find tracks by keyword, genre, or artist name
- 🎵 Search playlists — find curated playlists matching your query
- 👤 Search users — find artists and creators
- 🎧 Track by URL — scrape full metadata for a specific track
- 📋 Playlist by URL — extract playlist metadata
- 👤 User profile + tracks — scrape a creator's profile and all their public tracks
Unlike web scrapers that break constantly, this actor uses SoundCloud's official internal API — the same one their web player uses — making it reliable and fast.
Who is it for?
Music researchers and analysts tracking trends across genres, monitoring which emerging artists gain traction, or building datasets for music recommendation models.
Music marketing professionals who need to monitor how tracks are performing — play counts, likes, comment velocity — to report on campaigns or identify influential creators to collaborate with.
Podcasters and content creators who want to find popular tracks in specific genres for licensed background music, or track how their own music is performing over time.
Data scientists and developers building music discovery apps, playlist generators, or audio classification datasets who need labeled track metadata at scale without paying for the official SoundCloud API.
Record labels and A&R teams identifying emerging talent by monitoring follower growth, track engagement, and upload frequency across thousands of independent artists.
Why use SoundCloud Scraper?
- ✅ No API key required — SoundCloud's public v2 API works without authentication
- ✅ No login or cookies needed — fully public data extraction
- ✅ Pure HTTP — fast and cheap — no browser overhead, runs on 256 MB
- ✅ Full metadata — play counts, likes, reposts, ISRC, waveform URLs, user bios
- ✅ Pagination support — extract hundreds or thousands of tracks per query
- ✅ 6 scrape modes — search or target specific URLs
- ✅ Export anywhere — JSON, CSV, Excel, Google Sheets, or via API
What data can you extract?
🎧 Track data
| Field | Description |
|---|---|
title | Track title |
url | Full SoundCloud URL |
artworkUrl | Cover art image URL |
description | Track description / tracklist |
genre | Genre classification |
tagList | Array of tags |
duration | Duration in milliseconds |
playbackCount | Total plays |
likesCount | Total likes/hearts |
repostsCount | Total reposts |
commentCount | Total comments |
downloadCount | Total downloads |
downloadable | Whether download is enabled |
streamable | Whether streaming is available |
license | License type (e.g., all-rights-reserved, cc-by) |
releaseDate | Original release date |
createdAt | Upload date |
isrc | ISRC music identifier code |
waveformUrl | URL to waveform JSON data |
userName | Creator username |
userUrl | Creator profile URL |
userFollowersCount | Creator's follower count |
userVerified | Whether creator is verified |
📋 Playlist data
| Field | Description |
|---|---|
title | Playlist name |
url | Full SoundCloud URL |
artworkUrl | Cover art image URL |
description | Playlist description |
genre | Genre classification |
duration | Total duration in ms |
trackCount | Number of tracks |
likesCount | Total likes |
isAlbum | Whether it's a released album vs playlist |
publishedAt | Publication date |
userName | Creator username |
👤 User profile data
| Field | Description |
|---|---|
username | SoundCloud username |
fullName | Display name |
url | Profile URL |
avatarUrl | Profile picture URL |
description | Bio text |
city | Location city |
countryCode | Country code |
followersCount | Number of followers |
followingsCount | Accounts they follow |
trackCount | Number of uploaded tracks |
playlistCount | Number of playlists |
likesCount | Total likes given |
verified | Verification status |
isPro | Pro subscription holder |
How much does it cost to scrape SoundCloud?
This actor uses Pay-Per-Event (PPE) pricing. You only pay for results you get.
| Volume | Cost | What you get |
|---|---|---|
| 10 tracks | $0.025 | Quick test run |
| 100 tracks | $0.205 | Solid dataset |
| 500 tracks | $1.005 | Genre analysis |
| 1,000 tracks | $2.005 | Large research dataset |
Pricing breakdown: $0.005 run start fee + $0.002 per track/item scraped.
Free plan estimate: With Apify's $5 free credits, you can scrape approximately 2,000 tracks before any charges apply.
Compare to SoundCloud's official API: requires an approved developer application and has strict rate limits. This scraper has no rate limiting issues for typical research volumes.
How to scrape SoundCloud data
- Go to SoundCloud Scraper on Apify Store
- Click Try for free
- Select a scrape mode from the dropdown (e.g., "Search Tracks")
- Enter your search query (e.g., "lofi hip hop") or paste a SoundCloud URL
- Set Max results per query (start with 20 for testing)
- Click Start and wait for results (usually under 30 seconds)
- Download your data as JSON, CSV, or Excel from the Dataset tab
Example inputs for different use cases:
Search for tracks by genre:
{"mode": "searchTracks","searchQueries": ["ambient techno", "dark jazz"],"maxResults": 100}
Scrape a specific artist's profile and all their tracks:
{"mode": "userUrl","startUrls": ["https://soundcloud.com/moderat"],"maxResults": 200}
Get playlist metadata for a curated set:
{"mode": "playlistUrl","startUrls": ["https://soundcloud.com/user/sets/my-playlist"],"maxResults": 50}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | String | searchTracks | What to scrape: searchTracks, searchPlaylists, searchUsers, trackUrl, playlistUrl, userUrl |
searchQueries | Array | [] | Search terms for search modes. One query per item. |
startUrls | Array | [] | SoundCloud URLs for URL-based modes. |
maxResults | Integer | 100 | Max items to extract per query/URL. Use 0 for unlimited. |
includeUserDetails | Boolean | true | Include creator profile data in each track result. |
Output examples
Track output:
{"type": "track","id": 417474360,"title": "Chill Study Beats - Lofi Hip Hop Mix","url": "https://soundcloud.com/nigeldelviero/chill-study-beats-lofi-hip-hop-mix","artworkUrl": "https://i1.sndcdn.com/artworks-000321524016-jw118f-large.jpg","genre": "Hip-hop & Rap","tagList": ["Lo-Fi", "Relax", "Chill"],"duration": 7200255,"playbackCount": 4732814,"likesCount": 93032,"repostsCount": 2211,"commentCount": 4802,"downloadable": false,"streamable": true,"license": "all-rights-reserved","createdAt": "2018-03-22T08:35:48Z","userName": "nigeldelviero","userFollowersCount": 4056,"userVerified": false,"isrc": null,"scrapedAt": "2026-04-03T00:00:00.000Z"}
User output:
{"type": "user","id": 203410014,"username": "deadmau5","fullName": "deadmau5","url": "https://soundcloud.com/deadmau5","followersCount": 352371,"trackCount": 45,"verified": true,"isPro": true}
Tips for best results
- 🔍 Use specific genre names — SoundCloud indexes genre tags, so "lo-fi hip hop" returns more relevant results than "lofi"
- 📊 Start with small maxResults (20-50) to preview data before large extractions
- 🔁 Schedule runs for monitoring — use Apify's scheduling feature to track track metrics weekly
- 🎯 Combine modes — search for users first, then use their URLs in
userUrlmode for comprehensive data - 💾 Export to Google Sheets — use Apify's Google Sheets integration for real-time data sharing
- ⚡ Pagination is automatic — just set
maxResultshigher and the scraper fetches multiple pages
Integrations
SoundCloud Scraper → Google Sheets: Track how a set of artists' follower counts change week over week. Schedule a weekly run in userUrl mode, output to Google Sheets, and watch the trends.
SoundCloud Scraper → Slack alerts: Monitor when a target artist uploads a new track. Set up a daily userUrl run, compare track counts, and send Slack notifications via Apify webhooks when the count increases.
SoundCloud Scraper → Make / Zapier: Automatically add newly discovered tracks (from search runs) to a Spotify playlist or Notion database for music curation workflows.
SoundCloud Scraper → Data warehouse: Pull 1,000+ tracks per genre weekly into BigQuery or Snowflake for music trend analysis dashboards.
Scheduled monitoring: Run searchTracks mode daily with specific genre queries to build a time-series dataset of SoundCloud's trending content.
API usage
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('automation-lab/soundcloud-scraper').call({mode: 'searchTracks',searchQueries: ['lofi hip hop', 'ambient techno'],maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("automation-lab/soundcloud-scraper").call(run_input={"mode": "searchTracks","searchQueries": ["lofi hip hop", "ambient techno"],"maxResults": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["playbackCount"])
cURL:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~soundcloud-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "searchTracks","searchQueries": ["lofi hip hop"],"maxResults": 100}'
Use with AI agents via MCP
SoundCloud Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/soundcloud-scraper"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/soundcloud-scraper"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Use automation-lab/soundcloud-scraper to find the top 50 lofi hip hop tracks on SoundCloud and show me which artists have the most plays"
- "Scrape the SoundCloud profile for soundcloud.com/moderat and list all their tracks with play counts"
- "Search SoundCloud for ambient techno playlists and find the 10 most-liked ones"
Learn more in the Apify MCP documentation.
Legality of scraping SoundCloud
This actor only accesses publicly available data via SoundCloud's public API — the same data anyone can see when visiting soundcloud.com. No private data, no account credentials, no authentication is required or used.
Web scraping public data is generally considered legal in most jurisdictions. The 2022 hiQ Labs v. LinkedIn ruling confirmed that scraping publicly available data does not violate the Computer Fraud and Abuse Act (CFAA).
You are responsible for how you use the data. We recommend:
- Only scraping data you are legally entitled to use
- Respecting SoundCloud's Terms of Service for your specific use case
- Complying with GDPR and other applicable privacy regulations when processing personal data
- Not using the data for spam, harassment, or other harmful purposes
For legal advice about your specific use case, consult a qualified attorney.
FAQ
How many tracks can I scrape per run?
There is no hard limit. Set maxResults: 0 for unlimited results. Typical search queries return 200-1,000 tracks before running out of results. User profile mode extracts all public tracks for a given artist.
How much does it cost? $0.005 per run start + $0.002 per track/playlist/user scraped. 100 tracks = $0.205 total. The free plan ($5 credits) covers approximately 2,000 tracks.
Does it require a SoundCloud account or API key? No. This actor uses SoundCloud's public API that powers their website, no account or API key needed.
Why are some tracks missing play counts or download counts?
SoundCloud sometimes returns null for private or restricted metrics. The playbackCount field may be null for very new tracks or tracks that have been set to private after upload.
Why does the userUrl mode return 0 tracks for some artists? Some artists have all their tracks set to private or streaming-only without public listing. The API only returns publicly listed tracks.
Why am I getting fewer results than maxResults?
The SoundCloud search index may have fewer results than your requested limit for very specific queries. Try broader search terms or use searchUsers mode to find artists, then use userUrl mode for their tracks.
The actor stopped mid-run — what happened?
SoundCloud occasionally returns rate limit errors (429) for very high-volume requests. Try reducing maxResults per query or splitting your search queries across multiple runs.
Related scrapers
- Spotify Playlist Scraper — Extract Spotify playlist tracks and metadata
- YouTube Music Scraper — Scrape YouTube music videos and channel data
- Bandcamp Scraper — Extract independent music from Bandcamp
Built by Automation Lab — building reliable data extraction tools for music, media, and research.