Classification & Staging
Genre tools
Section titled “Genre tools”get_genre_taxonomy no params
Section titled “get_genre_taxonomy ”Returns the canonical genre list and alias mappings (54 genres optimized for DJ mixing).
suggest_normalizations
Section titled “suggest_normalizations”Analyze genres in your library and suggest normalizations to the canonical taxonomy.
| Parameter | Type | Required | Description |
|---|---|---|---|
min_count | integer | Only include genres with at least this many tracks (default: 1) | |
stage_aliases | boolean | When true, auto-stage all alias normalizations in one call |
Returns three sections:
alias— known mappings from your genre strings to canonical genres (e.g., “Tech House” → “Tech House”)unknown— genres that don’t match any alias or canonical entrycanonical— genres that already match the taxonomy exactly
classify_tracks
Section titled “classify_tracks”Apply the genre decision tree to ungenred tracks using cached enrichment and audio evidence. Returns recommendations grouped by confidence level (high/medium/low/insufficient). Cache-only — never triggers external calls.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_ids | string[] | Specific track IDs to classify | |
playlist_id | string | Classify tracks in this playlist | |
max_tracks | integer | Max tracks (default: 50, max: 200) | |
offset | integer | Skip first N tracks for pagination | |
genre_overrides | array | Remap genre strings before scoring (e.g., [{"from": "Melodic House & Techno", "to": "Deep Techno"}]) | |
format | string | Output format: "full" (default), "compact", "summary", "dispatch" | |
auto_stage | string[] | Auto-stage results at these confidence levels: "high", "medium", "low", "insufficient" |
Also accepts shared search filters. Enforces has_genre=false when using filters (bypassed when track_ids are provided explicitly).
audit_genres
Section titled “audit_genres”Verify existing genre tags against enrichment and audio evidence. Returns only conflicts and manual-review tracks — confirmed tracks are counted in the summary but omitted. Cache-only.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_ids | string[] | Specific track IDs to audit | |
playlist_id | string | Audit tracks in this playlist | |
max_tracks | integer | Max tracks (default: 50, max: 200) | |
offset | integer | Skip first N tracks for pagination | |
include_confirmed | boolean | Include confirmed tracks in results (default: false) |
Also accepts shared search filters. Enforces has_genre=true when using filters (bypassed when track_ids are provided explicitly).
backfill_labels
Section titled “backfill_labels”Auto-fill empty labels from enrichment caches (Discogs, MusicBrainz, Bandcamp, Beatport). Stages non-conflicting labels automatically; reports conflicts where the current label disagrees with enrichment.
| Parameter | Type | Required | Description |
|---|---|---|---|
dry_run | boolean | Preview without staging (default: false) | |
auto_enrich | boolean | Automatically enrich uncached tracks via Bandcamp before backfilling (default: false) | |
max_conflicts | integer | Cap on conflict entries in the response (default: 50) |
backfill_years
Section titled “backfill_years”Auto-fill missing years (year=0) from file tags, folder paths, and enrichment cache (Discogs/Beatport/MusicBrainz/Bandcamp). Stages non-conflicting years automatically; reports conflicts where the current year disagrees with enrichment.
| Parameter | Type | Required | Description |
|---|---|---|---|
dry_run | boolean | Preview without staging (default: false) | |
auto_enrich | boolean | Automatically enrich remaining year-zero tracks via Bandcamp and MusicBrainz before re-scanning (default: false) |
backfill_albums
Section titled “backfill_albums”Auto-fill empty album names from file tags, folder paths, and enrichment cache (Bandcamp/Discogs). Only fills tracks with no album set. Skips noise entries where the album matches the track title or artist name.
| Parameter | Type | Required | Description |
|---|---|---|---|
dry_run | boolean | Preview without staging (default: false) | |
auto_enrich | boolean | Automatically enrich uncached tracks via Bandcamp before backfilling (default: false) |
Staging tools
Section titled “Staging tools”update_tracks ──> preview_changes ──> write_xml ──> verify in XML view ──> import │ clear_changes (undo)update_tracks
Section titled “update_tracks”Stage changes to track metadata. Held in memory until exported or cleared.
| Parameter | Type | Required | Description |
|---|---|---|---|
changes | array | yes | Array of track change objects |
Each change object:
| Field | Type | Required | Description |
|---|---|---|---|
track_id | string | yes | Track ID |
genre | string | New genre | |
comments | string | New comments | |
rating | integer | Star rating (1-5) | |
color | string | Color name | |
label | string | Record label | |
year | integer | Release year | |
album | string | Album name |
You can stage changes for multiple tracks in one call. Calling update_tracks again for the same track merges fields — only the specified fields are overwritten, existing staged fields are preserved.
preview_changes
Section titled “preview_changes”Preview all staged changes, showing a diff from the current Rekordbox state.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_ids | string[] | Filter to specific track IDs (omit to show all staged; an empty array matches nothing) | |
format | string | "full" (default) or "summary" (aggregate counts by field and genre) |
write_xml
Section titled “write_xml”Export staged changes to Rekordbox-compatible XML. Optionally includes playlists.
| Parameter | Type | Required | Description |
|---|---|---|---|
output_path | string | Output path (default: ~/reklawdbox-exports/reklawdbox-{timestamp}.xml) | |
playlists | array | Optional playlist exports | |
skip_label_gate | boolean | Set to true to acknowledge that label research is complete and bypass the label gate |
Each playlist object:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Playlist name |
track_ids | string[] | yes | Track IDs in playlist order |
clear_changes
Section titled “clear_changes”Clear staged changes, either entirely or selectively by track or field.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_ids | string[] | Track IDs to clear (omit to clear all; an empty array clears nothing) | |
fields | string[] | Fields to unstage: "genre", "comments", "rating", "color", "label", "year", "album" (omit to clear all fields on matched tracks) |