# SoundCloud Scraper: Tracks, Artists and Playlists

> SoundCloud scraper: get tracks by search, artist, playlist or link. Plays, likes, reposts, genre, ISRC and label in clean rows. No login needed.

URL: https://cliqtomedia.com/actors/soundcloud-scraper/

Category: Video, audio & streaming · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto

Get public SoundCloud track data by search, artist, playlist or link. Each track is one row with plays, likes, genre and ISRC.

## How to use it: 3 steps

1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `lofi` in Search queries. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Scrape public SoundCloud tracks by keyword search, artist profile, playlist or track link, with no login, and get one clean row per track: plays, likes, reposts, comments, duration, genre, tags, ISRC, label, album and upload date.

- Search — tracks that SoundCloud finds for your keywords, in SoundCloud's order.
- Artist — all tracks an artist uploaded, in profile order (usually newest first). Paste a profile link or just the username.
- Playlist — every track of a playlist or album, in playlist order, also for long playlists.
- Track — one row for each track link you paste.

### Good for

- Music marketing and A&R: find tracks with many plays or likes for a genre keyword.
- Labels and managers: export an artist's catalog with ISRC, album, label and release date.
- Playlist research: get every track of a playlist with its stats and position.
- Trend reports: run the same searches every week and compare plays.

### Not a good fit

- SoundCloud search shows at most about 300 tracks per query. Use several narrower queries for more.
- No audio files, no lyrics, no listener data, no private or unlisted content that needs a login.
- No search for playlists or users, no followers lists and no comments text.
- Counts are what SoundCloud shows at fetch time. When an uploader hides a count, the value is `null`, not 0.

## Price

Prices will be shown after release.

## Questions

### Can it download MP3 files?

No. It collects track data only, not audio.

### How many tracks can I get from one artist?

Up to 5,000 tracks per link.

### Why are some counts empty?

SoundCloud hides some counts. Then the value is empty, not zero.

### Do I need a SoundCloud account?

No. It reads only what a logged-out visitor sees.

### Can it download MP3 or audio?

No. It collects track data only. `downloadable` only tells you whether the uploader allows downloads on SoundCloud.

### Are the counts live?

They are what SoundCloud showed at `fetchedAt`. Run again to refresh them.

### Is the data complete?

Search is limited to about 300 tracks per query by SoundCloud. Artist and playlist runs return every public track up to `maxItems`. Hidden counts are `null`.

### Is scraping SoundCloud allowed?

The Actor reads public pages at a modest rate, one request at a time, without login, and it does not collect personal profile data or audio. SoundCloud's terms limit automated collection and reuse. You are responsible for how you store and use the data, including artists' rights; do not use it to train AI models or to republish catalogs.

## Data fields

- `status` (string): ok = a track row (paid). not_found, no_results and error are free status rows that explain an input without tracks.
- `trackId` (integer): SoundCloud track id.
- `title` (string): Track title.
- `artist` (string): Display name of the uploading account.
- `artistId` (integer): SoundCloud user id of the uploader.
- `artistUrl` (string): Uploader profile on soundcloud.com.
- `artistFollowers` (integer): Uploader follower count at fetch time.
- `artistVerified` (boolean): SoundCloud verified badge of the uploader.
- `url` (string): Track page on soundcloud.com.
- `plays` (integer): Play count. null when the uploader hides it; never replaced by 0.
- `likes` (integer): Like count; null when hidden.
- `reposts` (integer): Repost count; null when hidden.
- `comments` (integer): Comment count; null when hidden.
- `downloads` (integer): Download count; null when hidden.
- `durationSec` (number): Full track length in seconds (also for Go+ tracks that play only a preview).
- `isPreviewOnly` (boolean): true = a SoundCloud Go+ track: logged-out listeners hear only a 30-second preview.
- `genre` (string): Genre the uploader chose; null when empty.
- `tags` (array): Tags the uploader set; multi-word tags stay together.
- `createdAt` (string): Upload time on SoundCloud, ISO 8601 UTC.
- `releaseDate` (string): Release date set by the uploader, if any.
- `license` (string): License the uploader chose, e.g. all-rights-reserved or cc-by.
- `labelName` (string): Record label from track metadata.
- `isrc` (string): ISRC code from publisher metadata.
- `albumTitle` (string): Album title from publisher metadata.
- `explicit` (boolean): Explicit flag from publisher metadata.
- `artworkUrl` (string): Cover image, 500x500.
- `downloadable` (boolean): The uploader allows downloads on SoundCloud. The Actor never downloads audio.
- `commentable` (boolean): Comments are open.
- `mode` (string): Input mode that produced the row: search, user, playlist or track.
- `query` (string): Search query of the row (Search mode).
- `inputUrl` (string): Link or username from the input (URL modes).
- `playlistId` (integer): Playlist id when the row comes from a playlist.
- `playlistTitle` (string): Playlist title when the row comes from a playlist.
- `position` (integer): 1-based rank in the search results, artist list or playlist.
- `errorCode` (string): Status rows only: NOT_FOUND, UNSUPPORTED_URL, SOURCE_BLOCKED and similar.
- `message` (string): Status rows only: what happened, in plain words.
- `source` (string): Always soundcloud.
- `fetchedAt` (string): When the row was fetched, ISO 8601 UTC.

## Input settings

