Search tracks
search_tracksSearch your Engine DJ library by text, tempo, key, rating, play history, and analysis flags to find tracks matching specific criteria.
Instructions
Search the Engine DJ library by text, tempo, key, rating, play history and analysis flags. Set include_total for a count alongside the page: it is capped at 1000, and a capped result comes back as total: 1000 with total_capped: true -- treat that as 'at least 1000', never as an exact count. flags.has_cues means a hot cue is actually set (the blob is decoded when the index is built), not merely that Engine analysed the track; flags.has_beatgrid means a beatData blob is present. playlist: {id} or {name} narrows the search to one playlist -- results still come back by relevance or id, not in playlist order; use get_playlist_tracks for that. With more than one library connected, pass library (a uuid or path from list_libraries, either the ~/... form or the absolute one) to choose which one; the default is the supported library with the most tracks.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| bpm | No | ||
| key | No | ||
| added | No | ||
| flags | No | ||
| limit | No | ||
| cursor | No | ||
| fields | No | ||
| played | No | ||
| rating | No | ||
| library | No | Which library to use: either the uuid or the path reported by list_libraries (the reported ~/... form is accepted, as is the absolute path). Omit it to use the supported library holding the most tracks. A READ may always omit it. A WRITE may omit it only when a single supported library is connected: with two or more, a write refuses with ambiguous_library listing them, since the choice decides which disk changes; ask the user which, then pass it here. A library copied onto another drive keeps its uuid, so a uuid can name two connected libraries: a write naming such a uuid refuses with ambiguous_library as well. Pass the path to write to one of them. | |
| playlist | No | ||
| redact_paths | No | ||
| include_total | No |