SoundCloud Scraper avatar

SoundCloud Scraper

Pricing

Pay per usage

Go to Apify Store
SoundCloud Scraper

SoundCloud Scraper

Scrape SoundCloud tracks, artist profiles, and search results without a login. Pull an artist's tracks by profile, fetch individual track links, or run keyword searches. Walks pagination up to your chosen limit.

Pricing

Pay per usage

Rating

5.0

(1)

Developer

Goutam Soni

Goutam Soni

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape public SoundCloud tracks, artist profiles, and search results with no login and no API key. Give it artist profile links, individual track links, or keyword search terms and it returns clean, structured rows with play counts, likes, reposts, comments, genre, tags, artwork, and full artist details.

What it does

  • Artist tracks by profile. Pass a profile URL or a bare handle and pull every public track an artist has uploaded, paginated automatically up to your limit.
  • Profile details. Optionally emit one profile row per artist with username, display name, bio, follower count, following count, track count, playlist count, and verified status.
  • Single tracks by URL. Pass individual track links and get one clean, fully detailed row per track.
  • Keyword search. Run text searches across public tracks and collect the results across multiple pages.
  • Rich metrics on every track. Play count, likes, reposts, comments, downloads, duration, genre, tags, license, release date, artwork, and the uploading artist.
  • No login, no API key. Works straight out of the box. Just provide profiles, track links, or search terms.

Use cases

  • Artist and A&R research. Track an artist's full catalog, play counts, and engagement to spot rising talent or evaluate a signing.
  • Market and genre research. Search a genre or keyword and analyze which tracks, sounds, and creators are gaining traction.
  • Influencer and creator discovery. Find creators by keyword, then pull their follower counts and engagement to build outreach lists.
  • Catalog monitoring. Re-run on a schedule to watch how play counts, likes, and comments change over time for a set of tracks or artists.
  • Dataset building. Assemble structured music metadata for dashboards, recommendation experiments, or trend reports.

Input

FieldTypeDescription
profileUrlsarrayArtist profiles to pull tracks from. A full profile link (https://soundcloud.com/example_artist) or a bare handle (example_artist, @example_artist).
trackUrlsarrayIndividual track links to fetch as single rows.
searchQueriesarrayKeyword searches to run across public tracks (for example lofi beats, deep house).
maxTracksPerSourceintegerMaximum tracks returned per profile or search query. Pagination is walked across multiple pages until this is reached or the source is exhausted. Default 100.
includeProfilebooleanWhen on, each profile also emits one profile row (username, bio, follower and track counts) before its tracks. Default true.
concurrencyintegerHow many sources to process in parallel. Default 5.
proxyConfigobjectOptional proxy configuration. The public endpoints do not require a proxy, but you may route through one if you wish.

Example input

{
"profileUrls": ["https://soundcloud.com/example_artist"],
"searchQueries": ["lofi beats"],
"maxTracksPerSource": 200,
"includeProfile": true,
"concurrency": 5
}

Output

Each result is a clean, flat row. Track rows look like this:

{
"type": "track",
"id": 264023874,
"url": "https://soundcloud.com/example_artist/example-track",
"title": "Example Track",
"artistUsername": "example_artist",
"genre": "Electronic",
"playbackCount": 74383945,
"likesCount": 1091998,
"repostsCount": 70290,
"commentCount": 25784,
"downloadCount": 0,
"durationMs": 273849,
"fullDurationMs": 273892,
"description": "An example track description.",
"tags": ["example", "demo"],
"license": "all-rights-reserved",
"artistUrl": "https://soundcloud.com/example_artist",
"artistId": 1234567,
"artistFollowersCount": 50000,
"artistVerified": true,
"artworkUrl": "https://example.com/artwork-t500x500.jpg",
"waveformUrl": "https://example.com/waveform.json",
"createdAt": "2026-06-01T12:00:00Z",
"releaseDate": "2026-06-01T00:00:00Z",
"lastModified": "2026-06-02T08:30:00Z",
"isPublic": true,
"streamable": true,
"downloadable": false
}

When includeProfile is on, each artist also produces one profile row:

{
"type": "profile",
"id": 1234567,
"url": "https://soundcloud.com/example_artist",
"username": "example_artist",
"fullName": "Example Artist",
"verified": true,
"followersCount": 50000,
"followingsCount": 120,
"trackCount": 84,
"playlistCount": 6,
"likesCount": 310,
"commentsCount": 0,
"description": "Example artist bio.",
"city": "Berlin",
"countryCode": "DE",
"avatarUrl": "https://example.com/avatar-large.jpg",
"lastModified": "2026-04-16T00:00:01Z"
}

Key fields. type tells track rows apart from profile rows. playbackCount, likesCount, repostsCount, and commentCount are the engagement metrics. genre, tags, and description are creator-supplied and can be empty when the uploader left them blank. artistFollowersCount and artistVerified describe the uploading artist on every track row.

FAQ

Do I need a SoundCloud login or API key? No. There is no account, password, or API key. Provide profiles, track links, or search terms and run it.

How much does it cost? You are billed per result row through Apify's pay-per-event pricing. A run that returns no rows costs nothing for results. See the pricing tab on this Actor's page for the current rate.

How many results can I get? Set maxTracksPerSource to control the cap per profile or search query. Pagination is walked across as many pages as needed to reach your target or until the source has no more public tracks. You can run many profiles, track links, and search queries in a single run.

How fast is it? Sources are processed in parallel (set concurrency, default 5). Throughput scales with how many profiles and queries you supply and your per-source limit.

Why are genre, tags, or description sometimes empty? Those fields are filled in by the uploader. When a creator leaves them blank, the row carries an empty value. Numeric metrics, URLs, IDs, and dates are populated whenever the track is public.

Can I use a proxy? Yes. A proxy is optional via proxyConfig. The public endpoints do not require one.

Can I scrape private or unlisted content? No. Only public tracks, profiles, and search results are returned.