Discover/WhoSampled API
live

WhoSampled APIwhosampled.com

Access WhoSampled data via API: search tracks and artists, retrieve sample connections, artist profiles, track details, and trending Hot Samples chart.

Endpoint health
verified 2d ago
get_artist_samples_used
search
get_artist
get_track_detail
get_trending_samples
5/5 passing latest checkself-healing
Endpoints
5
Updated
22d ago

What is the WhoSampled API?

The WhoSampled API exposes 5 endpoints covering music sample connections, artist profiles, track metadata, and trending charts. The get_track_detail endpoint returns a full connections_summary array with sample, cover, and remix relationships — including the sampled track's name, artist, year, and tag. Use get_trending_samples to pull the current 24-hour Hot Samples chart without any input parameters.

Try it
Search keyword (artist or track name)
api.parse.bot/scraper/ce66773d-6622-4c56-a9ae-64dc0a37df1f/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ce66773d-6622-4c56-a9ae-64dc0a37df1f/search?query=Daft+Punk' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace whosampled-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.whosampled_api import WhoSampled, Artist, SearchResult, SearchHit, SampledTrack, Track, TrendingSample

client = WhoSampled()

# Search for an artist
result = client.searchresults.search(query="Daft Punk")
print(result.top_hit.name, result.top_hit.url)
for artist_hit in result.artists:
    print(artist_hit.name, artist_hit.url)
for track_hit in result.tracks:
    print(track_hit.name, track_hit.url)

# Fetch full artist profile via constructible
artist = client.artist(name="Daft-Punk")
print(artist.name, artist.stats_summary)

# Browse tracks that use samples (paginated)
for track in artist.samples_used(limit=5):
    print(track.name, track.url)
    for conn in track.connections:
        print(conn.action, conn.name, conn.artist, conn.year, conn.tag)

# Get a specific track detail via sub-resource
detail = artist.tracks.get(track_slug="Harder,-Better,-Faster,-Stronger")
print(detail.title, detail.artist, detail.album, detail.year)
for conn in detail.connections_summary:
    print(conn.section, conn.name, conn.artist, conn.year, conn.tag)

# Browse trending samples
for sample in client.trendingsamples.list(limit=10):
    print(sample.name, sample.url)
All endpoints · 5 totalmissing one? ·

Full-text search across artists and tracks on WhoSampled. Returns a top hit (the single best match), a list of matching artists, and a list of matching tracks. Results are ranked by relevance; no pagination.

Input
ParamTypeDescription
queryrequiredstringSearch keyword (artist or track name)
Response
{
  "type": "object",
  "fields": {
    "tracks": "array of matching tracks, each with name and url",
    "artists": "array of matching artists, each with name and url",
    "top_hit": "object or null containing name and url of the top search result"
  },
  "sample": {
    "data": {
      "tracks": [
        {
          "url": "https://www.whosampled.com/Daft-Punk/Harder,-Better,-Faster,-Stronger/",
          "name": "Harder, Better, Faster, Stronger"
        }
      ],
      "artists": [
        {
          "url": "https://www.whosampled.com/Indo-Silver-Club-(Daft-Punk-Alias)/",
          "name": "Indo Silver Club (Daft Punk Alias)"
        }
      ],
      "top_hit": {
        "url": "https://www.whosampled.com/Daft-Punk/",
        "name": "Daft Punk"
      }
    },
    "status": "success"
  }
}

About the WhoSampled API

Search and Artist Profiles

The search endpoint accepts a query string and returns three distinct result sets: a top_hit object (or null), an artists array, and a tracks array — each entry containing a name and url. The get_artist endpoint takes an artist_slug (e.g. 'Daft-Punk') and returns the artist's real_name, aliases, groups, and a stats_summary string summarizing their sample, cover, and remix counts on WhoSampled.

Track Details and Sample Connections

get_track_detail requires both an artist_slug and a track_slug that exactly matches the URL path on WhoSampled, including comma-encoded punctuation (e.g. 'Harder,-Better,-Faster,-Stronger'). It returns title, artist, album, year, and a connections_summary array. Each connection object carries section, name, artist, year, tag, and url fields — giving a complete picture of what a track sampled, what sampled it, and any cover or remix relationships.

Samples Used and Trending Charts

get_artist_samples_used returns a paginated list of tracks by an artist that incorporate samples. Each result includes a connections array with action, name, url, artist, year, and tag. An optional tag parameter filters connections by tag text, and a page parameter handles pagination. The get_trending_samples endpoint takes no inputs and returns the current Hot Samples chart as an array of objects with name and url fields reflecting the most-viewed sample connections in the last 24 hours.

