Kleinanzeigen Deal Radar

Sweeps one Kleinanzeigen search each run, computes the query's live median price, and delivers listings priced far below it - median and discount percent attached, optional radius around your city. Scheduled hourly it is a German-market deal alert. No seller data, no auto-buy.

$3.99 / 1,000 · Recently published - building its public record.

Run it on Apify → Free to try - runs bill per result on your own account.

What you give it

Every field is optional unless marked; sensible defaults do the rest.

FieldTypeWhat it doesDefault
searchQuery string The market slice to hunt deals in, exactly as you would type it on kleinanzeigen.de, e.g. "e-bike cube". Narrower queries give sharper medians. e-bike
categoryId integer Optional Kleinanzeigen category id to keep the median clean (e.g. 217 for bikes). -
location string Optional German city or region name, resolved via the site's own location search. -
radiusKm integer Hunt this many km around the location (up to 200, default 10). Needs a location. -
priceMinEur integer Ignore listings below this price - cuts parts-and-accessories noise from the median. -
priceMaxEur integer Ignore listings above this price. -
discountThresholdPct integer A listing must be at least this far below the query's current median to count as a deal. 30
samplePages integer Pages swept per run (1-10). Page 1 carries the new listings; extra pages steady the median. 4
stateStoreName string Named store remembering which listings were already evaluated, so scheduled runs alert each deal once. Use a different name per watched query. kleinanzeigen-deal-radar-state
resetState boolean Forget everything evaluated so far and re-baseline on this run. False
maxItems integer Upper bound on deals delivered per run. 100

What you get back

One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.

FieldTypeMeaning
listingId string Kleinanzeigen listing ID.
url string Direct link - deals go fast.
title string Listing title as posted.
description ['string', 'null'] Snippet of the listing text.
priceCents ['integer', 'null'] Asking price in euro cents.
priceType ['string', 'null'] FIXED, NEGOTIABLE or GIVEAWAY.
location ['string', 'null'] Postcode and locality as displayed.
postedAt ['string', 'null'] Posting time as displayed.
imageUrl ['string', 'null'] Main photo URL.
adType string offer or wanted; wanted ads never count as deals.
shippingPossible boolean True when shipping is offered.
queryMedianCents integer The query's current median asking price the deal was scored against.
discountPct integer How far below the median this listing is priced, percent.

Health

Recently published - building its public record. Live record, failures included: status page.

Full documentation, examples and the AI-assistant prompt live on the store page.