MixesDB APImixesdb.com ↗
Access DJ mix tracklists, search the MixesDB database, and list recently added mixes. Structured track data with artist, title, remix, and label fields.
What is the MixesDB API?
The MixesDB API gives programmatic access to the MixesDB wiki database across 3 endpoints, covering tracklist retrieval, full-text search, and a recent-mixes feed. The get_tracklist endpoint returns a fully parsed tracklist for any mix page — each track broken into position, artist, title, remix name, and record label — alongside mix metadata like date, event, artists, and wiki categories.
curl -X GET 'https://api.parse.bot/scraper/00ec0ca7-dc39-4d90-acdc-fef20881bd54/get_tracklist?url=https%3A%2F%2Fwww.mixesdb.com%2Fw%2F2026-07-19_-_Charlotte_de_Witte_%40_Tomorrowland_-_Consiencia' \ -H 'X-API-Key: $PARSE_API_KEY'
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 mixesdb-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.
"""Walkthrough: MixesDB SDK — bounded, re-runnable; every call capped."""
from parse_apis.mixesdb_com_api import MixesDB, MixNotFound
client = MixesDB()
# Search for mixes by an artist
for result in client.search_results.search(query="Boiler Room", limit=3):
print(result.title, result.url)
# Get full tracklist from a known mix URL
try:
mix = client.mixes.get(url="https://www.mixesdb.com/w/2026-07-19_-_Charlotte_de_Witte_@_Tomorrowland_-_Consiencia")
print(mix.title, mix.date, mix.event)
for track in mix.tracklist[:3]:
print(track.index, track.artist, track.title, track.label)
except MixNotFound as e:
print("mix gone:", e.url)
# List recently added or updated mixes
for recent in client.recent_mixes.list(limit=3):
print(recent.title, recent.timestamp, recent.type)
print("exercised: mixes.get / search_results.search / recent_mixes.list")
Retrieve the full tracklist and metadata for a mix page. Each track entry is parsed into position/cue, artist, title, remix/mix name, and record label. Unknown or ID entries appear as explicit placeholders with null fields and a raw marker. The tracklist completeness status reflects the wiki's own annotation (complete, incomplete, or null when unmarked).
| Param | Type | Description |
|---|---|---|
| urlrequired | string | Full MixesDB mix page URL (e.g. https://www.mixesdb.com/w/2026-07-19_-_Charlotte_de_Witte_@_Tomorrowland_-_Consiencia). |
{
"type": "object",
"fields": {
"date": "mix date in YYYY-MM-DD or partial format",
"show": "show/episode subtitle, null if not present",
"event": "event or venue name, null if not in title",
"title": "full page title string",
"artists": "array of artist name strings",
"tracklist": "ordered array of track entry objects with position, artist, title, remix, label, raw, and index",
"categories": "array of visible wiki category strings",
"tracklist_completeness": "completeness status (complete, incomplete, or null)"
},
"sample": {
"data": {
"date": "2026-07-19",
"show": "Consiencia",
"event": "Tomorrowland",
"title": "2026-07-19 - Charlotte de Witte @ Tomorrowland - Consiencia",
"artists": [
"Charlotte de Witte"
],
"tracklist": [
{
"raw": null,
"index": 1,
"label": "Ninetozero",
"remix": "Charlotte de Witte Acid Code",
"title": "The Techno Code",
"artist": "Enrico Sangiuliano",
"position": "00"
},
{
"raw": "?",
"index": 2,
"label": null,
"remix": null,
"title": null,
"artist": null,
"position": "??"
}
],
"categories": [
"2026",
"Charlotte de Witte",
"Tomorrowland",
"Techno",
"Psytrance",
"Acid Techno",
"Tracklist: incomplete"
],
"tracklist_completeness": "incomplete"
},
"status": "success"
}
}About the MixesDB API
Tracklist Data
The get_tracklist endpoint accepts a full MixesDB page URL and returns structured metadata plus an ordered array of track objects. Each track entry includes position, artist, title, remix, label, raw (the original unparsed string), and a sequential index. Tracks that are unknown or unidentified appear as explicit placeholder entries with null fields and a raw marker, so gaps in a tracklist are visible rather than silently dropped. The tracklist_completeness field signals whether the community has marked the list as complete, incomplete, or left it unlabeled (null). Top-level fields also include date (YYYY-MM-DD or partial), show, event, artists array, and categories.
Search
The search endpoint runs a full-text query across all mix page content and titles. Pass a query string and an optional limit (1–50). Each result object contains title, url, pageid, snippet (a text excerpt showing the match in context), and timestamp. The total_hits field tells you how many pages matched in total, not just the page you received, which is useful for gauging coverage before building any downstream index.
Recent Mixes Feed
The latest endpoint returns recently added or updated mix pages, deduplicated so only the most recent edit per page appears. Each entry in the mixes array includes title, url, pageid, timestamp, and a type field that distinguishes new pages from edits. The optional limit parameter (1–50) controls how many unique pages come back, making it straightforward to build a polling loop for new content.
The MixesDB API is a managed, monitored endpoint for mixesdb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mixesdb.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 mixesdb.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 tracklist lookup tool where DJs or fans paste a MixesDB URL and get a formatted track-by-track breakdown with label credits
- Index mix pages by artist using the
artistsfield fromget_tracklistto power an artist-filtered mix browser - Track how often a specific track or label appears across mixes by running repeated
searchqueries and aggregating snippet results - Monitor newly published mixes using the
latestendpoint to alert subscribers when a followed DJ's set is added - Identify incomplete tracklists via the
tracklist_completenessfield to prioritize community research or crowdsourced data filling - Correlate mix dates and events using
dateandeventfields to map a DJ's festival and tour history - Build a record label analytics dashboard by extracting the
labelfield across many mix tracklists
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does MixesDB have an official developer API?+
What does the `get_tracklist` endpoint return for tracks it cannot identify?+
tracklist array. The artist, title, remix, and label fields are set to null, but the raw field preserves the original string from the page and a marker flags it as unresolved. The entry still has a position and index, so the ordering of the full set is never broken.Does the API expose user accounts, ratings, or comments on mixes?+
Can I paginate through search results beyond the first page?+
search endpoint returns up to 50 results per call via the limit parameter and reports total_hits for the full match count, but there is no offset or cursor parameter to retrieve subsequent pages. You can fork the API on Parse and revise it to add pagination support.How complete is MixesDB's tracklist coverage for older or obscure mixes?+
tracklist_completeness field on get_tracklist reflects whatever status the community has assigned — values are complete, incomplete, or null when unassigned. Many older or less-documented mixes will have partially filled tracklists or numerous placeholder entries.