- `mode` (string): Search = tracks SoundCloud finds for your keywords. Artist = all tracks an artist uploaded, in profile order. Playlist = every track of a playlist or album, in playlist order. Track = one row per track link.
- `queries` (array): Keywords as you would type them on SoundCloud, one search per line, up to 100. Used in Search mode. SoundCloud returns at most about 300 tracks per search; split broad topics into several queries to get more.
- `urls` (array): Up to 100 soundcloud.com links: artist profiles (https://soundcloud.com/flume) or bare usernames in Artist mode, playlist or album links (…/sets/…) in Playlist mode, track links in Track mode. Short on.soundcloud.com links are not supported; open them in a browser and paste the full link.
- `maxItems` (integer): Stop each search, artist or playlist after this many saved tracks. Each saved track is one paid result.
- `createdWithin` (string): Keep only tracks uploaded in this period. Works in Search and Artist modes; skipped tracks are not charged. Playlist and single track links are always returned in full.

## Step by step on Apify

1. Open the Input tab.
2. Keep What to scrape on *Search results* and type a keyword in Search queries, for example `lofi` (this is the prefill).
3. Keep Max tracks per query or link at 10 (prefill) or set up to 5,000.
4. Click Start.
5. Open the Output tab. The *Tracks* view shows cover, title, artist, plays, likes, reposts, comments, duration and link.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Find popular tracks in a genre | `mode: search`, `queries` | Track | `plays`, `likes`, `reposts`, `genre`, `createdAt` | Google Sheets, BI tool |
| Export an artist catalog | `mode: user`, `urls` | Track | `isrc`, `albumTitle`, `labelName`, `releaseDate`, `plays` | Catalog database, royalty checks |
| Check a playlist | `mode: playlist`, `urls` | Track | `position`, `playlistTitle`, `plays`, `artist` | Playlist pitching reports |
| Track new uploads | `mode: search` or `user`, `createdWithin` | Track | `createdAt`, `plays`, `url` | Schedules + webhooks |

## Tips

- Use several narrow queries; search gives about 300 tracks each.
- Use the uploaded-within filter to find new tracks only.
- Raise the timeout for many large artists or playlists.

## Limits



- Track saved: one per `ok` row in the Dataset.
- Actor start: charged by Apify once per run (per GB of memory; the default 256 MB counts as one).
- Free: `not_found`, `no_results` and `error` rows, duplicate inputs and tracks skipped by `createdWithin`.
- Search: about 300 tracks per query (SoundCloud shows no more). The run summary warns when a query hits this cap.
- Artist and Playlist: up to 5,000 tracks per link (`maxItems`). In tests one artist's 5,000 tracks took about 70 seconds at 256 MB, and 2,000 tracks about 30 seconds.
- Up to 100 queries or links per run. Many links × 5,000 tracks need a longer run timeout than the default 300 s; a link cut by the timeout is marked `partial`.
- Tracks that SoundCloud removed or blocked in your playlist are skipped and counted in `skippedUnavailable`.

## Sample result

```json
{
  "status": "ok",
  "trackId": 2119863225,
  "title": "All Of The Worlds",
  "artist": "Flume",
  "artistId": 2976616,
  "artistUrl": "https://soundcloud.com/flume",
  "artistFollowers": 2228502,
  "artistVerified": true,
  "url": "https://soundcloud.com/flume/all-of-the-worlds",
  "plays": 35963,
  "likes": 1071,
  "reposts": 78,
  "comments": 23,
  "downloads": 0,
  "durationSec": 126,
  "isPreviewOnly": false,
  "genre": "Electronic",
  "tags": [],
  "createdAt": "2025-06-26T13:01:21Z",
  "releaseDate": "2025-08-22T00:00:00Z",
  "license": "all-rights-reserved",
  "labelName": "Flume",
  "isrc": "US38Y2548239",
  "albumTitle": "DUMB",
  "explicit": false,
  "artworkUrl": "https://i1.sndcdn.com/artworks-bvBQ1BhZQSM2-0-t500x500.jpg",
  "downloadable": false,
  "commentable": true,
  "mode": "user",
  "query": null,
  "inputUrl": "https://soundcloud.com/flume",
  "playlistId": null,
  "playlistTitle": null,
  "position": 1,
  "source": "soundcloud",
  "fetchedAt": "2026-10-15T09:23:40.949Z"
}
```

## Use cases with this tool

- [Find the right creators, fast](https://cliqtomedia.com/actors/use-cases/creator-outreach/): Find podcasts, YouTube channels and newsletters in your niche, with public contact details.

## Similar tools

- [YouTube Subtitles & Transcript Scraper API](https://cliqtomedia.com/actors/youtube-transcript-scraper/)
- [YouTube Comments Scraper](https://cliqtomedia.com/actors/youtube-comments-scraper/)
- [Apple Podcast Directory & RSS Contacts Scraper](https://cliqtomedia.com/actors/podcast-directory-rss-contacts-scraper/)
- [Audio & Podcast Transcriber (Speech to Text)](https://cliqtomedia.com/actors/audio-video-transcriber/)
- [Social Video Downloader: TikTok, Instagram, X - No Login](https://cliqtomedia.com/actors/social-video-downloader/)
- [YouTube Search Results Scraper — No Login](https://cliqtomedia.com/actors/youtube-search-scraper/)
