Die Preiselbeeren und Zwiebeln mit 300 ml Wasser in einem großen Topf zum Kochen bringen, sanft köcheln lassen, bis die Beeren aufgeplatzt und die Zwiebeln weich sind. Die Preiselbeer-Zwiebel-Masse durch ein Passiergerät pressen oder durch ein feines Kunststoffsieb streichen.
Das Püree mit Essig, Zucker und Salz in den ausgespülten Topf zurückgeben. Die Gewürze in ein Säckchen einbinden und zu der Masse in den Topf geben.
Das cremige Masse unter Rühren langsam erhitzen, bis der Zucker aufgelöst ist. Die Temperatur erhöhen und die Mischung zum Kochen bringen, dann etwa 15 Minuten sanft köcheln lassen, bis die Sauce eine dickflüssige Konsistenz annimmt und sich keine Flüssigkeit mehr absetzt.
Das Gewürzsäckchen herausnehmen und den Preiselbeer-Ketchup in vorgewärmte Gläser füllen. Diese fest verschließen und bis zum Öffnen 2-3 Wochen kühl aufbewahren.