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 filters.

ParameterTypeRequiredDescription
querystringFree-text search matching title or artist
artiststringFilter by artist (partial match)
genrestringFilter by genre (partial match)
rating_minintegerMinimum star rating (1-5)
bpm_minnumberMinimum BPM
bpm_maxnumberMaximum BPM
keystringFilter by musical key (e.g., "Am")
has_genrebooleanFilter by whether track has a genre set
has_labelbooleanFilter by whether track has a label set
year_zerobooleanFilter to tracks with year = 0 (unset)
labelstringFilter by label (partial match)
pathstringFilter by file path/folder (substring)
path_prefixstringRequire file path starts with this prefix
added_afterstringISO date — tracks added on or after
added_beforestringISO date — tracks added on or before
playliststringFilter by playlist ID
include_samplesbooleanInclude Rekordbox factory samples (default: false)
limitintegerMax results (default: 50, max: 200)
offsetintegerSkip 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.

ParameterTypeRequiredDescription
track_idstringyesTrack 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.

ParameterTypeRequiredDescription
playlist_idstringyesPlaylist ID
limitintegerMax results (default: 200)


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

ParameterTypeRequiredDescription
limitintegerMax sessions to return (default: 20, max: 100)
afterstringOnly 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.

ParameterTypeRequiredDescription
session_idstringyesSession 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.

ParameterTypeRequiredDescription
include_unplayedbooleanAlso return tracks matching filters that have never been played (default: false)
limitintegerMax 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 all cached enrichment, audio analysis, and staged changes for one track.

ParameterTypeRequiredDescription
track_idstringyesTrack ID

Batch version of resolve_track_data. Accepts shared search filters to scope which tracks to resolve.

ParameterTypeRequiredDescription
track_idsstring[]Specific track IDs (highest priority selector)
playlist_idstringResolve tracks in this playlist
max_tracksintegerMax tracks to return (default: 50)
formatstring"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, Beatport genre, audio features, and completeness flags.


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

ParameterTypeRequiredDescription
track_idsstring[]Specific track IDs
playlist_idstringCheck tracks in this playlist
max_tracksintegerMax tracks to check (default: unbounded)

Returns per-provider cached counts/percentages and gap counts.