Kleinanzeigen Scraper
Pricing
$1.50 / 1,000 posts
Kleinanzeigen Scraper
Scrape Kleinanzeigen posts and search results. Extract titles, prices, descriptions, images, seller info, and properties from any listing. Search by keyword and location or look up posts by URL. No API key needed. Export as CSV, JSON, or Excel.
Pricing
$1.50 / 1,000 posts
Rating
5.0
(1)
Developer
Beat Analytics
Maintained by CommunityActor stats
2
Bookmarked
16
Total users
7
Monthly active users
5 days ago
Last modified
Categories
Share
Kleinanzeigen Scraper (eBay Kleinanzeigen) - Extract Posts and Search Results Without an API
Kleinanzeigen-Daten strukturiert abrufen - die API-Alternative für Deutschlands größtes Kleinanzeigenportal. Durchsuchen Sie Kleinanzeigen.de nach Suchbegriffen, Standorten und Kategorien und erhalten Sie strukturierte Daten zu Preisen, Beschreibungen, Verkäufern und mehr. Kein API-Key nötig. Export als JSON, CSV oder Excel.
Kleinanzeigen Scraper is an Apify actor that extracts structured data from Kleinanzeigen.de (formerly eBay Kleinanzeigen) by keyword, location, and category. There is no official Kleinanzeigen API, so this scraper stands in for one: it returns post titles, prices, descriptions, seller profiles, images, GPS coordinates, shipping options, publication timestamps, and 30+ additional fields from Germany's largest classifieds platform. Use it for price monitoring, market research, lead generation, or inventory tracking.
- Why use this Kleinanzeigen scraper?
- What data can you extract from Kleinanzeigen?
- How to scrape Kleinanzeigen
- Input parameters
- Output example
- How much does it cost to scrape Kleinanzeigen?
- Use cases for Kleinanzeigen data
- Integrations and API access
- Frequently asked questions
Why use this Kleinanzeigen scraper?
- 🔍 Search by keyword across all of Germany - enter any search term (e.g. "iPhone 15 Pro", "Sofa", "Fahrrad") and get structured data for every matching Anzeige, nationally or restricted to a city or postal code.
- 🔄 Cartesian product search - provide multiple keywords and locations to search all combinations automatically. 5 keywords and 10 locations run 50 searches in one job, with duplicate posts removed.
- 📍 Location and radius filtering - narrow results by city, postal code (e.g. "Berlin", "10178"), or a radius of up to 200 km.
- 🔗 Direct post lookup by URL or Anzeigen-ID - paste URLs like
https://www.kleinanzeigen.de/s-anzeige/...or supply Anzeigen-IDs, and the scraper fetches full details for each. - 🧩 Combine search and direct lookup - use keyword search and direct post URLs in the same run; results are merged and deduplicated.
- ⚡ No API key required - there is no official Kleinanzeigen API. This scraper needs no registration, authentication tokens, or configuration.
- 🎯 Powerful search filters - filter by price range (min/max €), seller type (private vs. commercial), ad type (offered vs. wanted), plus toggles for buy-now-only, pictures-required, and shipping-available. Sort by newest or price ascending/descending.
- 📦 30+ structured fields per post - title, full description, price, price type (Festpreis / VB / Zu verschenken), location, GPS coordinates, category and category IDs, seller profile (type, store, member-since, trust badges), images, shipping options, buyer-protection fee, publication and last-edit timestamps, and structured properties (e.g. "Zustand: Neu", "Art: Apple").
- 💾 Export as JSON, CSV, Excel, XML, or HTML - all five formats work out of the box.
- 🛡️ Automatic deduplication - posts found through multiple keyword or location combinations are included only once.
- 🌐 The Kleinanzeigen API alternative - use this scraper anywhere you would use an official API, with structured JSON output, no rate limits, and no authentication setup.
What data can you extract from Kleinanzeigen?
The scraper returns 30+ structured fields for each post (Anzeige):
Post identity:
- id - Anzeigen-ID (e.g.
2623607133) - url - Direct link to the Kleinanzeigen post
- title - Post title as written by the seller
Content:
- description - Full post description text
- properties - Structured category-specific attributes as
[{"name": "Zustand", "value": "Neu"}, {"name": "Art", "value": "Apple"}]; varies by category (electronics, vehicles, furniture, etc.) - images - Full-resolution image URLs from the Kleinanzeigen CDN
- documents - Attached documents as
[{"title": "Energieausweis", "url": "..."}](e.g. energy certificates on real-estate listings) - media - Embedded media as
[{"title": "...", "type": "...", "url": "..."}](e.g. YouTube video tours)
Pricing:
- price - Price in EUR (e.g.
"1129.00"), or null if not specified - priceType - Price type:
"fixed"(Festpreis),"negotiable"(Verhandlungsbasis / VB), or"give_away"(Zu verschenken) - buyNowPossible - Whether the seller offers Direkt kaufen
- offerPossible - Whether the seller accepts a Preisvorschlag (price offer / negotiate)
- securePaymentPossible - Whether Kleinanzeigen's secure payment (Sicher bezahlen) is offered
- buyerProtectionFee - Käuferschutz fee in EUR when secure payment is available (e.g.
"18.95"), else null
Location and logistics:
- location - Location string as posted (e.g.
"44536 Nordrhein-Westfalen - Lünen") - coordinates - Approximate GPS coordinates as
{"latitude": ..., "longitude": ..., "radiusKm": ...}(Kleinanzeigen obfuscates the exact position withinradiusKm) - regions - Region/state names the listing is associated with (e.g.
["Berlin"]) - shipping - Shipping availability, e.g.
"Versand möglich", or null if pickup only - shippingOptions - Available shipping methods as
[{"type": "DHL_002", "price": null}]
Listing metadata:
- adType - Whether the post is
"offered"("Ich biete") or"wanted"("Ich suche") - publishDate - Date the post was published (e.g.
"2023-12-26") - publishTime - Time of day the post was published (e.g.
"11:00") - publishTimestamp - Full publication timestamp with timezone (e.g.
"2026-06-29T11:00:43.000+0200") - lastEditTimestamp - Timestamp of the last edit, or null if never edited
- category - Category name (e.g.
"Handy & Telefon","Autos","Möbel & Wohnen") - categoryId / parentCategoryId - Numeric category and parent-category IDs
- promotions - Active promotion types on the listing (e.g.
["topad", "highlight"])
Seller information:
- user.id - Seller account ID
- user.name - Seller display name
- user.isCommercial - Whether the seller is a commercial dealer (Gewerblich) or private individual (Privat)
- user.sellerType -
"private","commercial", or"pro" - user.storeId - Store ID if the seller runs a shop, else null
- user.memberSince - When the seller joined Kleinanzeigen
- user.badges - Seller trust badges as name/level pairs (e.g. reliability, friendliness)
Search context (when found via search):
- _search.keywords - The keyword(s) used in the search that returned this post
- _search.location - The location that was searched
- _search.rank - Position in search results for that keyword and location combination (1-indexed)
How to scrape Kleinanzeigen
Follow these five steps to extract Kleinanzeigen post data:
Step 1: Create a free Apify account
Sign up at apify.com if you do not have an account yet. Every new account includes $5 in free credits - enough to scrape over 3,000 Kleinanzeigen posts at no cost.
Step 2: Open the Kleinanzeigen Scraper
Navigate to the Kleinanzeigen Scraper actor page on the Apify Store and click "Try for free" or "Start."
Step 3: Add your search keywords, locations, or post URLs
You have three ways to specify which posts to scrape:
- Keyword search: Enter one or more search keywords (e.g. "iPhone 15 Pro", "Sofa", "Mountainbike") and optionally one or more locations (e.g. "Berlin", "München", "10178"). The scraper searches all combinations of keywords and locations.
- Direct post URLs: Paste one or more Kleinanzeigen post URLs, such as
https://www.kleinanzeigen.de/s-anzeige/apple-iphone-15-pro.../2623607133-173-1753. - Anzeigen-IDs: Enter post IDs directly if you already know them (e.g.
2623607133).
You can combine all three methods in a single run. The scraper deduplicates results automatically.
Step 4: Click Start
Click the "Start" button to begin the scrape. The scraper processes your inputs, fetches post details, and pushes results to the dataset. You can monitor progress in real time on the run detail page.
Step 5: Download your data in JSON, CSV, Excel, XML, or HTML
Once the run completes, go to the Storage tab to view and download your results. Apify supports five export formats out of the box:
- JSON - structured data, ideal for programmatic processing
- CSV - spreadsheet-friendly, opens directly in Excel or Google Sheets
- Excel (.xlsx) - native Excel format with proper column types
- XML - for systems that consume XML feeds
- HTML - human-readable table view
You can also access your data programmatically through the Apify API, or set up automatic exports to Google Sheets, Dropbox, Amazon S3, and other destinations.
Input parameters
The Kleinanzeigen Scraper accepts the following input parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchKeywords | Array of strings | No | - | Keywords to search for (e.g. "iPhone 15 Pro", "Sofa", "Fahrrad"). Used together with searchLocations; all combinations are searched. |
searchLocations | Array of strings | No | - | Locations to search in: city name or postal code (e.g. "Berlin", "München", "10178"). Used together with searchKeywords; all combinations are searched. |
searchRadius | Integer | No | none | Search radius in km around the specified location. Supported values: 0, 5, 10, 20, 30, 50, 100, 150, 200. A value of 0 means exact location match only. |
searchCategoryId | Integer | No | - | Optional category filter. Restrict results to a specific Kleinanzeigen category by its numeric category ID. |
maxResultsPerSearch | Integer | No | 25 | Maximum number of posts to return per keyword + location combination. |
sort | Select | No | recommended | Order of search results: recommended (relevance), newest, price_asc, or price_desc. Only affects keyword search. |
minPrice | Integer | No | - | Only return posts priced at or above this amount (€). Only affects keyword search. |
maxPrice | Integer | No | - | Only return posts priced at or below this amount (€). Only affects keyword search. |
sellerType | Select | No | both | Restrict to private or commercial (Gewerblich) sellers. Only affects keyword search. |
adType | Select | No | both | Restrict to offered ("Ich biete") or wanted ("Ich suche") posts. Only affects keyword search. |
buyNowOnly | Boolean | No | false | Only return posts that offer Direkt kaufen (buy now). Only affects keyword search. |
pictureRequired | Boolean | No | false | Only return posts that have at least one photo. Only affects keyword search. |
shippable | Boolean | No | false | Only return posts that offer shipping (Versand). Only affects keyword search. |
postUrls | Array of URLs | No | - | Direct Kleinanzeigen post URLs to fetch details for. Can be used instead of or in addition to keyword search. |
postIds | Array of strings | No | - | Anzeigen-IDs to fetch details for. Can be used instead of or in addition to URLs and/or keyword search. |
Note: You must provide at least one of searchKeywords, postUrls, or postIds. When using searchKeywords with searchLocations, all combinations are searched automatically: 3 keywords and 4 locations produce 12 searches in a single run.
Search example: Setting searchKeywords to ["iPhone 15 Pro", "Samsung Galaxy S24"] and searchLocations to ["Berlin", "Hamburg", "München"] runs six searches. With maxResultsPerSearch at 25, this returns up to 150 posts (fewer after deduplication).
Output example
The Kleinanzeigen Scraper outputs data in two formats: a structured JSON dataset and a flattened CSV file. You can download results in JSON, CSV, Excel, XML, or HTML from the Storage tab after each run.
JSON dataset
The results are stored in a dataset which you can find in the Storage tab. Each item in the dataset represents a single Kleinanzeigen post (Anzeige).
Example JSON output
{"id": 2623607133,"url": "https://www.kleinanzeigen.de/s-anzeige/apple-iphone-15-pro-128gb-titanium-natural-natur-grau-neu/2623607133-173-1753","title": "Apple iPhone 15 PRO 128GB Titanium Natural Natur Grau | NEU","description": "Willkommen bei FUCHS Handyhandel...","location": "44536 Nordrhein-Westfalen - Lünen","price": "1129.00","priceType": "fixed","buyNowPossible": false,"offerPossible": false,"securePaymentPossible": false,"buyerProtectionFee": null,"adType": "offered","publishDate": "2023-12-26","publishTime": "11:00","publishTimestamp": "2023-12-26T11:00:43.000+0100","lastEditTimestamp": null,"shipping": "Versand möglich","shippingOptions": [{"type": "DHL_002", "price": null}],"category": "Handy & Telefon","categoryId": 173,"parentCategoryId": 161,"coordinates": {"latitude": 51.61489,"longitude": 7.52412,"radiusKm": 3.2},"regions": ["Nordrhein-Westfalen"],"promotions": ["topad"],"properties": [{"name": "Art", "value": "Apple"},{"name": "Farbe", "value": "Grau"},{"name": "Gerät & Zubehör", "value": "Gerät & Zubehör"},{"name": "Zustand", "value": "Neu"}],"images": ["https://img.kleinanzeigen.de/api/v1/prod-ads/images/87/876833af-4f17-44d6-8dfc-80c7262d4c4f?rule=$_59.JPG"],"documents": [],"media": [],"user": {"id": 49555324,"name": "FUCHS Handyhandel","isCommercial": true,"sellerType": "commercial","storeId": 48755,"memberSince": "2018-04-12T09:31:00.000+0200","badges": [{"name": "reliability", "level": 2},{"name": "friendliness", "level": 2}]},"_search": {"keywords": "iPhone 15 Pro","location": "Lünen","rank": 3}}
CSV file
Post details are stored in a CSV file. The file contains the following columns:
id: Anzeigen-IDurl: Link to the Kleinanzeigen posttitle: Post titledescription: Full description textlocation: Location string (e.g."44536 Nordrhein-Westfalen - Lünen")latitude,longitude: Approximate GPS coordinates (empty if unavailable)regions: Region/state names, comma-separatedprice: Price in EUR, or empty if not specifiedpriceType:fixed,negotiable, orgive_awaybuyNowPossible: Whether Direkt kaufen is availableofferPossible: Whether Preisvorschlag is acceptedbuyerProtectionFee: Käuferschutz fee in EUR, or emptysecurePaymentPossible: Whether secure payment (Sicher bezahlen) is offeredadType:offered("Ich biete") orwanted("Ich suche")publishDate: Publication datepublishTime: Publication time of day (HH:MM)publishTimestamp: Full publication timestamp with timezonelastEditTimestamp: Last-edit timestamp, or empty if never editedshipping: Shipping info (e.g."Versand möglich"), or emptyshippingOptions: Available shipping methods as"CARRIER: price", comma-separatedcategory: Category namecategoryId,parentCategoryId: Numeric category IDspromotions: Active promotion types, comma-separatedproperties: Structured properties flattened as"Name: Value"pairs (newline-separated)images: Full-resolution image URLs (newline-separated)documents: Attached documents as"Title: URL"(newline-separated)media: Embedded media as"Title (type): URL"(newline-separated)user_id: Seller account IDuser_name: Seller display nameuser_isCommercial: Whether the seller is commercial (Gewerblich) or privateuser_sellerType:private,commercial, orprouser_storeId: Store ID if the seller runs a shop, or emptyuser_memberSince: When the seller joined Kleinanzeigensearch_keywords: The keyword(s) used to find this post (empty for direct lookups)search_location: The location used in the search (empty for direct lookups)search_rank: Position in search results (empty for direct lookups)
How much does it cost to scrape Kleinanzeigen?
The Kleinanzeigen Scraper uses per-result pricing: you only pay for the posts you get.
$1.50 per 1,000 results - each post returned counts as one result, whether found via keyword search or direct ID/URL lookup. Deduplication happens before billing, so you never pay for the same post twice.
Free trial: every new Apify account comes with $5 in free platform credits, no credit card required - enough to scrape over 3,000 Kleinanzeigen posts at no cost.
Enterprise plans: for large volumes on a regular basis, from tens of thousands up to millions of posts per month, contact sales@beatanalytics.org for custom Enterprise pricing with dedicated support and volume discounts.
Use cases for Kleinanzeigen data
Kleinanzeigen data powers analytical, operational, and research workflows:
Price monitoring and market valuation
Track prices for specific products across all of Germany or within a defined region, and schedule regular runs to watch them change. Compare private seller prices against commercial dealer prices to understand market spreads. This is particularly valuable for used electronics, vehicles, furniture, and collectibles where there is no fixed reference price.
Competitive intelligence for dealers and resellers
Commercial sellers (Gewerblich) can monitor competitor listings in their product categories: which products competitors list, at what prices, and in which locations. Identify inventory gaps and pricing opportunities by analyzing what sells quickly (posts that disappear between runs) versus what lingers.
Inventory sourcing and arbitrage
Find underpriced items in specific categories and regions before competitors do. Search by keyword and location with radius filtering to identify deals within a drivable distance, and use priceType to focus on Festpreis listings (no negotiation needed) or VB listings with room to offer.
Lead generation and sales prospecting
Extract contact-adjacent data (seller name, commercial/private status, location) for businesses and dealers selling in your target category. Commercial sellers on Kleinanzeigen are often SMBs receptive to B2B outreach; use user.isCommercial to focus on verified business sellers.
Academic research and economic analysis
Study pricing patterns in the German second-hand market and the geographic distribution of supply and demand. Research how pricing behavior differs between private individuals and commercial dealers. The structured properties field lets you analyze product condition (Zustand) and specifications alongside price data.
Real estate and housing market analysis
Kleinanzeigen hosts a large volume of private real estate listings alongside the major portals. Scrape rental and sales listings by city or postal code to track price trends, compare neighborhoods, and monitor supply levels in specific markets.
Fraud detection and brand protection
Monitor Kleinanzeigen for counterfeit goods, unauthorized use of brand names, or suspicious listing patterns. Use keyword and category filters to find posts mentioning specific product names, then analyze seller patterns, pricing anomalies, and image data for indicators of fraud.
Journalism and public interest reporting
Investigate pricing trends, regional economic disparities, and consumer behavior in the German second-hand economy. Kleinanzeigen data works as a real-time indicator of consumer sentiment: when used electronics prices rise or fall, it often reflects broader economic conditions.
Integrations and API access
The Kleinanzeigen Scraper integrates with the Apify platform ecosystem, giving you programmatic access to your scraped data and the ability to connect it to thousands of external tools.
Python
Use the Apify Python SDK to run the scraper and retrieve results programmatically:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run_input = {"searchKeywords": ["iPhone 15 Pro", "Samsung Galaxy S24"],"searchLocations": ["Berlin", "Hamburg"],"maxResultsPerSearch": 50,}run = client.actor("beatanalytics/kleinanzeigen-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['title']} - {item['price']} EUR - {item['location']}")
JavaScript / Node.js
Use the Apify JavaScript SDK to integrate Kleinanzeigen scraping into your Node.js applications:
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_API_TOKEN" });const run = await client.actor("beatanalytics/kleinanzeigen-scraper").call({searchKeywords: ["Sofa", "Couch"],searchLocations: ["München"],maxResultsPerSearch: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(`${item.title} - ${item.price} EUR - ${item.user.name}`);});
No-code integrations
Connect the Kleinanzeigen Scraper to thousands of apps without writing code:
- Make (formerly Integromat) - trigger workflows when new Kleinanzeigen data is scraped, or schedule regular runs as part of larger automations
- Zapier - connect Kleinanzeigen data to Google Sheets, Slack, email, CRM tools, and 5,000+ other apps
- Webhooks - receive HTTP notifications when a scraping run completes, then process the data in your own backend
- Google Sheets - export results directly to a spreadsheet for collaborative analysis
- Amazon S3 / Dropbox - automatically save scraped data to cloud storage after each run
Scheduled runs
Set up the Kleinanzeigen Scraper to run on a schedule (hourly, daily, weekly, or custom cron) to keep your data fresh. Each run appends new results to your dataset, making it easy to track new listings, price changes, and sold items over time. This is particularly useful for price monitoring, inventory sourcing, and competitive intelligence workflows.
API endpoints
Every scraper run on Apify exposes RESTful API endpoints for accessing results, checking run status, and managing datasets. See the Apify API documentation for the complete reference.
Frequently asked questions
Is there an official Kleinanzeigen API? / Gibt es eine offizielle Kleinanzeigen API?
No. Kleinanzeigen (formerly eBay Kleinanzeigen) does not offer a public API. There is no official way to programmatically access Kleinanzeigen listing data, search results, or post details. The Kleinanzeigen Scraper was built to fill this gap: it works as a Kleinanzeigen API alternative, returning structured JSON data for any search query or post URL without requiring authentication or API keys.
Nein. Kleinanzeigen bietet keine öffentliche API an. Es gibt keine offizielle Möglichkeit, Kleinanzeigen-Daten programmatisch abzurufen. Dieser Scraper ist die Alternative: Er liefert strukturierte Daten für beliebige Suchbegriffe, Standorte und Inserate - ohne Registrierung, ohne API-Schlüssel.
Wie kann ich Kleinanzeigen-Daten scrapen und exportieren? (How do I scrape and export Kleinanzeigen data?)
Geben Sie Ihre Suchbegriffe und Standorte ein, klicken Sie auf Start, und laden Sie die Ergebnisse als JSON, CSV, Excel, XML oder HTML herunter. Für regelmäßige Marktbeobachtung können Sie den Scraper mit der Apify-Planungsfunktion automatisch täglich oder wöchentlich ausführen lassen. Alle Details finden Sie unter How to scrape Kleinanzeigen.
Was kostet es, Kleinanzeigen zu scrapen? (What does it cost to scrape Kleinanzeigen?)
$1,50 pro 1.000 Ergebnisse - Sie zahlen nur für die Inserate, die Sie erhalten. Jedes neue Apify-Konto enthält $5 Startguthaben (keine Kreditkarte nötig), das reicht für über 3.000 Kleinanzeigen-Inserate. Für Großvolumen ab 10.000+ Inserate pro Monat bieten wir Enterprise-Tarife an - schreiben Sie uns an sales@beatanalytics.org.
Kann ich Kleinanzeigen-Inserate nach Standort und Umkreis filtern? (Can I filter by location and radius?)
Ja. Geben Sie in searchLocations einen oder mehrere Städtenamen oder Postleitzahlen ein (z.B. „Berlin", „10178", „München"). Mit searchRadius erweitern Sie die Suche auf einen Umkreis von 5 bis 200 km. So können Sie lokale Marktanalysen oder regionale Preisvergleiche durchführen.
How do I scrape Kleinanzeigen without an API?
The Kleinanzeigen Scraper is designed specifically for this use case. Open the actor on Apify, enter your search keywords, locations, or post URLs, and click Start. The scraper handles all data extraction automatically and returns structured results in JSON, CSV, or any other supported format. No API key, no rate limits, no authentication. See How to scrape Kleinanzeigen for a step-by-step walkthrough.
Is it legal to scrape Kleinanzeigen?
This scraper only accesses publicly visible listings, the same data any visitor sees without logging in. German and EU courts (including the BGH) have generally upheld that accessing publicly available information is permissible. That said, legality depends on your specific use case, jurisdiction, and how you use the data. Consult a legal professional if you have concerns. Always use scraped data responsibly and in compliance with applicable data protection laws, including GDPR.
How many posts can I scrape?
There is no hard limit on the number of posts you can scrape in a single run. Control the volume with the maxResultsPerSearch parameter. A run with 10 keyword-location combinations and maxResultsPerSearch set to 100 will attempt to retrieve up to 1,000 posts. For very large-scale scraping (hundreds of thousands of posts per month), consider reaching out to sales@beatanalytics.org for Enterprise plans with volume discounts.
Can I filter results by location or radius?
Yes. Set searchLocations to one or more city names or postal codes (e.g. "Berlin", "10178", "München"). Use searchRadius to expand the search to include listings within a given distance: supported values are 0, 5, 10, 20, 30, 50, 100, 150, and 200 km. A radius of 0 (the default) restricts results to the specified location only. Each result includes the full location string from the post plus approximate GPS coordinates, so you can also filter or group results geographically after scraping.
Can I filter search results by price, seller type, or ad type?
Yes. Keyword searches support a full set of filters: minPrice and maxPrice restrict results to a price range in €, sellerType limits to private or commercial (Gewerblich) sellers, and adType limits to offered ("Ich biete") or wanted ("Ich suche") posts. You can also require shipping (shippable), require photos (pictureRequired), or restrict to buy-now listings (buyNowOnly), and control ordering with sort (recommended, newest, price_asc, price_desc). These filters apply to keyword search only; direct URL and Anzeigen-ID lookups always return the full post regardless of filters.
Does the scraper return GPS coordinates and seller profile data?
Yes. Every post includes approximate GPS coordinates (latitude, longitude, and a radiusKm obfuscation radius Kleinanzeigen applies to protect exact addresses), plus regions for the state/region. The user object goes beyond name and commercial status to include sellerType (private / commercial / pro), storeId for shop sellers, memberSince, and trust badges (reliability, friendliness). Posts also carry publishTimestamp and lastEditTimestamp, shipping options, buyer-protection fees, and, on listings that have them, attached documents (e.g. Energieausweis PDFs) and media (e.g. YouTube tours).
What is the difference between "fixed", "negotiable", and "give_away" price types?
The priceType field maps to Kleinanzeigen's three pricing modes:
"fixed"- Festpreis: the seller expects the listed price, no negotiation."negotiable"- Verhandlungsbasis (VB): the seller is open to offers below the listed price."give_away"- Zu verschenken: the item is being given away for free.
Use this field to filter results programmatically, for example to focus only on Festpreis listings when you need predictable pricing data, or on Zu verschenken listings for free goods research.
What are "properties" in the output?
The properties field contains structured, category-specific attributes for each post. These are the key-value fields that sellers fill in when creating a listing, and they vary by category. For a smartphone listing, properties might include {"name": "Art", "value": "Apple"}, {"name": "Zustand", "value": "Neu"}, and {"name": "Farbe", "value": "Grau"}. For a car listing, you would see mileage, fuel type, and year of manufacture. In the CSV export, properties are flattened to one "Name: Value" pair per line.
What export formats are supported?
The Kleinanzeigen Scraper supports five export formats, all available directly from the Apify platform with no additional configuration:
- JSON - structured data, ideal for programmatic processing and API integrations
- CSV - comma-separated values, opens directly in Excel, Google Sheets, or any spreadsheet tool
- Excel (.xlsx) - native Microsoft Excel format with proper column types
- XML - for systems that consume XML feeds or require XML-based data exchange
- HTML - human-readable table view for quick visual inspection
You can download data in any format from the Storage tab after a run completes, or retrieve it programmatically through the Apify API.
How often is the data updated?
The Kleinanzeigen Scraper fetches live data from Kleinanzeigen every time it runs. There is no cached or stale data - each run makes fresh requests and returns the most current listings available at that moment. To track new listings or price changes over time, schedule the scraper to run on a recurring basis (hourly, daily, weekly, or on a custom cron schedule) using Apify's built-in scheduling feature.
How do I scrape Kleinanzeigen listings for market research? (Wie kann ich Kleinanzeigen-Inserate für Marktforschung scrapen?)
Enter your target keywords (e.g. product names, categories) in searchKeywords, add one or more German cities or postal codes in searchLocations, and set maxResultsPerSearch to the volume you need. Run the scraper, then download the results as CSV or JSON for analysis. For ongoing market research, use Apify's scheduling feature to run the scraper daily or weekly and track how prices and supply volumes evolve over time.
Can I look up specific posts by their Anzeigen-ID?
Yes. Use the postIds input field and provide one or more Anzeigen-IDs (the numeric ID visible in each Kleinanzeigen URL). The scraper fetches full post details for each ID directly. You can combine this with keyword search in the same run; the results from all sources are merged and deduplicated automatically.