1001Tracklists API1001tracklists.com ↗
Access DJ set tracklists, chart rankings, artist profiles, and track metadata from 1001tracklists.com via 14 structured API endpoints.
What is the 1001Tracklists API?
The 1001tracklists.com API exposes 14 endpoints covering DJ set tracklists, chart rankings, artist profiles, and individual track metadata. Call get_tracklist with any 1001tracklists.com URL to receive the full ordered track listing including artist, title, label, mix/remix info, cue timestamps in seconds, and linked streaming URLs alongside event-level metadata such as lineup and date.
curl -X GET 'https://api.parse.bot/scraper/b93889bc-63b3-4524-8ff6-be513ab4401a/get_tracklist?url=https%3A%2F%2Fwww.1001tracklists.com%2Ftracklist%2F24ms87mk%2Fchiptune-retrowave-124-2026-10-06.html' \ -H 'X-API-Key: $PARSE_API_KEY'
Get detailed tracklist from a 1001tracklists URL. Returns event metadata (name, date, lineup) and individual track details including artist, title, label, mix information, cue times, and per-track media links. The links object on each track holds, where the site lists them, a spotify track URL (open.spotify.com/track/<id>), a beatport track URL (www.beatport.com/track/<slug>/<id>; when the store page slug is not exposed the form www.beatport.com/track/-/<id> is emitted), a soundcloud player URL and an apple_music embed URL; tracks without any listed media have an empty links object. Link resolution costs one extra site request per available source per track, issued concurrently in the order spotify, beatport, soundcloud, apple_music (a Spotify lookup also yields the Beatport link), within a fixed per-call time budget: on very long sets (100+ tracks) the lowest-priority lookups may be skipped, in which case links_complete is false and links_skipped counts the available links that were not resolved. Restricting link_sources (e.g. to spotify,beatport, or none) makes long sets both cheaper and complete. A URL fragment (#...) is ignored. Requires a full tracklist page URL.
| Param | Type | Description |
|---|---|---|
| urlrequired | string | The full URL of a tracklist page on 1001tracklists.com (e.g. https://www.1001tracklists.com/tracklist/2hsp3419/hardwell-hardwell-on-air-532-2026-06-05.html) |
| link_sources | string | Comma-separated list of the link sources to resolve per track: any of spotify, beatport, soundcloud, apple_music, or the word none to skip link resolution entirely. Omitted means all four. Any other value is rejected. |
{
"type": "object",
"fields": {
"url": "string, the tracklist page URL (fragment removed)",
"event": "object containing name (string), date (string, optional), and lineup (array of artist name strings)",
"tracks": "array of track objects with artist, title, label, mix, links (object keyed by source: spotify, beatport, soundcloud, apple_music; each a URL string, key absent when the site lists no such link or the lookup was skipped), cue_seconds (integer or null, timecode in seconds within the set), and order",
"links_skipped": "integer, number of available link lookups skipped because the per-call time budget was exhausted (0 when links_complete is true)",
"links_complete": "boolean, true when every available link lookup for the requested sources was performed"
},
"sample": {
"data": {
"url": "https://www.1001tracklists.com/tracklist/1h63vqpk/tiesto-prismatic-036-2026-09-05.html",
"event": {
"name": "Tiësto-Prismatic036 2026-09-05",
"lineup": []
},
"tracks": [
{
"label": "INSOMNIAC",
"links": {
"spotify": "https://open.spotify.com/track/3W2x9gCt7SbycNDCdP3IyB",
"beatport": "https://www.beatport.com/track/damaged/30302997",
"soundcloud": "https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/2379925716&auto_play=true&show_artwork=true&color=%23ff5500&hide_related=true&show_comments=false&show_user=true&show_reposts=false&show_teaser=false&visual=true",
"apple_music": "https://embed.music.apple.com/us/album/damaged/6801221303?i=6801221306&app=music&at=1000lwkw"
},
"order": 1,
"title": "Eli Brown - Damaged",
"artist": "Eli Brown",
"cue_seconds": 32
},
{
"links": {},
"order": 3,
"title": "GRIM - The More You Lie",
"artist": "GRIM (UK)",
"cue_seconds": 331
}
],
"links_skipped": 0,
"links_complete": true
},
"status": "success"
}
}About the 1001Tracklists API
Tracklist and Set Data
The core endpoint, get_tracklist, accepts a full 1001tracklists.com tracklist page URL and returns an event object (name, date, lineup array) plus a tracks array. Each track carries artist, title, label, mix, cue_seconds (position within the set as an integer), and links to external streaming sources. For bulk work, get_tracklists_batch accepts a JSON array of URLs and returns the same per-tracklist shape for each in a single call.
Browsing and Discovery
list_latest paginates recently published tracklists sorted by date descending, with optional date_from/date_to range filters and an include_tracks flag that expands each summary into a full event-plus-tracks object. list_homepage_sets collects the complete homepage feed (typically 200+ items) before applying genre and date filters. list_homepage_sets_light retrieves the same feed at lower cost — returning only title, url, date, and genres per set without fetching individual tracklist pages. list_recent_sets guarantees date-window completeness via the coverage_complete boolean, which turns true when a set older than date_from is encountered during pagination. list_mixes pages through yearly archives (34 pages per year) returning mix_title, dj_name, and mix_date. list_genre_sets filters by hyphenated genre slug (e.g. progressive-house, techno) and returns up to 30 sets per page with genre tag arrays.
Artists, Tracks, and Charts
get_artist looks up a DJ by name or profile URL and returns an artist object with track_count, tracklist_count, and country, plus a top_tracks array sorted by plays descending and a tracklists array of recent sets. get_track retrieves metadata for a single track URL, including genre, label, release_date, and total_plays (total tracklist appearances). get_track_appearances paginates through every DJ set containing a specific track — identifiable by track_url or artist+title pair — and exposes coverage_complete and pages_scraped for auditing completeness. list_charts returns ranked tracks for weekly, trending, or mostheard chart types, each item carrying a name (artist – title format) and url. search_tracklists accepts a title string plus an optional uploader name and returns up to 10 matching tracklist results. find_by_media_url resolves a SoundCloud or YouTube URL to its corresponding 1001tracklists.com tracklist page.
Pagination and Coverage Notes
Most listing endpoints are 1-indexed via a page parameter and return up to 30 items per upstream page. list_homepage_sets and list_homepage_sets_light apply date and genre filters after collecting the full feed, so total_collected and listing_pages_fetched fields indicate how much was gathered before filtering. list_recent_sets returns oldest_date_seen to help verify the crawl crossed the requested date_from boundary.
The 1001Tracklists API is a managed, monitored endpoint for 1001tracklists.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 1001tracklists.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 1001tracklists.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a historical archive of DJ sets for a specific artist using
get_artisttracklists andget_tracklistcue-time data. - Track which DJs are playing a specific track most often by querying
get_track_appearanceswith date range filters. - Monitor weekly and trending chart movements from
list_chartsto identify breakout tracks before mainstream coverage. - Aggregate genre-filtered set listings by date window using
list_genre_setsandlist_recent_setsfor music analysis datasets. - Resolve a YouTube or SoundCloud upload to its official tracklist using
find_by_media_url. - Compare an artist's most-played tracks over time by combining
get_artisttop_tracks withget_trackrelease_date and total_plays. - Hydrate a bulk list of tracklist URLs in one call using
get_tracklists_batchto populate a music database efficiently.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does 1001tracklists.com have an official developer API?+
What does `get_track_appearances` return and how complete is its coverage?+
get_track_appearances paginates through every DJ set referencing a given track and returns an appearances array where each entry includes set_id, dj_name, dj_id, and set URL. The coverage_complete boolean is true when pagination exhausted all pages or crossed the date_from boundary. pages_scraped and oldest_date_seen let you verify how far back the crawl reached.What is the difference between `list_homepage_sets` and `list_homepage_sets_light`?+
list_homepage_sets_light fetches only summary data (title, URL, date, genres) for each set without loading individual tracklist pages, making it faster and lower-cost. list_homepage_sets can optionally load the full track listing for each set when include_tracks is true, at the cost of additional requests per set. Use the light variant when you need the feed index and the full variant when you need cue times and track details.Does the API return set audio files or stream URLs directly?+
Can I retrieve listener counts, follower counts, or social stats for a DJ?+
get_artist returns track_count, tracklist_count, and country, but no follower or social engagement figures. You can fork this API on Parse and revise it to add an endpoint that surfaces additional profile statistics if they become available on the artist page.