Kleinanzeigen Seller & Store Scraper
Pricing
$1.50 / 1,000 posts
Kleinanzeigen Seller & Store Scraper
Scrape any Kleinanzeigen seller or store: full profile with ratings, reply rate, and ad counts, plus every active listing with prices, images, and shipping. Monitor competitors, watch dealer inventory, generate B2B leads. Works with profile URLs or IDs. Export as JSON, CSV, or Excel.
Pricing
$1.50 / 1,000 posts
Rating
0.0
(0)
Developer
Beat Analytics
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Kleinanzeigen Seller & Store Scraper - Profiles, Ratings & Every Active Ad
Kleinanzeigen-Händler und -Shops komplett auslesen - Profil, Bewertungen und alle aktiven Anzeigen in einem Durchlauf. Geben Sie eine Verkäufer- oder Shop-URL ein und erhalten Sie strukturierte Daten zu Bewertungen, Antwortrate, Followern, Adresse, Öffnungszeiten und jedem einzelnen Inserat. Kein API-Key nötig. Export als JSON, CSV oder Excel.
Kleinanzeigen Seller & Store Scraper is an Apify actor that extracts the complete public profile of any Kleinanzeigen.de seller or store (formerly eBay Kleinanzeigen) together with their full active inventory. Kleinanzeigen has no public API, so this scraper stands in for one: per seller it returns the rating (0-5), reply rate and speed, follower and ad counts, and trust badges; per store it adds the street address, GPS coordinates, phone number, opening hours, and legal imprint; and for both it lists every active ad with price, images, and shipping info. Built for competitive intelligence, dealer monitoring, and B2B lead generation on Germany's largest classifieds platform.
- Why use this Kleinanzeigen seller scraper?
- What data can you extract from Kleinanzeigen sellers and stores?
- How to scrape Kleinanzeigen sellers and stores
- Input parameters
- Output example
- How much does it cost to scrape Kleinanzeigen sellers?
- Use cases for Kleinanzeigen seller data
- Integrations and API access
- Frequently asked questions
- Related actors
Why use this Kleinanzeigen seller scraper?
- 🏪 Full store profiles - title, description, highlights, street address, zip code, GPS coordinates, phone number, opening hours, logo, gallery images, and the legal imprint (Impressum) with company name and registration details.
- ⭐ Seller trust metrics not visible in any feed - average rating on a 0-5 scale, friendliness and reliability badge levels, reply rate (e.g. "96%"), typical reply speed (e.g. "12h"), and follower count.
- 📦 Every active ad, automatically paginated - the scraper walks through the seller's complete inventory (30 ads per page) up to the limit you set; a store with 800 listings is one input row, not 27.
- 🔗 Works with URLs or IDs - paste seller profile URLs (
s-bestandsliste.html?userId=...), store URLs (kleinanzeigen.de/pro/...), or raw seller/store IDs; mix them freely in one run. - 🔄 Seller and store linked automatically - give a seller and you also get their store profile; give a store and you also get the owner's seller profile. Every ad row carries both.
- 📇 Profiles-only mode - set
maxAdsPerSellerto 0 to pull just the profiles, e.g. to enrich a list of 500 seller IDs with ratings and contact data at minimal cost. - 🧮 Inventory counts included -
onlineAdsandhistoricalAdsper seller show how large and how active a dealer is before you scrape a single listing. - 🛡️ Automatic deduplication - if a seller and their store are both in the input, the inventory is scraped once, not twice.
- 💾 Export as JSON, CSV, Excel, XML, or HTML - all five formats work out of the box; the CSV flattens both profiles into
seller_*andstore_*columns. - 🌐 No API key required - Kleinanzeigen offers no public API. This scraper needs no registration, tokens, or configuration.
What data can you extract from Kleinanzeigen sellers and stores?
Each result row is one active ad with the seller and store profile attached. If a profile has no active ads (or you set maxAdsPerSeller to 0), you still get one row with the profile data.
Seller profile (seller):
- id - Kleinanzeigen user ID
- name - display name
- sellerType -
privateorcommercial - memberSince - registration date (e.g.
"2009-09-01") - historicalAds - total ads ever posted
- onlineAds - currently active ads
- followers - number of users following the seller
- rating - average rating, 0-5 scale (e.g.
3.5) - friendliness / reliability - badge levels 1-3
- replyRate - share of messages answered (e.g.
"96%") - replySpeed - typical reply time (e.g.
"12h") - securePayment - whether "Sicher bezahlen" is offered
- storeId - linked store, or null for sellers without one
Store profile (store, null for private sellers):
- title, summary, description - store name and self-description
- usps - store highlights (e.g.
"Faire Preise","Direkt ab Lager") - street, zipCode, location, latitude, longitude - full address with GPS coordinates
- phone - store phone number
- openingHours - structured opening hours per weekday group
- imprint - the legal Impressum text: company name, owner, tax/registration numbers
- logo, headerImage, images - branding and gallery image URLs
- url - public store page
- active, commercial - store status flags
Each ad:
- id, url, title, description - listing identity and text excerpt
- price - in EUR (e.g.
"139.00"), or null - priceType -
fixed(Festpreis),negotiable(VB), orgive_away - buyNowPossible - whether "Direkt kaufen" is available
- location, publishDate, publishTime - where and when it was posted
- shipping - e.g.
"Versand möglich", or null for pickup only - categoryId - numeric Kleinanzeigen category
- properties - structured attributes (e.g.
"Zustand: Sehr Gut") - images - image URLs from the Kleinanzeigen CDN
How to scrape Kleinanzeigen sellers and stores
- Create an Apify account. Sign up at apify.com if you do not have one yet. Every new account includes $5 in free credits - enough for over 3,000 results at no cost.
- Open the Kleinanzeigen Seller & Store Scraper in the Apify Store and click "Try for free".
- Add sellers or stores. Paste seller profile URLs or store URLs into "Seller or store URLs", or enter numeric IDs into "Seller IDs" / "Store IDs". A seller's profile URL is the "Weitere Anzeigen" / "Alle Anzeigen dieses Nutzers" link on any listing.
- Set the ad limit (optional). By default, every active ad of each profile is scraped. Use "Max ads per seller/store" to cap the inventory per profile, or set it to 0 for profiles only.
- Start the actor and download your data. When the run finishes, grab the results from the Output tab as JSON, CSV, Excel, XML, or HTML.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
profileUrls | array | - | Seller profile URLs (https://www.kleinanzeigen.de/s-bestandsliste.html?userId=...) or store URLs (https://www.kleinanzeigen.de/pro/...) |
sellerIds | array | - | Kleinanzeigen user IDs (e.g. 197907) |
storeIds | array | - | Kleinanzeigen store IDs (e.g. 7222), found in the storeId field of search results and seller profiles |
maxAdsPerSeller | integer | unlimited | Maximum ads scraped per seller or store; leave empty to scrape all active ads, 0 scrapes profiles only |
All three input lists can be combined in one run; duplicate sellers/stores are scraped only once.
Output example
One dataset item per ad, with both profiles attached:
{"id": 3434185579,"url": "https://www.kleinanzeigen.de/s-anzeige/nintendo-64-konsole-mit-super-mario-64-spiel-top-zustand-/3434185579-279-3489","title": "Nintendo 64 Konsole mit Super Mario 64 Spiel - Top-Zustand !!!","description": "Verkaufe eine super gut erhaltene Nintendo 64 Konsole mit Super Mario 64 Spiel, Controller, Netzteil und Anschlusskabel...","location": "10435 Prenzlauer Berg","price": "139.00","priceType": "fixed","buyNowPossible": false,"categoryId": 279,"sellerType": "pro","storeId": 7222,"publishDate": "2026-07-13","publishTime": "14:06","shipping": "Versand möglich","properties": [{"name": "Art","value": "Weitere Konsolen","key": "konsolen.art","valueKeys": ["weitere"]}],"images": ["https://img.kleinanzeigen.de/api/v1/prod-ads/images/b1/b19d09e9-6bf9-496f-b760-c1cb099d74de?rule=$_59.AUTO"],"seller": {"id": 197907,"name": "An & Verkauf - Technik Berlin","sellerType": "commercial","memberSince": "2009-09-01","historicalAds": 92761,"onlineAds": 800,"followers": 3365,"rating": 3.5,"friendliness": 0,"reliability": 1,"replyRate": "96%","replySpeed": "12h","securePayment": false,"storeId": 7222},"store": {"id": 7222,"userId": 197907,"title": "An und Verkauf Prenzlauer Berg - Fairer Ankauf - Bargeld sofort - Wir freuen uns auf Ihren Besuch","summary": null,"description": "An und Verkauf von Neu- und Gebrauchtwaren wie z.B. Technik, Handy's, Telekommunikation, Tablet's, PC, MAC und Notebook's...","usps": [],"logo": "https://img.kleinanzeigen.de/api/v1/prod-user/images/cb/cbaa42b9-c9a0-42ed-9f39-c4193ebc78ae?rule=$_59.JPG","headerImage": null,"images": [],"phone": "03042024900","imprint": "Angaben gemäß § 5 TMG: \r\n\r\nAn und Verkauf - Technik - Berlin Prenzlauer Berg \r\nInh. D. Bernd Lange \r\nDanziger Str. 70 \r\n10435 Berlin ...","openingHours": [],"location": "Pankow - Prenzlauer Berg","locationId": 3489,"zipCode": "10435","street": "Danziger Str. 70","latitude": 52.5391,"longitude": 13.4233,"url": "https://www.kleinanzeigen.de/pro/An-und-Verkauf---Xelomedia","active": true,"commercial": true}}
In the CSV export the profiles are flattened into seller_* and store_* columns (e.g. seller_rating, seller_replyRate, store_phone, store_street), lists like images are newline-joined, and opening hours become one readable string ("Mo - Fr: 09:00 - 17:30; Sa: 09:00 - 14:00"). The same data is also available as Excel, XML, and HTML.
How much does it cost to scrape Kleinanzeigen sellers?
The Kleinanzeigen Seller & Store Scraper uses per-result pricing: you only pay for the rows you get.
$1.50 per 1,000 results - each ad counts as one result; a profile-only row (a seller without active ads, or a profiles-only run) also counts as one. Scraping a dealer with 200 active listings costs $0.30.
Free trial: every new Apify account comes with $5 in free platform credits, no credit card required - enough for over 3,000 results at no cost.
For large volumes (monitoring hundreds of dealers daily), Enterprise plans with volume discounts are available - contact sales@beatanalytics.org.
Use cases for Kleinanzeigen seller data
- Competitive intelligence - track rival dealers' full inventory, pricing, and listing velocity.
historicalAdsversusonlineAdsshows turnover; daily scheduled runs show what they list and delist. - Dealer and inventory monitoring - watch specific stores for new stock (e.g. used electronics, spare parts, vehicles) and get notified through webhooks the moment a run finds new listings.
- B2B lead generation - the store
imprintcontains company names, owners, and registration numbers; combined withphone, address, and opening hours you get a contact-ready record for every commercial seller in your niche. - Sourcing and arbitrage - scan high-volume sellers for underpriced items across their whole inventory instead of searching keyword by keyword.
- Trust and fraud screening - check
rating,reliability,replyRate, andmemberSincebefore high-value purchases, or screen marketplace counterparties in bulk. - Local market analysis - map commercial sellers by GPS coordinates and zip code to measure dealer density per city or region.
- Price benchmarking - compare your own pricing against a named competitor's complete catalog, not just the ads that happen to rank in search.
Integrations and API access
The Kleinanzeigen Seller & Store 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 = {"profileUrls": [{"url": "https://www.kleinanzeigen.de/s-bestandsliste.html?userId=197907"},],"storeIds": ["202135"],"maxAdsPerSeller": 200,}run = client.actor("beatanalytics/kleinanzeigen-seller-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['title']} - {item['price']} EUR - {item['seller']['name']}")
JavaScript / Node.js
Use the Apify JavaScript SDK to integrate seller 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-seller-scraper").call({sellerIds: ["197907"],maxAdsPerSeller: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(`${item.title} - ${item.price} EUR - rating ${item.seller.rating}`);});
No-code integrations
Connect the scraper to thousands of apps without writing code:
- Make (formerly Integromat) - trigger workflows when new seller data is scraped, or schedule regular runs as part of larger automations
- Zapier - send new listings to Google Sheets, Slack, email, CRM tools, and 5,000+ other apps
- Webhooks - receive HTTP notifications when a 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
Run the scraper on a schedule (hourly, daily, weekly, or custom cron) to monitor dealers over time. Comparing consecutive runs shows new listings, removed (likely sold) items, and price changes per seller - the core loop of any dealer-monitoring or competitive-intelligence workflow.
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
Can I get all ads from one Kleinanzeigen seller? / Wie bekomme ich alle Anzeigen eines Verkäufers?
Yes, that is exactly what this scraper does. Enter the seller's profile URL (the "Alle Anzeigen dieses Nutzers" link, s-bestandsliste.html?userId=...) or their user ID, and the scraper pages through their complete active inventory automatically. Set maxAdsPerSeller if you want to cap the number of ads per profile instead.
Ja. Geben Sie die Profil-URL des Verkäufers oder die Nutzer-ID ein, und der Scraper lädt automatisch alle aktiven Anzeigen des Verkäufers, Seite für Seite.
Where do I find a seller's user ID or a store ID?
The user ID is in the seller's profile URL: https://www.kleinanzeigen.de/s-bestandsliste.html?userId=197907 → 197907. Store IDs appear in the storeId field of this scraper's output, in seller profiles, and in every search result of the Kleinanzeigen Scraper. You can also just paste the store's public URL (kleinanzeigen.de/pro/...) and skip the ID entirely.
Does this work for private sellers, or only commercial stores?
Both. Private sellers return the full seller profile (rating, reply rate, badges, ad counts) with store set to null. Commercial sellers additionally return the linked store profile with address, phone, opening hours, and imprint.
What is the difference between the seller profile and the store profile?
The seller profile is the user account: trust metrics, ratings, reply behavior, follower and ad counts. The store profile is the commercial storefront some sellers run: business name, description, address, contact data, and legal imprint. They are linked (seller.storeId ↔ store.userId), and the scraper always fetches both when they exist, no matter which one you provided as input.
Can I scrape just the profiles without the ads?
Yes. Set maxAdsPerSeller to 0. Each seller or store then produces exactly one row containing both profiles and empty ad fields. This is the cheapest way to enrich a list of seller IDs with ratings, reply rates, and store contact data.
Is there an official Kleinanzeigen API for seller data?
No. Kleinanzeigen (formerly eBay Kleinanzeigen) has no public API; the official one is partner-only. Seller ratings, reply rates, store imprints, and inventory listings are not available through any official programmatic channel - this scraper is the alternative, returning them as structured JSON without authentication or API keys.
Is it legal to scrape Kleinanzeigen seller profiles?
This scraper only accesses publicly visible profile pages and 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, seller profiles contain personal and business data: how you store and use it is subject to GDPR and applicable law, and commercial imprints exist precisely to identify businesses publicly. Consult a legal professional for your specific use case.
How many sellers or stores can I scrape in one run?
There is no hard limit on the number of profiles per run; add as many URLs and IDs as you need. Volume is controlled by maxAdsPerSeller: 50 dealers with a limit of 100 yields up to 5,000 results. For very large recurring volumes, contact sales@beatanalytics.org for Enterprise plans.
Why does an ad row say sellerType "pro" but the seller profile says "commercial"?
Ads distinguish three seller tiers (private, commercial, pro - the last being paying store owners), while the profile endpoint reports two (private / commercial). A "pro" ad simply belongs to a commercial seller with a store subscription; the attached store object carries the storefront details.
What happens if a seller has no active ads?
You still get one result row with the complete seller (and store) profile and empty ad fields, so profile enrichment works even for currently inactive sellers. The row counts as one result for billing.
How current is the data? / Wie aktuell sind die Daten?
Every run fetches live data directly from Kleinanzeigen - there is no cache. onlineAds, ratings, and the inventory reflect the moment the run executes. Schedule recurring runs to build a time series of a dealer's stock and ratings.
Related actors
Kleinanzeigen Scraper - search Kleinanzeigen by keyword, location, and category, or look up individual posts by URL/ID with full details (GPS coordinates, shipping options, timestamps). The two actors chain naturally: run a keyword search there (e.g. "iPhone" with sellerType: "commercial"), collect the storeId values from the results, then feed them into this scraper's storeIds input to profile every dealer in that market segment - complete with ratings, contact data, and full inventories. Or go the other way: take ad IDs from this scraper's output and fetch their full details (complete description, coordinates, shipping options) with the Kleinanzeigen Scraper.