SoundCloud Charts, Search & Artist Catalog Scraper avatar

SoundCloud Charts, Search & Artist Catalog Scraper

Pricing

from $0.49 / 1,000 results

Go to Apify Store
SoundCloud Charts, Search & Artist Catalog Scraper

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

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

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

FieldMeaning
recordTypetrack
title, url, trackId, urnTrack identity and canonical page URL
artist, artistUrl, artistIdUploader identity
artistFollowers, artistVerified, artistCity, artistCountry, artistDescriptionCreator details when SoundCloud publishes them
durationM:SS / H:MM:SS (unchanged legacy field)
durationMs, durationSecondsNumeric duration
playCount, likeCount, repostCount, commentCount, downloadCountEngagement snapshot
genre, tags, descriptionUploader metadata when present
uploadDate, lastModified, releaseDateISO-8601 dates
labelName, license, isrc, upcRelease and rights metadata when present
publisherArtist, albumTitle, writerComposer, explicitPublisher metadata when present
streamable, downloadable, hasDownloadsLeft, policy, monetizationModelSource playback flags
streamUrlPlayable signed media URL when resolveStreamUrls=true; otherwise the stable API transcoding URL
streamUrlApiStable SoundCloud transcoding endpoint (not directly playable without a client_id)
streamUrlProtocol, streamUrlMimeType, streamUrlPresetStream format details
streamUrlExpiresAtExpiry of the signed media URL (about two hours)
streamUrlIsPreviewtrue for a 30-second preview / SNIP track
artworkUrl, artworkUrlOriginalCover image at 500x500 and original size
waveformUrlWaveform amplitude JSON (not an image)
chartGenre, chartRank, chartScore, chartLastUpdatedChart context
playlistId, playlistTitle, playlistUrl, playlistPositionPlaylist context when a playlist is expanded
sourceQuery, sourceType, sourceUrlWhat input produced the row
scrapedAtISO-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

FieldTypeDefaultWhat it does
modeselectsearchsearch, charts, artistTracks, byUrl, comments, followers
searchQueriesstring list[]One or more search keywords
searchTypeselecttrackstracks, users, playlists, albums, all
chartGenreselectallGlobal New & Hot or one of 20 genre trending lists
searchGenreselectany genreReal SoundCloud genre filter for track/playlist search
sortByselectrelevancerelevance, newest, mostPlayed, mostLiked (client-side)
minPlayCount, minLikeCountinteger0Client-side thresholds after fetching
artistUrlsstring list[]Artist URLs, usernames or numeric user IDs
includeTracksbooleantrueArtist tracks
includeAlbumsbooleanfalseArtist albums/EPs
includePlaylistsbooleanfalseArtist playlists
includeTopTracksbooleanfalseArtist top tracks
includeWebProfilesbooleanfalsePublic social/web profile links
startUrlsURL list[]Track, playlist or artist URLs / numeric track IDs
includePlaylistTracksbooleantrueExpand every playlist track
includeUserProfilebooleantrueEmit the profile row for artist URLs in byUrl
trackUrlsURL list[]Tracks for comments mode
commentsSortselectnewestnewest, oldest, track-timestamp
relationshipselectfollowersfollowers or followings
resolveStreamUrlsbooleantrueResolve signed playable stream URLs + expiry
maxItemsinteger100Hard 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. sortBy and 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 maxItems to 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.