Slug Format and Redirect Behavior

Both get_artist and get_track_detail depend on slugs that mirror WhoSampled's URL structure exactly. If a track_slug is malformed or incorrect, the source redirects to the artist page rather than a track page, which the API surfaces as an input_not_found-style error. Use the search endpoint first to retrieve correct url values, then extract slugs from those URLs to ensure accuracy.

Reliability & maintenanceVerified

The WhoSampled API is a managed, monitored endpoint for whosampled.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when whosampled.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official whosampled.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a music discovery tool that traces the sample lineage of any track using connections_summary fields
  • Populate an artist database with real name, aliases, group memberships, and sample stats from get_artist
  • Monitor daily trending sample connections via get_trending_samples for a music news or chart feed
  • Filter an artist's sampled works by genre or type using the tag parameter in get_artist_samples_used
  • Construct a knowledge graph of producer influences by linking connections across multiple artist slugs
  • Validate or enrich a music metadata catalog with album name and release year from get_track_detail
  • Power a 'Did you know this song sampled...' widget on a streaming or music blog platform
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does WhoSampled have an official developer API?+
WhoSampled does not offer a publicly documented developer API. There is no official API portal or listed API credentials program on whosampled.com as of this writing.
What does `get_track_detail` return, and how is the `track_slug` formatted?+
It returns the track's title, artist, album, year, and a connections_summary array. Each connection includes section (e.g. 'Contains Samples Of'), name, artist, year, tag, and url. The track_slug must exactly replicate the URL path on WhoSampled, with punctuation preserved as commas — for example, 'Harder,-Better,-Faster,-Stronger'. An incorrect slug causes a redirect to the artist page rather than returning track data.
Can I filter `get_artist_samples_used` by sample type?+
Yes. The optional tag parameter filters the returned connections array by matching against tag text (e.g. filtering to only drum breaks or vocal samples). The page parameter handles pagination for artists with large catalogs.
Does the API return full lyrics or audio previews for sampled tracks?+
No. The API covers sample connection metadata (track names, artists, years, tags, URLs), artist profile fields, and chart data. Lyrics and audio content are not part of any endpoint's response. You can fork this API on Parse and revise it to add an endpoint targeting lyric or audio data from a compatible source.
Does `get_trending_samples` return historical chart data, or only the current 24-hour window?+
It returns only the current Hot Samples chart reflecting the most-viewed connections in the last 24 hours. Historical trending data across past dates is not exposed by any endpoint. You can fork this API on Parse and revise it to add date-parameterized historical chart retrieval if WhoSampled exposes that data in its archive pages.
Page content last updated . Spec covers 5 endpoints from whosampled.com.
Related APIs in MusicSee all →
allmusic.com API
Search for music, browse artist biographies and discographies, and retrieve detailed album and song information all in one place. Discover new releases and access comprehensive metadata about artists and tracks.
traxsource.com API
Access Traxsource's music catalog to browse top tracks and singles, explore genres, search for music, and discover newly added releases and artist discographies. Get detailed information about specific tracks, releases, and artists to find the music you're looking for.
1001tracklists.com API
Access complete DJ set tracklists, chart rankings, and event metadata from 1001tracklists.com. Retrieve individual track details — including artist, title, remix information, record labels, and linked streaming URLs — for any tracklist page, and browse the latest sets or currently charting tracks across weekly, trending, and most-heard categories.
beatport.com API
Search and discover electronic music tracks, releases, and artists on Beatport while accessing detailed metadata, audio previews, genre listings, and top 10 charts. Get comprehensive information about specific tracks, releases, artists, and labels to power music discovery and curation applications.
suno.com API
Discover and browse AI-generated music on Suno by exploring trending songs, curated playlists, and personalized feeds while accessing detailed song metadata like titles, artists, streaming links, and play counts. Build music collections and stay updated on the latest AI-created tracks with comprehensive metadata for each song.
musicbrainz.org API
Search MusicBrainz for artists and recordings, then fetch detailed metadata for artists, recordings, releases, and release groups, including credits, tags/genres, and track listings.
rateyourmusic.com API
Search for albums, artists, and genres to retrieve detailed information including release dates, ratings, and chart rankings from Rate Your Music. Browse music charts and explore genre-specific data to discover trends across the catalog.
musixmatch.com API
Search for song lyrics, metadata, and translations while discovering artist profiles, discographies, and album details all in one place. Build music apps that let you retrieve complete song information, explore artist catalogs, and discover new music through curated feeds.