Kleinanzeigen API

The Kleinanzeigen API searches Germany's biggest classifieds site and returns one row per ad — title, ad URL, the price as shown, the location with its postal code, the listing date, a description excerpt, a thumbnail and whether the ad is a promoted top ad.

German classifieds prices are their own dialect, and the collector keeps that intact. price preserves the raw text — including the negotiable VB marker and the Zu verschenken (free) label — while price_value holds the parsed number, or null when the price is a giveaway or otherwise non-numeric. Nothing is invented to fill a blank.

$0.001 per delivered ad, up to 100 ads per run. Nothing delivered means nothing charged.

How the Kleinanzeigen API works

You post a query — a plain German search term such as fahrrad or iphone 15 — and the collector runs it against Kleinanzeigen and pages through the results over the TLS tier from a German residential exit.

Every ad card becomes a flat row. Two behaviours are worth understanding before you sort on price:

Working the classifieds angle more broadly? The Autotrader collector covers the US car-listings side of the same job with a comparable row shape.

Inputs

The only required input is query, the search term. Because Kleinanzeigen is a single national marketplace, there is no site or country selector — the request always exits from a German IP. max_results caps the run at up to 100 ads and defaults to 25, so a quick check stays cheap and a full sweep is one parameter away.

What one ad looks like

Each ad is one flat row. price is the string as displayed and price_value the parsed number, with negotiable flagging the VB ads. location carries the postal code and city together while zip isolates the German postcode for regional filtering. is_topad marks promoted listings so you can separate paid placement from organic supply, and date preserves the listing date exactly as shown.

What the Kleinanzeigen API costs

$0.001 per delivered ad (

per 1,000). Nothing delivered means nothing charged, and the $2 monthly free credit covers roughly 2,000 ads here. Volume tiers take up to 30% off.

$0.001 per delivered ad,

per 1,000. Monitoring 30,000 ads across a set of search terms daily costs $30 a run at list price, and drops on a volume tier. Billing is per delivered row, so a term that has gone quiet returns fewer ads and a smaller charge rather than a fixed fee.

The free monthly allowance is $2 of usage — about 2,000 ads at this price — with no card on file. GET /v1/scraper/collectors reports the precise per-row price your key is charged.

Kleinanzeigen API vs an official integration

There is no public Kleinanzeigen API to build on. The only sanctioned programmatic route is a commercial partner or professional-seller integration aimed at dealers posting inventory, not a search endpoint the public can query — so a team that simply wants to read what is listed has no official door to knock on.

That absence is exactly why this collector exists. It reads the same public results a shopper sees, keyed off a plain search term and authenticated with your QuantumProxies key alone. You get the fields on the ad card rather than a back-office feed, which is precisely what price-monitoring and supply-analysis work needs.

Versus scraping Kleinanzeigen yourself

Pulling one Kleinanzeigen results page is simple. Running it continuously is where the effort concentrates:

  • Bot defences bite fast. Requests from cloud IPs are challenged or rate-limited quickly, and without German residential exits a run stalls after the first pages.
  • German price grammar. Dot thousands separators, the trailing euro sign, the VB suffix and the Zu verschenken label all have to be parsed correctly, or your numbers come out wrong in subtle ways.
  • Cards and top-ads shift. Promoted ads are interleaved with organic ones and the card markup changes over time, so a naive parser miscounts supply.

Handing it over gives you a typed schema and per-row billing. If you would rather keep your own fetcher and just need reliable German exits under it, the residential proxies are the same network this collector uses.

What people build with it

Second-hand price benchmarking

Search a model across the country and average price_value while excluding the negotiable and free listings, to establish what an item actually sells for.

Arbitrage and resale sourcing

Filter by zip and listing date to catch under-priced fresh ads in a region before other buyers, using negotiable to spot room to haggle.

Regional supply and demand tracking

Group ads by zip to map where a category is oversupplied versus scarce, and watch is_topad to gauge how much sellers are paying to stand out.

Limits, scope and the legal bit

One run returns up to 100 ads per search; wider coverage means more search terms or more runs rather than one bottomless page. Runs are independent and parallelise up to your plan's rate limit — 60 requests a minute on pay-as-you-go, up to 1,200 on the top tier. This collector reads the search result card; it does not open each ad's detail page for the full gallery or the seller's contact details.

Legally: classified ads are shown publicly to every visitor, and reading public data is generally lawful in Germany, but Kleinanzeigen's terms restrict automated access, GDPR applies to any personal data an ad contains, and your downstream use has its own obligations. This is not legal advice — take advice for your specific case.

FAQ

Is there a free Kleinanzeigen API?

There is no public Kleinanzeigen API, free or paid — only a commercial integration for professional sellers. This collector reads the public search results instead, and includes a $2 monthly allowance, roughly 2,000 ads at $0.001 each, before you pay anything.

Do I need a Kleinanzeigen API key or account?

No. There is no Kleinanzeigen developer account or credential involved, because none is offered for search. You authenticate with your QuantumProxies key and the collector reads the public results directly.

How is the negotiable VB price handled?

The raw text, including the VB marker, stays in the price field, and a separate negotiable boolean is set to true. The parsed number lands in price_value, which is null for free Zu verschenken listings and other non-numeric prices.

Can I limit results to one German region?

The collector returns the national results for your query with each ad's zip and location, so you filter to a region on the returned zip field. Region-scoped querying is done by post-filtering rather than a location input.

Related scrapers