SoundCloud Artist Tracks API
Artist track list — opaque cursor, native-window when the api-v2 page ends (2 credits; empty is 0).
Pass a SoundCloud artist URL or username and get that artist's tracks as clean JSON. Each track row matches /soundcloud/track (title, plays/likes/reposts/comments/downloads, license, genre/tags[], artwork, streamable/downloadable, isrc/releaseDate when exposed) — without repeating artist{} on every row. The envelope names the yield: requested, listingHits (rows SoundCloud sent this page), hydrateFailures (received rows that did not become a track), totalReturned, nextCursor, hasMore, and truncatedReason=platform-page | catalog-end | native-window | extended-window. SoundCloud linked_partitioning can return listingHits < requested with hasMore still true — that is a platform page, not a drop. nextCursor is emitted only when the next native page has rows — a token is never issued and then refused. The public api-v2 window usually ends before the artist's full catalogue: that stop is native-window (hasMore false), not a 400. catalog-end is only when SoundCloud itself omits next_href on a native page. extended-window is the first-page fallback path (no cursor). Empty pages (native-window or extended-window with 0 rows) bill 0 credits. Top-level artistId + artist{id,handle,name,url,avatar,followers,verified} join to /soundcloud/artist; artistUrl is the profile URL. nextCursor is an opaque token (not a SoundCloud api-v2 URL). Flat 2 credits when tracks return (limit default 20, max 100).
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/soundcloud/artist-tracks
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
SoundCloud artist profile URL or username. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
Max items to return (default 20, max 100). Flat 2 credits per call.
Opaque pagination cursor from the previous nextCursor. Leave empty for the first page. Do not edit or invent values.
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.