ParseForge Scrapers

Kleinanzeigen.de Scraper - Listings, Prices & Sellers

parseforge/kleinanzeigen-scraper

E-commerceAutomationLead generation

Scrape Kleinanzeigen.de listings by keyword, city, category and price. Get 39 fields per ad with seller, coordinates and views. Export CSV, Excel, JSON, XML.

Run this scraper See the API call
Total runs
4
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the Kleinanzeigen.de Scraper - Listings, Prices & Sellers return?

ParseForge Banner

πŸ›’ Kleinanzeigen.de Scraper

πŸš€ Export Kleinanzeigen.de listings in seconds. 39 fields per ad: price, exact coordinates, full description, every image, view count and the seller profile, from a keyword, a city or a whole category.

Kleinanzeigen.de is the largest classifieds marketplace in Germany, with cars, phones, furniture, apartments, jobs and services posted by private people and businesses every minute. This Actor turns any search on the site into a clean dataset. Give it a keyword and a city, or paste a Kleinanzeigen URL, and it returns one structured row per listing, ready for CSV, Excel, JSON or XML.

It covers all 161 Kleinanzeigen categories, filters by location and radius, price range, seller type, offers or wanted ads, shipping and buy-now, and it can run in monitoring mode so a scheduled run only returns listings it has not seen before. Every listing is opened for its full detail page, so you get the data the result list hides.

🎯 Target Audience πŸ’‘ Primary Use Cases
Resellers and flippers Find underpriced items the minute they are posted
Price-comparison and market-research teams Track asking prices by category and city
Lead-generation teams Build lists of commercial sellers with legal imprint details
Real-estate analysts Monitor rentals and sales with coordinates and attributes
Data engineers Feed German classifieds into dashboards and models

πŸ“‹ What the Kleinanzeigen Scraper does

  • πŸ”Ž Searches by keyword, city, postcode and radius, or takes any Kleinanzeigen search, category, seller-stock or single-listing URL.
  • πŸ—‚ Filters by category (all 161), price range, offers or wanted ads, private or commercial sellers, shipping and buy-now.
  • πŸ“„ Opens every listing for the full description, all images, coordinates, the attribute table and the seller profile.
  • πŸ‘ Adds the public view counter of each listing.
  • πŸ” Monitoring mode returns only listings that are new since your last run.

πŸ’‘ Why it matters: the result list of Kleinanzeigen shows a title, a price and a thumbnail. The decisions people make (is this a good deal, who is selling, where exactly, how much interest) live on the detail page. This Actor collects that page for you.

🎬 Full Demo

🚧 Coming soon.

πŸ“Š Output

Each row is one listing. The columns below are always present, so your spreadsheet or pipeline never changes shape.

Field Description
πŸ–Ό imageUrl Main image
πŸ“Œ title, id, url Identity of the listing
🏷 listingType, price, priceType, currency Offer or wanted, price in EUR, Fixed, Negotiable or Free
πŸ“ location, postalCode, region, latitude, longitude, address Where the item is
πŸ—‚ category, parentCategory, categoryId Kleinanzeigen category path
πŸ“… postedDate, postedTime, promoted When it was posted and whether it is a promoted ad
πŸ“¦ shippingAvailable, shippingInfo, buyNowAvailable Shipping and buy-now
πŸ‘ views Public view counter
πŸ“ description Full ad text
πŸ‘€ sellerName, sellerId, sellerUrl, sellerType, sellerActiveSince, sellerAdsOnline, sellerImprint Seller profile, with the legal imprint for businesses
πŸ–Ό imageCount, images Every image of the ad
🧩 attributes, features, sellerBadges Category-specific attributes (rooms, size, model, condition), feature tags and seller rating badges
⏱ scrapedAt, error Run metadata

Values the source withholds come back as Not Disclosed and structural gaps as N/A, never as empty cells.

Sample records (real output, shortened):

