Skip to content

Library & Data


Returns a library summary: track count, genre distribution, average BPM, key distribution, and rating breakdown.


Search and filter tracks. All parameters are optional — combine any set of shared search filters with the local options below.

Parameter Type Required Description
playlist string Filter by playlist ID
include_samples boolean Include Rekordbox factory samples (default: false)
limit integer Max results (default: 50, max: 200)
offset integer Skip first N results for pagination

Factory sample tracks are excluded by default. Set include_samples: true to include them.


Get full details for a single track by ID. Returns Rekordbox metadata only — use resolve_track_data for enrichment and audio analysis data.

Parameter Type Required Description
track_id string yes Track ID

List all playlists with track counts. Returns the full playlist tree including folders and smart playlists.


List tracks in a specific playlist, in playlist order.

Parameter Type Required Description
playlist_id string yes Playlist ID
limit integer Max results (default: 200)


List recent DJ sessions from Rekordbox play history. Returns session ID, name, date, track count, and estimated wall-clock duration.

Parameter Type Required Description
limit integer Max sessions to return (default: 20, max: 100)
after string Only sessions on or after this ISO date (e.g., "2024-01-01")

Duration is estimated from the timestamp span of tracks in the session plus the last track’s length. Returns null for single-track sessions.


Get the ordered track list for a specific DJ session. Each track includes a played_at timestamp showing when it was loaded during the session.

Parameter Type Required Description
session_id string yes Session ID from get_sessions

Get per-track play statistics scoped by shared search filters. Shows play counts, last played dates, and which sessions each track appeared in.

Parameter Type Required Description
include_unplayed boolean Also return tracks matching filters that have never been played (default: false)
limit integer Max results (default: 200, max: 500)

Results are ordered by play count descending. When include_unplayed is true, unplayed tracks are appended after played tracks (ordered by title).


Return locally-cached data without external API calls or analysis.


Return Rekordbox metadata, cached Discogs enrichment, current Stratum and optional current Essentia analysis, staged changes, and genre taxonomy mappings for one track. It does not include cached Bandcamp or MusicBrainz payloads.

Parameter Type Required Description
track_id string yes Track ID

Batch version of resolve_track_data, with the same provider and freshness boundaries. Accepts shared search filters to scope which tracks to resolve.

Parameter Type Required Values Description
track_ids string[] Specific track IDs (highest priority selector)
playlist_id string Resolve tracks in this playlist
max_tracks integer Max tracks to return (default: 50)
format string ["full", "classification"] "full" (default) or "classification"

The "classification" format returns a compact payload (~400-500 bytes/track vs 2-4KB) with only genre classification fields: mapped Discogs genres/styles, audio features, and completeness flags.


Report cache completeness for a track scope. Accepts shared search filters.

Parameter Type Required Values Description
track_ids string[] Specific track IDs
playlist_id string Check tracks in this playlist
max_tracks integer Max tracks to check (default: unbounded)

Returns three raw backend/provider coverage entries for the selected scope:

Entry What coverage means
stratum_dsp Fresh built-in audio-analysis cache rows
essentia Fresh optional Essentia cache rows, plus whether Essentia is installed
discogs Exact album-aware searched, has_result, matched_unmapped, and usable_genre counts using the classifier’s taxonomy mapping

The additive classification_readiness block reports Full and Degraded track counts, deterministic missing/invalid Stratum and Essentia reasons, and compatible detected Essentia runtime availability. Full requires fresh, valid rows from both analyzers; Degraded results are capped at Low, require review, and never auto-stage. essentia_runtime_available means any compatible detected runtime, including a valid expert override. Raw current-row counts remain separate from typed readiness so invalid payloads remain visible. A missing readiness reason conflates a row that was never analyzed with one omitted by the freshness query because its schema or exact file/grid identity is stale; refresh analysis to resolve either case.

Bandcamp and MusicBrainz are targeted metadata paths and are not reported by this tool.

The gap counts use the same scope: no_audio_analysis means no fresh Stratum row, no_enrichment means Discogs has no usable mapped genre, and no_data_at_all means neither audio analyzer nor Discogs has usable data. gaps.discogs separates not_searched, searched_no_match, and matched_unmapped work.