Kleinanzeigen.de Scraper | Anzeigen: Euro Price, PLZ, Seller avatar

Kleinanzeigen.de Scraper | Anzeigen: Euro Price, PLZ, Seller

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Kleinanzeigen.de Scraper | Anzeigen: Euro Price, PLZ, Seller

Kleinanzeigen.de Scraper | Anzeigen: Euro Price, PLZ, Seller

Scrape Kleinanzeigen listings from any search or category: title, price in numeric euros, postal code, location, description, tags and image. Covers property, vehicles and goods. No login, no API key, pay per listing.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

a day ago

Last modified

Share

53 Berlin rental ads from Kleinanzeigen in 12 seconds

From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.

Paste any Kleinanzeigen.de search or category link, filters and all, or type a keyword, and get the ads back as clean rows: ad ID, title, price as a real number, the price label as shown, postal code (PLZ) and district, the size and rooms line for property, a description snippet, the seller or agency name when shown, the main image and a direct link. Kleinanzeigen (formerly eBay Kleinanzeigen) is Germany's largest classifieds site, so one actor covers flats, cars, bikes, furniture and everything else. No login, no API key.

Why choose this actor?

  • Two pages of Berlin rentals in 12 seconds. In our test of the live build on 2 October, the Berlin apartment rentals link returned 53 ads in 12 seconds, each with a numeric price, a postal_code and, for 53 of 53 flats, the size and rooms line (95,69 m² · 3,5 Zi.).
  • German prices parsed correctly. Kleinanzeigen writes 2.297 €, where the dot is a thousands separator; a naive parser reads 2.297. You get price: 2297 next to the original price_raw, plus negotiable: true for VB (Verhandlungsbasis) ads and is_free: true for Zu verschenken giveaways, so a missing price never means a parsing failure.
  • Pay only for ads delivered. $1 per 1,000 ads on every Apify plan. An ad seen twice in a search, empty or refused pages, and the run's report rows cost nothing beyond the $0.005 start fee.

Run it on Apify

Part of The Mine Works E-commerce and marketplaces family: Ozon.ru Scraper, Amazon Product Scraper, ⭐ Amazon Reviews Scraper, Carsales.com.au Scraper, Etsy Listings Scraper, AliExpress Scraper.

Try it in one minute

Paste this into the JSON tab of the input page and press Start:

{
"searchUrls": ["https://www.kleinanzeigen.de/s-wohnung-mieten/berlin/c203l3331"],
"maxListingsPerSearch": 25
}

You get the first page of Berlin apartment rentals, about 25 ads, in a few seconds. Our daily check of this exact link (3 ads) finishes in about 4 seconds.

Give the searches in either of two ways. searchUrls takes any Kleinanzeigen search or category link copied from your browser after you set the filters you want on the site (category, city, radius, price range, private or commercial); this is the precise way, because the actor reads exactly what that link shows. keywords takes plain words and runs a site wide search for each (fahrrad becomes kleinanzeigen.de/s-fahrrad/k0). maxListingsPerSearch caps each search.

Apify's free plan includes $5 of credit every month, which covers about 4,700 ads at this actor's price ($0.001 an ad plus the $0.005 start fee, in runs of 100 ads or more).

Copy to your AI assistant