{
  "title": "Apple iPhone 17 256 GB 5G - Neuwertig - Fachhandel - Rechnung",
  "id": "3509889699",
  "listingType": "Offer",
  "price": 799,
  "priceType": "Fixed",
  "location": "Berlin - Reinickendorf",
  "postalCode": "13507",
  "latitude": 52.5887938,
  "longitude": 13.2852568,
  "category": "Smartphones",
  "parentCategory": "Elektronik",
  "postedDate": "2026-09-11",
  "promoted": "Yes",
  "shippingAvailable": "Yes",
  "views": 173,
  "sellerName": "MV-ELEKTROMARKT",
  "sellerType": "Commercial",
  "sellerActiveSince": "2026-06-02",
  "attributes": { "Art": "Apple", "Modell": "iPhone 17", "Farbe": "Schwarz", "Zustand": "Sehr Gut" },
  "imageCount": 3
}
{
  "title": "TUSCHE IPHONE 17 Pro Max gegen 18 Pro Max",
  "id": "3526133013",
  "listingType": "Offer",
  "price": 600,
  "priceType": "Negotiable",
  "location": "Friedrichshain-Kreuzberg - Friedrichshain",
  "postalCode": "10243",
  "region": "Berlin",
  "category": "Smartphones",
  "promoted": "No",
  "shippingAvailable": "Yes",
  "sellerName": "Miky",
  "sellerType": "Private",
  "sellerActiveSince": "2014-06-14",
  "sellerAdsOnline": 12,
  "sellerBadges": ["TOP Zufriedenheit", "Freundlich", "ZuverlΓ€ssig"],
  "attributes": { "Art": "Apple", "Modell": "iPhone 17 Pro Max", "Farbe": "Blau", "Zustand": "Gut" }
}
{
  "title": "Nachmieter gesucht! Moderne 1,5-Zimmer Wohnung mit EinbaukΓΌche im SΓΌden Berlins!",
  "listingType": "Offer",
  "price": 925,
  "priceType": "Fixed",
  "location": "Berlin - Lichterfelde",
  "postalCode": "14167",
  "category": "Mietwohnungen",
  "parentCategory": "Immobilien",
  "sellerType": "Commercial",
  "attributes": { "WohnflΓ€che": "42 mΒ²", "Zimmer": "1,5", "Etage": "2", "Warmmiete": "1.085 €" },
  "features": ["Balkon", "EinbaukΓΌche", "Keller"],
  "imageCount": 12
}

✨ Why choose this Actor

  • 🎯 Real search inputs. Keyword, city, radius, category, price range and seller type are form fields, not something you have to encode into a URL yourself.
  • 🧠 Detail-page depth. Coordinates, full description, all images, attributes, seller profile and views in every row.
  • 🏒 Lead-ready sellers. Commercial sellers include the legal imprint (company name, address, register data) that the site publishes.
  • πŸ” Monitoring mode. Schedule the Actor and get only new listings.
  • 🌐 Works without a proxy. The public pages load from Apify datacenter IPs; a German residential proxy is available for very large runs.
  • 🧱 Stable schema. Sentinels instead of null, arrays instead of missing keys.

πŸ“ˆ How it compares to alternatives

This Actor Typical URL-only scrapers
Search by keyword, city and radius βœ… Paste a search URL
All 161 categories as a dropdown βœ… Find the URL yourself
Price, seller type, shipping, buy-now filters βœ… Encode them in the URL
Coordinates, views, attributes, seller profile βœ… Varies
Only new listings since the last run βœ… Varies
Results per search Up to about 1,250 (50 pages) Same site limit

Honest ceiling: Kleinanzeigen shows at most 50 pages of results for any single search, about 1,250 listings. To go beyond that, split the job by category, price range or location. Phone numbers and private messages need a login on the site, so they are not part of the data.

πŸš€ How to use

  1. πŸ†“ Create a free Apify account with $5 credit: sign up here.
  2. Open the Actor and enter a search term such as fahrrad, and a location such as Hamburg.
  3. Optionally narrow the search with a category, a price range or seller type.
  4. Set Max Items and press Start.
  5. Download the dataset as CSV, Excel, JSON or XML, or call it from the API.

A minimal example:

{ "searchTerms": ["iphone"], "locations": ["Berlin"], "maxItems": 100 }

πŸ’Ό Business use cases

πŸ” Resale and arbitrage

Sort by newest, filter by price and get every fresh listing with condition and shipping details, so you can message sellers before anyone else.

πŸ“Š Market research

Track asking prices per category, city or brand over time. price, priceType, views and postedDate make demand and price drops measurable.

🏒 Lead generation

Filter to commercial sellers and collect company names, addresses and imprint data of shops and dealers that advertise in a category.

🏠 Real-estate monitoring

Combine the Rental or Sale categories with a city and radius. Coordinates, size, rooms and warm rent arrive as structured columns.

πŸ”Œ Automating Kleinanzeigen Scraper

Run it on a schedule and send the results wherever you work:

  • βš™οΈ Make and Zapier: trigger a scenario when a run finishes.
  • πŸ’¬ Slack: post new listings to a channel in monitoring mode.
  • πŸ—„ Airbyte: load datasets into your warehouse.
  • πŸ™ GitHub Actions: call the Actor from a workflow.
  • ☁️ Google Drive: export each dataset as a spreadsheet.

🌟 Beyond business use cases

  • πŸ”¬ Research: study second-hand markets, sustainability and regional price differences.
  • πŸ› Personal: get alerted when the exact bike, console or sofa you want appears near you.
  • 🀝 Non-profit: find free items (priceType: Free) for donation drives.
  • πŸ§ͺ Experimentation: build price-prediction models on real asking prices.

πŸ€– Ask an AI assistant about this scraper

