SoundCloud Scraper — Music Data & Artist Emails avatar

SoundCloud Scraper — Music Data & Artist Emails

Pricing

from $6.00 / 1,000 soundcloud result saveds

Go to Apify Store
SoundCloud Scraper — Music Data & Artist Emails

SoundCloud Scraper — Music Data & Artist Emails

Scrape public SoundCloud tracks, artists, playlists, catalogs, and search results without cookies. Built for A&R, music research, outreach, monitoring, and AI workflows. Returns engagement metrics, ISRCs, tags, URLs, and publicly listed contact emails. No audio downloads or private data.

Pricing

from $6.00 / 1,000 soundcloud result saveds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

SoundCloud Scraper — Tracks, Artists, Playlists & Public Emails

Scrape public SoundCloud tracks, artist profiles, playlists, artist catalogs, and keyword search results without supplying a SoundCloud login or cookies. The Actor returns a stable dataset row for every saved track, artist, or playlist, including engagement metrics, genres, tags, ISRC/UPC metadata, canonical URLs, and contact emails explicitly published in descriptions.

Use it for A&R research, artist and label discovery, catalog monitoring, music-market analysis, playlist audits, outreach preparation, dashboards, and AI-agent workflows. It is MCP-ready, defaults to a working health-check search, and charges $0.006 only for each schema-valid row successfully saved, plus the standard Actor-start event and Apify platform usage.

What you can collect

  • Track search results with title, artist, duration, plays, likes, reposts, comments, genre, tags, label, ISRC, release date, artwork, and waveform URL.
  • Artist search results with biography, public contact emails, location, verification, followers, following, track count, playlist count, avatar, and profile URL.
  • Direct public track, artist, and playlist URLs.
  • Tracks published by one or more artist profiles.
  • Playlist metadata plus expanded track rows when expandPlaylists is enabled.
  • Compact OUTPUT and detailed RUN_SUMMARY records for automation, billing checks, and debugging.

All dataset rows use the same explicit schema. Fields that do not apply to an entity are null or an empty array rather than disappearing, which makes exports easier to use in databases, spreadsheets, and agent tools.

Quick start

The default input runs a small track search. For a targeted search:

{
"mode": "searchTracks",
"searchQueries": ["lofi hip hop", "indie electronic"],
"maxResults": 25,
"includeContactEmails": true,
"dataSource": "auto"
}

To scrape direct URLs:

{
"mode": "scrapeUrls",
"startUrls": [
{ "url": "https://soundcloud.com/kehlanimusic/lights-on-feat-big-sean" },
{ "url": "https://soundcloud.com/kehlanimusic" }
],
"maxResults": 10,
"expandPlaylists": true,
"includeContactEmails": true
}

To export an artist catalog, set mode to artistTracks and provide artist profile URLs in startUrls.

Input reference

FieldPurposeDefault
modesearchTracks, searchArtists, scrapeUrls, or artistTrackssearchTracks
searchQueriesUp to 20 keywords for a search modelofi hip hop
startUrlsUp to 50 public SoundCloud URLsWorking public track URL
maxResultsGlobal dataset and paid-result cap, from 1 to 1,00025
includeContactEmailsRead emails explicitly published in public descriptionstrue
expandPlaylistsSave playlist tracks after the playlist rowtrue
dataSourceauto, native soundcloud, or scrapeCreators fallbackauto

auto is recommended. It uses public SoundCloud web data first and can recover supported direct track, artist, or artist-catalog routes through an owner-managed provider. SoundCloud search and playlists remain native because the fallback provider has no equivalent endpoints. You never need to provide a provider key as an Actor user.

Output example

{
"entityType": "track",
"id": "123456789",
"url": "https://soundcloud.com/artist/example-track",
"title": "Example Track",
"artistName": "Example Artist",
"contactEmails": ["bookings@example.org"],
"genre": "Electronic",
"tags": ["electronic", "indie"],
"durationMs": 218000,
"playbackCount": 125000,
"likesCount": 4200,
"repostsCount": 310,
"isrc": "USAAA2500123",
"dataSource": "soundcloud",
"scrapedAt": "2026-07-15T12:00:00.000Z"
}

The actual row also contains every documented nullable field. Open the Dataset schema in Apify Console for the full contract.

Run through the API

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/soundcloud-scraper').call({
mode: 'searchArtists',
searchQueries: ['indie label london'],
maxResults: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("khadinakbar/soundcloud-scraper").call(run_input={
"mode": "artistTracks",
"startUrls": [{"url": "https://soundcloud.com/soundcloud-stories"}],
"maxResults": 50,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL:

curl -X POST \
"https://api.apify.com/v2/acts/khadinakbar~soundcloud-scraper/runs?token=$APIFY_TOKEN&waitForFinish=300" \
-H "Content-Type: application/json" \
-d '{"mode":"scrapeUrls","startUrls":[{"url":"https://soundcloud.com/kehlanimusic"}],"maxResults":5}'

Use with MCP and AI agents

Connect the Actor through Apify's MCP server and select khadinakbar/soundcloud-scraper. The compact input, bounded maxResults, homogeneous output, and explicit OUTPUT.outcome are designed for predictable tool calls. Agents can search a niche, inspect artist profiles, collect public contacts, or export a catalog without parsing SoundCloud pages themselves.

Pricing and cost controls

EventPrice
apify-actor-start$0.00005, platform-managed and memory-scaled
soundcloud-result$0.006 per successfully saved result

Before upstream work starts, the run logs its maximum result-event cost. maxResults, Apify's paid-dataset-item limit, and the run's maximum-total-charge setting are enforced as independent guards. Invalid, duplicate, and unwritten records are not intentionally billed. RUN_SUMMARY.chargedEventCounts reports the observed result-event count.

Reliability and honest outcomes

SoundCloud can change its public web API and rate limits. The Actor discovers the current public web client identifier at runtime, retries transient failures with backoff, restricts pagination to SoundCloud API hosts, deduplicates records, and validates the complete row before it is written. Direct supported routes can fall back automatically when the native route is unavailable.

Every terminal path writes OUTPUT and RUN_SUMMARY. A successful empty search is VALID_EMPTY; partially recovered or capped work is PARTIAL; missing owner configuration is CONFIG_ERROR; and a genuine upstream outage is UPSTREAM_FAILED. The Actor does not label outages as successful empty results.

Limits and responsible use

  • Public SoundCloud data only. The Actor does not log in, bypass access controls, read private content, or use secret-token URLs.
  • It does not download or expose audio streams. downloadable only reports SoundCloud's public metadata flag.
  • Contact emails are extracted only when the owner publicly wrote them in a profile or track description. Verify relevance and follow applicable privacy, anti-spam, and marketing laws before outreach.
  • Counts reflect SoundCloud at scrape time and can change later.
  • Very large jobs may encounter platform deadlines or SoundCloud throttling; split them into bounded runs and preserve RUN_SUMMARY for audits.
  • Use the output in accordance with SoundCloud's terms and applicable law.

Combine this Actor with Spotify All-in-One Scraper, Spotify Artist Scraper, Spotify Monthly Listeners Scraper, Spotify Play Count Scraper, YouTube Search Scraper, YouTube Channel Scraper, YouTube Trending Videos Scraper, TikTok Sound Scraper, Instagram Audio Scraper, Twitch Channel Scraper, and Social Media Sentiment Analyzer.