SoundCloud Charts, Search & Artist Catalog Scraper
Pricing
from $0.49 / 1,000 results
SoundCloud Charts, Search & Artist Catalog Scraper
Scrape SoundCloud without an API key: global and genre New & Hot charts, keyword search with real genre filters, full artist catalogs, playlist contents, comments, followers, engagement metrics, artwork, waveform and stream metadata.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
Nimbryxo-studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Pull public SoundCloud data into one clean dataset: the current global New & Hot chart, 20 genre trending lists, keyword search across tracks, artists, playlists and albums, complete artist catalogs, playlist contents, track comments, and artist followers. No SoundCloud account, cookie or API key is required.
What this actor does
- Search tracks, users/artists, playlists or albums by keyword, with a real SoundCloud genre filter for tracks and playlists.
- Charts the global New & Hot list (up to 100 tracks) or one of 20 current genre trending lists (about 50 tracks each).
- Artist catalog exports the profile row plus uploaded tracks and, optionally, albums, playlists, top tracks and public web profiles.
- URLs resolves any public track, playlist/album or artist URL. Playlist URLs expand into every track, not just the first page. Artist URLs return the profile and uploaded tracks.
- Comments collects public comments for one or more tracks, including the commenter's profile fields and the time in the track.
- Followers collects an artist's followers or the accounts the artist follows.
- Empty fields are omitted from records. No
null, blank strings or empty arrays are pushed.
Output records
Every row has a recordType: track, user, playlist or comment. Existing
field names are preserved; the revamp adds fields beside them.
Track fields
| Field | Meaning |
|---|---|
recordType | track |
title, url, trackId, urn | Track identity and canonical page URL |
artist, artistUrl, artistId | Uploader identity |
artistFollowers, artistVerified, artistCity, artistCountry, artistDescription | Creator details when SoundCloud publishes them |
duration | M:SS / H:MM:SS (unchanged legacy field) |
durationMs, durationSeconds | Numeric duration |
playCount, likeCount, repostCount, commentCount, downloadCount | Engagement snapshot |
genre, tags, description | Uploader metadata when present |
uploadDate, lastModified, releaseDate | ISO-8601 dates |
labelName, license, isrc, upc | Release and rights metadata when present |
publisherArtist, albumTitle, writerComposer, explicit | Publisher metadata when present |
streamable, downloadable, hasDownloadsLeft, policy, monetizationModel | Source playback flags |
streamUrl | Playable signed media URL when resolveStreamUrls=true; otherwise the stable API transcoding URL |
streamUrlApi | Stable SoundCloud transcoding endpoint (not directly playable without a client_id) |
streamUrlProtocol, streamUrlMimeType, streamUrlPreset | Stream format details |
streamUrlExpiresAt | Expiry of the signed media URL (about two hours) |
streamUrlIsPreview | true for a 30-second preview / SNIP track |
artworkUrl, artworkUrlOriginal | Cover image at 500x500 and original size |
waveformUrl | Waveform amplitude JSON (not an image) |
chartGenre, chartRank, chartScore, chartLastUpdated | Chart context |
playlistId, playlistTitle, playlistUrl, playlistPosition | Playlist context when a playlist is expanded |
sourceQuery, sourceType, sourceUrl | What input produced the row |
scrapedAt | ISO-8601 scrape time |
User / artist fields
recordType=user; keeps title, url, trackId, artist, artistUrl,
playCount, likeCount, repostCount, description, artworkUrl, scrapedAt.
Adds userId, username, fullName, followersCount, followingsCount,
trackCount, playlistCount, commentsCount, verified, pro, city,
countryCode, lastModified, webProfiles, relationship (followers mode),
sourceArtistId, sourceArtistUsername.
Playlist / album fields
recordType=playlist; keeps title, url, trackId, artist, artistUrl,
duration, likeCount, repostCount, genre, description, uploadDate,
artworkUrl, scrapedAt. Adds playlistId, urn, trackCount, setType,
isAlbum, tags, releaseDate, lastModified, durationMs, labelName.
Comment fields
recordType=comment; commentId, body, createdAt, timestampMs,
timestampFormatted, trackId, trackTitle, trackUrl, userId, username,
userUrl, userFollowers, userCity, userCountry, scrapedAt.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
mode | select | search | search, charts, artistTracks, byUrl, comments, followers |
searchQueries | string list | [] | One or more search keywords |
searchType | select | tracks | tracks, users, playlists, albums, all |
chartGenre | select | all | Global New & Hot or one of 20 genre trending lists |
searchGenre | select | any genre | Real SoundCloud genre filter for track/playlist search |
sortBy | select | relevance | relevance, newest, mostPlayed, mostLiked (client-side) |
minPlayCount, minLikeCount | integer | 0 | Client-side thresholds after fetching |
artistUrls | string list | [] | Artist URLs, usernames or numeric user IDs |
includeTracks | boolean | true | Artist tracks |
includeAlbums | boolean | false | Artist albums/EPs |
includePlaylists | boolean | false | Artist playlists |
includeTopTracks | boolean | false | Artist top tracks |
includeWebProfiles | boolean | false | Public social/web profile links |
startUrls | URL list | [] | Track, playlist or artist URLs / numeric track IDs |
includePlaylistTracks | boolean | true | Expand every playlist track |
includeUserProfile | boolean | true | Emit the profile row for artist URLs in byUrl |
trackUrls | URL list | [] | Tracks for comments mode |
commentsSort | select | newest | newest, oldest, track-timestamp |
relationship | select | followers | followers or followings |
resolveStreamUrls | boolean | true | Resolve signed playable stream URLs + expiry |
maxItems | integer | 100 | Hard record cap (1-5000) |
Examples
Search tracks with a genre filter
{"mode": "search","searchQueries": ["lofi", "ambient jazz"],"searchType": "tracks","searchGenre": "Jazz & Blues","maxItems": 100}
Global New & Hot chart
{ "mode": "charts", "chartGenre": "all", "maxItems": 100 }
Trap trending list
{ "mode": "charts", "chartGenre": "trap", "maxItems": 50 }
Full artist catalog
{"mode": "artistTracks","artistUrls": ["https://soundcloud.com/chillhopdotcom"],"includeTracks": true,"includeAlbums": true,"includePlaylists": true,"maxItems": 500}
Expand a playlist
{"mode": "byUrl","startUrls": ["https://soundcloud.com/chillhopdotcom/sets/chillhop-essentials-summer-2026"],"includePlaylistTracks": true,"maxItems": 300}
Track comments
{"mode": "comments","trackUrls": ["https://soundcloud.com/user/track"],"commentsSort": "newest","maxItems": 200}
Artist followers
{"mode": "followers","artistUrls": ["https://soundcloud.com/chillhopdotcom"],"relationship": "followers","maxItems": 500}
Charts: what is available
SoundCloud's current public chart surface is New & Hot, not the retired all-time Top chart. The actor returns:
- the global New & Hot list (up to 100 tracks), and
- 20 current genre trending lists (about 50 tracks each).
The old per-genre chart endpoint and the all-time Top chart are no longer available
from SoundCloud's public API. Requests for the legacy top value are mapped to the
current global New & Hot list and the status message says so.
Stream URLs, previews and rights
Stream metadata comes from SoundCloud's public transcodings. streamUrl is a
signed media URL and expires after about two hours; streamUrlExpiresAt records
the exact time. streamUrlApi is the stable API endpoint, but it is not playable on
its own without a client_id.
Not every track is fully playable: SoundCloud may return a 30-second preview
(streamUrlIsPreview=true), use DRM/encrypted transcodings, or disable downloads.
The actor reports the metadata it can see and never fabricates an audio file. This
actor does not download or rehost audio.
Limitations
- Search returns at most 300 rows per query. Use more queries or a genre filter to reach further.
- The all-time Top chart and regional/country charts are not available from the current public surface.
- Server-side BPM, duration, upload-date, license and access filters are not
available on SoundCloud's public v2 search; the actor only exposes the real
genre filter.
sortByand the minimum play/like thresholds are applied to the rows already fetched. - SoundCloud does not publish a user join date or a user repost count in this API.
- BPM and musical key are not exposed for tracks.
- City/country, description, genre, tags, ISRC, UPC, label and release date are conditional; fields are omitted when SoundCloud does not provide them.
- Only public tracks, playlists and profiles are reachable. Private/unlisted content is out of scope.
- Huge follower lists can be expensive; use
maxItemsto cap them.
FAQ
Do I need a SoundCloud account or API key? No. The actor reads the same public pages and public v2 JSON the SoundCloud web player uses, with no login.
Why is streamUrl sometimes missing? SoundCloud may expose only encrypted/DRM
transcodings or a preview for that track. streamUrlApi, policy and the preview
flag still describe what is available.
Why does a search stop at 300 rows? That is SoundCloud's public search window
per query. Split the job into more queries or use searchGenre to partition it.
Why is waveformUrl a JSON file? SoundCloud's waveform field points to amplitude
JSON, not an image. It is kept under the existing field name for compatibility.
Can I schedule monitoring? Yes. Run the actor on a schedule and compare
playCount, likeCount, repostCount and followersCount snapshots. Monitoring
helpers are not part of this version; the dataset is designed for external diffing.
Is this affiliated with SoundCloud? No. This is an independent actor that reads publicly visible data and is not endorsed by SoundCloud.