themineworks/kleinanzeigen-scraper on Apify. Reads Kleinanzeigen.de search result pages and returns one row per ad with ad ID, title, price as a number in euros, the price label, VB (negotiable) and giveaway flags, postal code, location, size and rooms line, description snippet, seller name when shown, image URL and ad URL. Call ApifyClient("TOKEN").actor("themineworks/kleinanzeigen-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Give searchUrls (string[] of kleinanzeigen.de search or category links, filters included) and/or keywords (string[]; each becomes a site wide search). Optional: maxListingsPerSearch (1 to 5000, default 100; about 25 ads per page, at most 50 pages). If Kleinanzeigen refuses a page, that search ends there (no retry through other proxies). Rows with _type "summary" or "info" are never billed. Full spec: GET https://api.apify.com/v2/acts/themineworks~kleinanzeigen-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral

Key features

  • Up to 15 fields per ad: ad_id, title, price, price_raw, is_free, negotiable, location, postal_code, meta_line, description, seller_name, image_url, url, source_url and scraped_at.
  • Any category, any filter. Property, vehicles, jobs and general goods all come from the same search pages, so any link you can build on the site works, with its own filters kept.
  • Pages handled for you. The actor walks Kleinanzeigen's pages (seite:2, seite:3...) about 25 ads at a time, up to the site's own limit of 50 pages, and stops when your cap is reached, the results run out, or a page adds nothing new.
  • Postal codes ready for grouping. The five digit PLZ is read from the location line (12109 Tempelhof gives postal_code: "12109"), so you can group rents by district straight away.
  • Plain, light requests. The search pages are rendered on Kleinanzeigen's server, so the actor reads them over plain HTTP with a German browser profile. There is no browser and no paid proxy, which keeps it fast and cheap.

How to use it

{
"searchUrls": ["https://www.kleinanzeigen.de/s-wohnung-mieten/berlin/c203l3331"],
"maxListingsPerSearch": 100
}

Set your filters on kleinanzeigen.de first (district, rooms, price, radius), then copy the address bar. Whatever that page shows is what you get, about 25 ads per page.

Keyword searches across Germany

{
"keywords": ["fahrrad", "ikea pax", "rennrad"],
"maxListingsPerSearch": 50
}

Each keyword is its own search over the whole site. A keyword search is broad: for a city or a category, build the search on the site and paste the link instead.

Rent research by district

{
"searchUrls": [
"https://www.kleinanzeigen.de/s-wohnung-mieten/berlin/c203l3331"
],
"maxListingsPerSearch": 250
}

Group by postal_code and compare the median price; meta_line carries the size (48 m² · 2 Zi.) if you want rent per square metre. In our 53 Berlin rentals of 2 October, asking rents ran from 250 to 3,500 euros, with a median of 1,128.

Giveaways and bargains as they appear

{
"keywords": ["zu verschenken"],
"maxListingsPerSearch": 25
}

Keep rows with is_free: true, or rows under your price limit. Schedule it every hour or two (for example 0 */2 * * *) and compare ad_id with the last run, since the actor keeps no memory between runs and each run is charged for every ad it returns. In our test, 10 of the 25 results were marked Zu verschenken.

Used car or bike price check

{
"keywords": ["vw golf 7", "e-bike"],
"maxListingsPerSearch": 100
}

Use price for the distribution and negotiable to see how many sellers expect haggling. Open url for mileage and condition, which sit on the ad page, not on the search card.

Input parameters

ParameterTypeDefaultWhat it does
searchUrlsarray of stringsnone (form prefill: the Berlin rentals link)Kleinanzeigen search or category links, filters included. Only links on kleinanzeigen.de are used.
keywordsarray of stringsnonePlain keyword searches across the whole site, one search each.
maxListingsPerSearchinteger (1 to 5,000)100 (form prefill: 50)Most ads per search link or keyword. About 25 ads a page and at most 50 pages, so about 1,250 is the most one search can return.

Give at least one search link or keyword; with neither, the run returns only a summary row and charges only the start fee. "Form prefill" values fill the Console form for you but are not defaults.

Run options. The default memory is 512 MB and the default timeout is 3,600 seconds. A page takes a second or two plus a short pause, so even the 50 page maximum finishes in a few minutes.

What data do you get?

One row per ad. Fields a search card does not show are left out of that row rather than sent empty.

The ad: ad_id, title, description (the snippet on the search card, about 100 characters), meta_line (the summary line property ads show, such as 95,69 m² · 3,5 Zi. · Online-Besichtigung), image_url, url (the ad page).

Price: price (whole euros as a number), price_raw (the label as shown, such as 2.297 € or 860 € VB), negotiable (true for VB), is_free (true for Zu verschenken).

Where and who: location (postal code and district or town, such as 12043 Neukölln), postal_code, seller_name (the agency or commercial seller name when the card shows one; private sellers usually have none).

Run context: source_url (the search link or keyword search the ad came from) and scraped_at.

Search cards do not carry the full description, mileage, condition, contact details or the posting date; those are on the ad page at url, which this actor does not open.

Each run ends with a _type: "summary" row (searches, listings_delivered, charged_for) and a _type: "info" row with a short message. Neither is an ad and neither is ever charged. Skip rows that have a _type field when you load ads.

Stable fields for automations

These 9 fields were present in every ad row of our regular searches (80 rows: Berlin rentals and a fahrrad keyword search, 2 October 2026):

FieldWhat it holds
ad_idKleinanzeigen ad ID; the key for deduplication across runs
titleAd title
price_rawPrice label as shown
locationPostal code and place as shown
postal_codeFive digit PLZ
descriptionCard snippet
urlAd page URL
source_urlThe search the ad came from
scraped_atISO timestamp when the row was captured

price was in every row with a euro amount (79 of 80; the other ad's label was just VB with no amount, and giveaways have none either), image_url in 79 of 80, meta_line in all 53 rentals and seller_name in 34 of them. In the Zu verschenken giveaway category, some cards have no title or price label: 6 and 14 of 25 in our test. We will not rename these fields. New fields may be added over time; existing ones keep their names.

Output examples

Real rows from our test of the live build on 2 October 2026.

A Berlin rental with size, rooms and a VB price (s-wohnung-mieten/berlin):

{
"ad_id": "3529144995",
"title": "Doppelzimmer in Berlin NK zu vermieten",
"price": 860,
"price_raw": "860 € VB",
"negotiable": true,
"location": "12043 Neukölln",
"postal_code": "12043",
"meta_line": "48 m² · 2 Zi.",
"description": "Da ich den November über verreist bin, vermiete ich mein Zimmer für den Monat unter. Ich vermiete...",
"image_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/1b/1b9550d7-6d6d-469b-bcd0-72f793ba15f7?rule=$_59.AUTO",
"url": "https://www.kleinanzeigen.de/s-anzeige/doppelzimmer-in-berlin-nk-zu-vermieten/3529144995-203-3398",
"source_url": "https://www.kleinanzeigen.de/s-wohnung-mieten/berlin/c203l3331",
"scraped_at": "2026-10-02T16:17:23.707Z"
}

A rental listed by a company, with seller_name:

{
"ad_id": "3438686218",
"title": "Möblierte Studio Wohnungen mit Gemeinschaftsflächen: Padelplatz, Fitness, Dachterrasse & mehr",
"price": 941,
"price_raw": "941 €",
"location": "12359 Neukölln",
"postal_code": "12359",
"meta_line": "28 m² · 1 Zi.",
"description": "*Die aufgeführten Mieten stellen die jeweiligen Mindestmieten dar. Stromkosten sind nicht in den...",
"seller_name": "Momento Berlin",
"image_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/bc/bca01181-4728-40cd-bd39-60d276010532?rule=$_59.AUTO",
"url": "https://www.kleinanzeigen.de/s-anzeige/moeblierte-studio-wohnungen-mit-gemeinschaftsflaechen-padelplatz-fitness-dachterrasse-mehr/3438686218-203-3387",
"source_url": "https://www.kleinanzeigen.de/s-wohnung-mieten/berlin/c203l3331",
"scraped_at": "2026-10-02T16:17:23.707Z"
}

A keyword search result (fahrrad) and a giveaway (zu verschenken, where this card had no title):

{
"ad_id": "3529161604",
"title": "Kaputtes Mountainbike",
"price": 20,
"price_raw": "20 €",
"location": "79539 Lörrach",
"postal_code": "79539",
"description": "Mountainbike (Herren) mit defektem Radlager",
"image_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/97/97903523-f923-4364-8155-bd2635cd261e?rule=$_59.AUTO",
"url": "https://www.kleinanzeigen.de/s-anzeige/kaputtes-mountainbike/3529161604-217-8080",
"source_url": "https://www.kleinanzeigen.de/s-fahrrad/k0",
"scraped_at": "2026-10-02T16:17:06.541Z"
}
{
"ad_id": "3529162852",
"price_raw": "Zu verschenken",
"is_free": true,
"location": "37574 Einbeck",
"postal_code": "37574",
"description": "Trocken gelagert. Nur Abholung",
"image_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/b7/b7439bee-11fe-4d9c-b0ed-17f90c0b9c7a?rule=$_59.AUTO",
"url": "https://www.kleinanzeigen.de/s-anzeige/steinwolle-3-rollen-zu-verschenken/3529162852-87-2842",
"source_url": "https://www.kleinanzeigen.de/s-zu-verschenken/k0",
"scraped_at": "2026-10-02T16:17:55.623Z"
}

Pricing

Pay per event: you pay for each ad delivered to your dataset, plus a small start fee per run. The ad price is the same on every Apify plan.

EventFreeBronzeSilverGold and above
listing-scraped, per ad$0.001$0.001$0.001$0.001
listing-scraped, per 1,000 ads$1.00$1.00$1.00$1.00
apify-actor-start, per run$0.005 per GB of run memory, minimum one eventsamesamesame

The start fee, exactly. Apify's apify-actor-start event is charged once when a run starts, at $0.005 for each GB of memory the run uses, with a minimum of one event. This actor runs on 512 MB by default, so a default run pays one event: $0.005. Our daily check on 2 October shows apify-actor-start: 1 and listing-scraped: 3.

Worked examples. One page of 25 ads: $0.025 plus $0.005. 1,000 ads from several searches in one run: $1.00 plus $0.005. A giveaway watch every two hours, 25 ads a run, for 30 days (360 runs, 9,000 ads): $9.00 plus $1.80 of start fees.

Never charged: an ad that appears twice in the same search, pages that failed or were refused, a search with no results, and the summary and info rows. A run that delivers nothing pays only the start fee.

There is no scheduled price change for this actor. The Pricing tab on this page always shows the rate for your plan; if it and this table ever differ, the Pricing tab is right.

FAQ

What is Kleinanzeigen? Kleinanzeigen.de, called eBay Kleinanzeigen until 2023, is Germany's largest classifieds site, where private sellers and businesses list flats, cars, furniture, jobs and everything else. Its search pages show each ad's title, price, place and a snippet to anyone, without signing in. This actor reads those public search pages.

How many ads can I get? Up to about 1,250 per search, because Kleinanzeigen shows about 25 ads per page and at most 50 pages. Add more searches to one run for more, for example one link per district or price band.

What happens if Kleinanzeigen refuses a page? That search ends at the last page it read, and the run moves on to the next search; you are charged only for the ads delivered. The actor deliberately has no paid proxy or browser fallback, which keeps it cheap but means a refusal is final for that run. In one of our 2 October tests (run through a datacenter proxy), page 3 of a search was refused and the search ended with 53 ads. Run again later, or split the search into smaller ones.

Does it open each ad's page? No. It returns what the search result card shows. The full description, contact details, mileage and similar specifics are on the ad page at url.

How fresh is the data? Every run reads Kleinanzeigen live; nothing is cached. The order is whatever your search link sorts by.

Do I need a Kleinanzeigen account, cookies or a proxy? No. You need only an Apify account. The search pages are public, and the actor reads them directly.

Can I run it on a schedule? Yes. Save your input as a task, then in Apify Console go to Schedules, Create new, and pick a time or a cron expression such as 0 */2 * * *. Compare ad_id between runs to find new ads.

How do I export the data? From the run's Storage tab as JSON, CSV, Excel, XML or HTML, or through the Apify API. Drop rows that have a _type field if you want ads only.

Can I use it from Claude, ChatGPT or another AI assistant?

  • Connector URL: https://mcp.apify.com/?tools=themineworks/kleinanzeigen-scraper.
  • Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
  • ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
  • Cursor or VS Code: add it as an HTTP MCP server with that URL.
  • Claude Code: claude mcp add -t http kleinanzeigen-scraper "https://mcp.apify.com/?tools=themineworks/kleinanzeigen-scraper".

Is it legal to scrape Kleinanzeigen? The actor reads only public search result pages that anyone can see without logging in, and it does not collect contact details. Many ads are posted by private people, and a seller name or a place can be personal data, so you are responsible for how you use the data, including Kleinanzeigen's terms and the GDPR (DSGVO). This is general information, not legal advice. This actor is independent and not affiliated with Kleinanzeigen.

Integrations

  • Google Sheets: export a run to a sheet, or use Apify's Google Sheets integration to add each scheduled run's ads.
  • Make, Zapier and n8n: use the Apify app or node to start a run and send new ads under your price limit to Slack, Telegram or email.
  • Webhooks: have Apify call your URL when a run succeeds, then read the dataset.
  • API and client libraries: start runs and read datasets from Python, JavaScript or any HTTP client. The "Copy to your AI assistant" block above has the exact call.
  • MCP clients: Claude, ChatGPT, Cursor, VS Code and Claude Code can call the actor as a tool through https://mcp.apify.com.

Comparing with other marketplaces? See eBay Search Scraper.

More from The Mine Works

E-commerce and marketplaces

Social media and video

Leads and business directories

Marketing, SEO and reviews

LinkedIn

Real estate

Science, health and government data

Jobs and hiring

Company and business data

Food and local services

Developer and AI tools

More tools

Support

Found a search link that returns nothing, or need a field we do not return yet? Open an issue on the Issues tab of this page with your input and the run ID, and we will reply there. To ask for a new marketplace, email dmineworks@gmail.com. A guide for this actor also lives at themineworks.com.

Kleinanzeigen.de Scraper turns any Kleinanzeigen search into ad rows with euro prices as numbers, postal codes and seller names, at $1 per 1,000 ads.