Zurück zum Blog

Kleinanzeigen Historie: Preise und Angebot über Monate auswerten

Kleinanzeigen Historie zeichnet seit dem 21. Oktober 2026 laufend alle neu eingestellten und erneut veröffentlichten Inserate in Deutschland auf. Per API filterst du nach Suchbegriff, Kategorie, Preis und Region und wertest Preistrends und Angebotsvolumen aus.

7 Min. Lesezeit

Kleinanzeigen zeigt immer nur, was gerade online ist. Wird ein Inserat gelöscht, sind auch seine Daten weg. Für die Frage, wie sich der Preis für gebrauchte E-Bike-Akkus in den letzten Monaten entwickelt hat oder wie viele Smartphones in einer Region angeboten werden, reicht der aktuelle Stand deshalb nicht aus.

Durch vermehrte Anfragen zu Marktanalysen stellen wir jetzt eine Historie bereit, die sich laufend aufbaut. Seit dem 21. Oktober 2026 zeichnen wir jedes Inserat auf, das irgendwo auf Kleinanzeigen in Deutschland neu erscheint oder erneut veröffentlicht wird. Das Archiv wächst jeden Tag, und mit jedem Tag lassen sich längere Zeiträume auswerten. Du fragst es über die Kleinanzeigen API ab, mit demselben API-Schlüssel wie bisher.

Was die Historie enthält

Auf Kleinanzeigen erscheinen werktags etwa 25 bis 36 neue oder hochgeschobene Inserate pro Sekunde, so haben wir es gemessen. Im Monat kommen so Millionen von Beobachtungen zusammen. Jede Beobachtung hält fest, wie ein Inserat zu dem Zeitpunkt aussah, als wir es gesehen haben.

Eine Beobachtung enthält:

  • Inserat: ad_id, listing_key, Titel und Attribute wie Zustand (details)
  • Preis: Betrag, Preisart (price_type) und ob er verhandelbar ist
  • Kategorie: ID, Name und übergeordnete Kategorie
  • Standort: Postleitzahl, Stadt und Bundesland
  • Anbieter und Optionen: poster_type (privat oder gewerblich), Versand möglich, Direkt kaufen möglich
  • Zeitpunkte: published_at (Veröffentlichung auf Kleinanzeigen, ändert sich bei erneuter Veröffentlichung) und observed_at (unser Erfassungszeitpunkt)

Beschreibungstexte, Bilder, Verkäufername und Verkäufer-ID, das Enddatum eines Inserats und ein Verkauft-Status gehören nicht dazu. Daten aus der Zeit vor dem 21. Oktober 2026 gibt es nicht.

So fragst du die Historie ab

Der Endpunkt heißt GET /api/v2/kleinanzeigen/history. Du authentifizierst dich im Header klaz_key. Alle Beobachtungen zu „Bosch PowerTube 625“ seit dem Start holst du so:

curl "https://api.kleinanzeigen-agent.de/api/v2/kleinanzeigen/history?q=bosch%20powertube%20625&from=2026-10-21&size=100" \
  -H "klaz_key: klaz_live_..."

Eine Beobachtung sieht so aus:

{
  "ad_id": "1234567890",
  "listing_key": "a1b2c3d4e5",
  "title": "Bosch PowerTube 625 Akku",
  "price": { "amount": 290, "price_type": "NEGOTIABLE", "negotiable": true },
  "category": { "id": "217", "name": "Fahrräder & Zubehör", "parent_id": "210" },
  "location": { "zip": "10115", "city": "Berlin", "state": "Berlin" },
  "poster_type": "PRIVATE",
  "shipping_available": true,
  "buy_now_available": false,
  "details": { "Zustand": "Gut" },
  "published_at": "2026-10-22T08:14:00Z",
  "observed_at": "2026-10-22T08:15:12Z"
}

Die Ergebnisse sind nach observed_at absteigend sortiert, die neueste Beobachtung steht also oben.

Filter