Paste this page or the dataset schema into your favorite AI assistant and ask it to draft a search configuration, explain a field, or write code that reads the dataset with the Apify API.

❓ Frequently Asked Questions

🌍 Does it only work for Germany? Yes. Kleinanzeigen.de is a German marketplace, so locations are German cities, districts and postcodes.

πŸ”’ How many listings can I get per search? Up to about 1,250, because the site stops at 50 pages of results. Split large jobs by category, price or location.

πŸ” Do I need a Kleinanzeigen account? No. Only publicly visible data is collected.

πŸ“ž Can it return phone numbers? No. The site reveals phone numbers and messaging only to logged-in users, so they are not included. For businesses the legal imprint is included.

πŸ’Ά What does price mean when it says Not Disclosed? Some ads, such as services or wanted ads, show no price. The priceType column says whether the seller marked it as negotiable.

πŸ“£ What is the promoted column? Promoted (Top and gallery) ads are shown at the top of results and carry no date in the list. They are flagged so you can filter them out.

⚑ Can I skip the detail pages? Yes. Turn off full listing details for a faster run that returns only what the result list shows.

πŸ” How does monitoring mode work? The Actor remembers the ids it returned. On the next run it skips them and returns only new listings. Use it with a schedule.

πŸ›° Do I need a proxy? Not for normal runs. For very large jobs, enable Apify Proxy with a German residential group.

πŸ“… Why is postedTime sometimes Not Disclosed? Kleinanzeigen shows a clock time only for recent listings in the result list. Older ones show a date only.

🧩 What are attributes? The category-specific table on the listing page, for example rooms and size for apartments or model and condition for phones. Keys are in German as on the site.

πŸ”Œ Integrate with any app

Kleinanzeigen Scraper connects to almost any tool through Apify: webhooks, the REST API, official clients for JavaScript and Python, and integrations for Make, Zapier, n8n and more.

πŸ”— Recommended Actors

πŸ’‘ Pro Tip: browse the complete ParseForge collection.

πŸ†˜ Need Help? Open our contact form

⚠️ Disclaimer: this is an independent tool and is not affiliated with Kleinanzeigen or eBay. It collects only publicly available data.

What input does the Kleinanzeigen.de Scraper - Listings, Prices & Sellers accept?

FieldTypeWhat it doesDefault
startUrls array kleinanzeigen.de search, category or seller-stock URLs (paginated automatically), or single listing URLs. Leave empty to use the search filters below. not set
searchTerms array One or more keywords, for example "iphone 15" or "fahrrad". Each keyword runs as its own search. Leave empty to browse a whole category. ["iphone"]
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
locations array City, district or postcode, for example "Berlin", "MΓΌnchen" or "10115". Each location runs as its own search. Leave empty to search all of Germany. ["Berlin"]
radiusKm string (13 options) Search radius in km around each location. Only used when a location is set. 0
categoryId string (161 options) Restrict the search to one category or subcategory. Leave empty for all categories. not set
listingType string (3 options) Offers (things for sale), wanted ads (people looking for something) or both. ALL
sellerType string (3 options) Private sellers, commercial sellers or both. ALL
minPrice integer Only listings priced at or above this amount. not set
maxPrice integer Only listings priced at or below this amount. not set
shippingOnly boolean Only listings the seller can ship. false
buyNowOnly boolean Only listings with the "Direkt kaufen" (buy now) option. false
sortBy string (4 options) Order of the results. "Nearest first" needs a location. SORTING_DATE
includeDetails boolean Open every listing to add the full description, all images, coordinates, attributes, seller profile and view count. Turn it off for a faster run that returns only what the result list shows. true
onlyNewListings boolean Skip listings this Actor already returned in earlier runs. Useful for scheduled monitoring. false
proxyConfiguration object Apify Proxy settings. {"useApifyProxy":false}

How much does the Kleinanzeigen.de Scraper - Listings, Prices & Sellers cost?

from $1.20 per 1,000 results

Charged forWhat it isPrice each
Listing scraped One Kleinanzeigen.de listing with full details. $0.0012 to $0.0015

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Kleinanzeigen.de Scraper - Listings, Prices & Sellers API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~kleinanzeigen-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchTerms": [
      "iphone"
    ],
    "maxItems": 10,
    "locations": [
      "Berlin"
    ],
    "radiusKm": "0",
    "listingType": "ALL"
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "searchTerms": [
    "iphone"
  ],
  "maxItems": 10,
  "locations": [
    "Berlin"
  ],
  "radiusKm": "0",
  "listingType": "ALL"
}

What do users say about the Kleinanzeigen.de Scraper - Listings, Prices & Sellers?

No reviews yet. Be the first.

How do I report an issue with the Kleinanzeigen.de Scraper - Listings, Prices & Sellers?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Kleinanzeigen.de Scraper - Listings, Prices & Sellers on Apify All scrapers