ParameterWirkung
qSuchbegriff. Alle Wörter müssen im Titel vorkommen, Groß- und Kleinschreibung ist egal.
category_idKategorie oder übergeordnete Kategorie
poster_typePRIVATE oder COMMERCIAL
min_price, max_pricePreisspanne
zipPostleitzahl als Präfix, zum Beispiel 10 für Berlin
from, toZeitraum als ISO-Datum. Standard sind die letzten 30 Tage, maximal 366 Tage pro Anfrage.
sizeTreffer pro Seite, bis 1.000
cursorWert aus data.meta.next_cursor für die nächste Seite

Solange data.meta.next_cursor gesetzt ist, übergibst du ihn als cursor und holst die nächste Seite. Du kannst die Historie auch in der Sandbox ausprobieren und dir dort den passenden cURL-Befehl erzeugen lassen.

Gleiche Inserate zusammenführen: listing_key

Wird ein Inserat erneut veröffentlicht, taucht es als neue Beobachtung auf, oft mit einem neuen Preis. Genau so werden Preisänderungen über die Zeit sichtbar.

Um die Beobachtungen eines Inserats zusammenzufassen, gruppierst du nach listing_key. Der Wert bleibt bei einer erneuten Veröffentlichung gleich. Die ad_id eignet sich dafür nicht, denn Kleinanzeigen vergibt IDs später für ganz andere Inserate noch einmal. Der listing_key trennt solche wiederverwendeten IDs sauber auseinander. Ändert ein Verkäufer den Titel, beginnt ein neuer listing_key.

Ein kleines Beispiel, das die Preisentwicklung pro Inserat ausgibt:

const url = new URL("https://api.kleinanzeigen-agent.de/api/v2/kleinanzeigen/history");
url.search = new URLSearchParams({
  q: "bosch powertube 625",
  from: "2026-10-21",
  size: "100",
}).toString();

const response = await fetch(url, { headers: { klaz_key: process.env.KLAZ_KEY } });
const { data } = await response.json();

const byListing = Map.groupBy(data.ads, (row) => row.listing_key);
for (const [key, rows] of byListing) {
  const prices = rows.map((row) => row.price?.amount).join(" → ");
  console.log(`${key}: ${prices}`);
}

Was du damit auswertest

  • Preistrends für gebrauchte Ware: Wie entwickeln sich Preise für E-Bike-Akkus, Smartphones oder Werkzeug über Wochen und Monate? Mit q, category_id und einem langen Zeitraum bekommst du die Beobachtungen für eine Zeitreihe.
  • Angebotsvolumen je Region und Kategorie: Wie viele Inserate erscheinen pro Woche in einem Postleitzahlbereich? Steigt das Angebot vor dem Winter oder nach einem Produktlaunch?
  • Anteil von Privat- und Gewerbeanbietern: Mit poster_type vergleichst du, wie sich der Markt zwischen Privatinseraten und gewerblichen Angeboten verteilt.
  • Eigene Dashboards: Du holst die Daten regelmäßig ab, speicherst die Kennzahlen in deiner Datenbank und zeigst sie in deinem Reporting.

Was es kostet

Die Abrechnung richtet sich nach dem Zeitraum, den du anfragst: 20 Credits je angefangene 30 Tage.

ZeitraumCredits
30 Tage20
90 Tage60
366 Tage260

Das gilt für die erste Seite. Jede Folgeseite mit cursor kostet 20 Credits. Fehlgeschlagene Anfragen kosten nichts. Credits bekommst du über deinen Plan oder über Creditpakete, alle Preise findest du unter Preise.

Nutzung und Grenzen

Du darfst die Daten für interne Marktanalysen und Preisentscheidungen nutzen. Der Weiterverkauf als Rohdaten an Dritte ist nicht erlaubt, die Einzelheiten stehen in unseren AGB unter §5.

Die Historie bildet ab, was wir beobachten, und beginnt am 21. Oktober 2026. Bei kurzen Störungen können einzelne Inserate fehlen. Je länger sie läuft, desto mehr Zeit deckt sie ab.

Jetzt starten

Eine Übersicht findest du auf der Seite Kleinanzeigen Historie. Alle Parameter und Antwortfelder stehen in der Dokumentation, und in der Sandbox probierst du die erste Abfrage direkt im Browser aus.

Fehlt dir ein Filter oder ein Feld für deine Auswertung, schreib uns über /app/support.