Kaufland Seller Contact Scraper — Emails, Phone, VAT
Pricing
from $4.00 / 1,000 seller scrapeds
Kaufland Seller Contact Scraper — Emails, Phone, VAT
Turn any Kaufland search, product or shop URL into a lead list of the third-party sellers — legal name, address, VAT, phone and email from the impressum. Germany, Austria, Czechia, Slovakia, Poland, France and Italy. Every offer, not just the buy-box. Pure HTTP. JSON/CSV.
Pricing
from $4.00 / 1,000 seller scrapeds
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
5 hours ago
Last modified
Categories
Share
Turn any Kaufland.de keyword, product page or shop URL into a clean list of the third-party sellers behind those products — with the legal name, address, VAT, phone and email Kaufland publishes on each seller's impressum.
One unique seller row per shop. Every competing offer, not just the buy-box. Pure HTTP, no browser. JSON or CSV.
Why Use This Scraper?
- Companies, not products. Most Kaufland scrapers return catalog rows. This one returns the businesses selling them — the people you actually want to reach.
- Every offer, not just the buy-box. The product offers API returns all competing sellers in one call. The on-site "Weitere Angebote ansehen" button is UI only.
- Impressum-grade contact. German TMG / DSA listing: legal business name, address, email, phone, VAT and trade-register number when the seller published them.
- Emails deobfuscated. Kaufland prefixes published emails with a zero-width character plus a decoy letter. This actor strips that so you get
info@shop.de, notjinfo@shop.de. - Same shape as the Amazon seller actor. Keyword or URL in, one row per unique seller out. Mix search queries with product, shop and impressum URLs in one run.
- Opt-in email enrichment. For the few shops whose impressum has no email, resolve the legal name to a company website and scan it for a contact address.
Overview
Built for B2B lead generation, supplier discovery, brand-protection and competitor research on Kaufland Germany, Austria, Czechia, Slovakia, Poland, France and Italy. Search queries use the country input. A pasted URL uses the country in its host.
The dataset is seller-shaped. A search query, a product URL or a shop URL all resolve to unique seller rows — never one row per product and never one row per offer. If the same shop appears on three COSRX products, you get one row and sourceProductIds lists every product that led there.
This is not a product scraper. Titles, prices, EAN and stock are not in the output.
Supported Inputs
URL types
| URL type | Pattern | Example |
|---|---|---|
| Search results | /s/?search_value= | https://www.kaufland.de/s/?search_value=cosrx |
| Product page | /product/{id}/ | https://www.kaufland.de/product/407375906/ |
| Shop storefront | /shops/{name}/ | https://www.kaufland.de/shops/Smartpanther/ |
| Seller impressum | /shops/{name}/profile/?id_seller= | https://www.kaufland.de/shops/ROYALUXY/profile/?id_seller=84822966&type=imprint |
Copy-pasteable startUrls
{"startUrls": [{ "url": "https://www.kaufland.de/s/?search_value=cosrx" },{ "url": "https://www.kaufland.de/product/407375906/" },{ "url": "https://www.kaufland.de/shops/Smartpanther/" }]}
Keyword / search mode
{"searchQueries": ["cosrx", "phone case"],"maxItems": 50}
searchQueries and startUrls can run together. Each source is classified by path; you do not pick a mode.
Unsupported inputs
- Seller cockpit / login URLs
- Shortened or redirect URLs that do not land on
kaufland.de,.at,.cz,.sk,.pl,.fror.it - Product-catalog export (use a product scraper)
Use Cases
| Audience | Use case |
|---|---|
| Outbound / SDR teams | Build email-and-phone lists of Kaufland.de sellers in a niche or brand. |
| Sourcing / procurement | Find the legal entities behind a product, with VAT and trade-register numbers. |
| Brand protection | Enumerate every third-party shop offering a given product id, buy-box and beyond. |
| Marketplace intelligence | Map who sells a brand, from which country, and under which legal name. |
| Agencies | Deliver a client-ready seller contact file without writing a scraper. |
How It Works

- Input — paste search queries and/or Kaufland.de URLs. Each URL is classified as search, product, shop or impressum.
- Find products — search and shop pages yield product ids; a product URL is used as-is.
- Read every offer —
GET /api/pdp-frontend/v1/{productId}/offersreturns all competing sellers in one JSON payload. - Parse the impressum —
GET /api/pdp-frontend/v1/{sellerId}/seller-infocarrieslegalData.imprint. Emails are deobfuscated. - Deduplicate — one row per unique seller. Optional website scan fills
contactEmailonly when the impressum had no email.
Input Configuration
| Field | Type | Required | Notes |
|---|---|---|---|
searchQueries | array<string> | no (or URLs) | Brand or keyword searches. Example: ["cosrx"]. Run on the country storefront. |
country | string | no | Storefront for the searches: de, at, cz, sk, pl, fr, it. Default de. Start URLs take their country from the host instead. |
startUrls | array<{ url }> | no (or queries) | Search, product, shop or impressum URLs on any supported Kaufland country host, mixed freely. |
maxItems | integer | no | Max sellers per search query / start URL. Two searches at 50 return up to 100 total. Prefill 50. Products to inspect are auto-derived; total spend is bounded by the run's max-charge limit. |
enrichEmails | boolean | no | Opt-in website scan for shops with no impressum email. Default false. |
qualifyByPayment | boolean | no | Requires enrichEmails. Flags sites that take payments online. Default false. |
concurrency | integer | no | Parallel fetches, 1–20. Default 8; clamped to the run's memory. |
Need at least one of searchQueries or startUrls.
Common scenarios
1. Brand keyword → seller leads
{"searchQueries": ["cosrx"],"maxItems": 50,"enrichEmails": false}
2. Every seller on one product
{"startUrls": [{ "url": "https://www.kaufland.de/product/407375906/" }],"maxItems": 25}
3. Mixed URLs + enrichment
{"startUrls": [{ "url": "https://www.kaufland.de/s/?search_value=cosrx" },{ "url": "https://www.kaufland.de/shops/Smartpanther/" }],"maxItems": 80,"enrichEmails": true}
Output Overview
Each dataset item is one unique Kaufland.de seller. Search, product and shop starts all emit this same row shape.
- Identity — seller id, shop name, storefront URL, impressum URL
- Legal — business name, address, country, VAT, trade-register number, full imprint text
- Contact — published email (deobfuscated) and phone when the impressum has them
- Provenance — source product ids and the URL that discovered the seller
- Optional enrichment —
contactEmail/contactWebsitewhenenrichEmailsis on and the impressum had no email
Sparse fields stay null when the seller did not publish them. That is a gap on Kaufland, not a dropped parse.
Output Samples
Product start (/product/407375906/)
{"sellerId": "48748000","marketplace": "kaufland.de","sellerUrl": "https://www.kaufland.de/shops/medpak_shop/profile/?id_seller=48748000&type=imprint","sellerName": "medpak_shop","storefrontUrl": "https://www.kaufland.de/shops/medpak_shop/","isBusinessSeller": true,"businessName": "NMM sp. z o.o.","registrationNumber": "0000982292","vatNumber": "PL6762621979","phoneNumber": "+48 123120554","email": "info@medpak.shop","businessAddress": "Bocheńska 3/17","addressCountryCode": "PL","sourceProductIds": ["407375906"],"sourceUrl": "https://www.kaufland.de/product/407375906/","scrapedAt": "2026-09-21T12:24:44.496Z","contactEmail": "info@medpak.shop"}
Search start (cosrx)
Same seller shape. sourceUrl is the search page; sourceProductIds lists the product(s) that surfaced the shop.
{"sellerId": "76996843","marketplace": "kaufland.de","sellerName": "Smartpanther","businessName": "Eduard Dutt","email": "info@smartpanther.de","phoneNumber": "+49 97816372","vatNumber": "DE301628081","businessAddress": "Rose-Ausländer-Str. 2","addressCountryCode": "DE","sourceProductIds": ["509191334"],"sourceUrl": "https://www.kaufland.de/s/?search_value=cosrx"}
Key Output Fields
Identity
sellerId,sellerName,marketplace(kaufland.de,.at,.cz,.sk,.pl,.fror.it)storefrontUrl,sellerUrl(impressum),isBusinessSeller
Legal / impressum
businessName,businessAddress,addressLines,addressCountryCodevatNumber,registrationNumber,imprint
Contact
email— published impressum email, deobfuscatedphoneNumber— published impressum phonecontactEmail/contactWebsite— filled by opt-in enrichment, or a copy ofemailwhen one was already on the page
Provenance
sourceProductIds,sourceUrl,scrapedAt
Pricing
Pay-per-event. A seller row is always billed. Email and phone are extra, and only when that field is actually present.
| Event | When | Price |
|---|---|---|
| Actor start | Once per GB of run memory | $0.005 |
| Seller scraped | Every unique seller row | $0.004 |
| Published email | Impressum contains an email | $0.002 |
| Published phone | Impressum contains a phone | $0.002 |
| Enriched email | Opt-in website scan found an email the impressum lacked | $0.002 |
A seller with email + phone costs $0.008. A seller with neither contact field costs $0.004. Published Kaufland emails are never billed as enrichment.
FAQ
Which Kaufland URLs are supported?
www.kaufland.{de,at,cz,sk,pl,fr,it} search (/s/?search_value=), product (/product/{id}/), shop (/shops/{name}/) and impressum (/profile/?id_seller=) URLs. Login pages are skipped.
Do I get product rows or seller rows?
Seller rows only. A product URL still emits one row per unique shop offering that product.
Will every seller have an email and a phone?
Most commercial shops publish both. Some impressums only have a name and address. VAT is also optional — a few EU sellers leave it off the page. Empty fields are not billed.
Does "view more sellers" need a browser?
No. The offers API returns the full competing-seller list.
What does a shop URL actually scrape?
The shop is resolved to its seller id. Listings on that shop can also surface competing offer merchants, the same way a product page does. Cap the run with maxItems if you only want the shop itself.
Are emails already on Kaufland charged as enrichment?
No. Impressum emails bill as seller-email. The contact-email event fires only when enrichment is on and the website scan finds an address the impressum lacked.
Other Kaufland countries?
Yes. country selects the storefront for search queries: de, at, cz, sk, pl, fr, it. A start URL ignores that field and uses its own host.
Can I mix search queries and URLs?
Yes. Each source is classified on its own.
Support
Found a bug or need a field added? Open an issue on the actor's Issues tab.
Additional Services
Need another marketplace in the same seller-row shape, a custom export, or a scheduled monitor on a brand? I do tailored work — open an issue or reach me via the memo23 store profile.
Explore More Scrapers
- Amazon Seller Contact Scraper — Emails, Phone, VAT & Ratings — the same one-row-per-seller pipeline across 18 Amazon marketplaces
- More e-commerce, directory and lead-generation actors on the memo23 store profile
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/kaufland-sellers-scraper).
Purpose: Turns a Kaufland keyword, product page, shop URL or impressum URL into one row per unique third-party seller with the published impressum (legal name, address, VAT, phone, email) on de, at, cz, sk, pl, fr and it.
Minimal input:
{"searchQueries": ["cosrx"],"maxItems": 25}
URL mode: { "startUrls": [{ "url": "https://www.kaufland.de/product/407375906/" }], "maxItems": 25 } — accepts search (/s/?search_value=), product (/product/{id}/), shop (/shops/{name}/) and impressum (/profile/?id_seller=) URLs.
Output: one row per unique seller — sellerId, marketplace, sellerUrl, sellerName, storefrontUrl, isBusinessSeller, businessName, registrationNumber, vatNumber, phoneNumber, email, businessAddress, addressLines, addressCountryCode, imprint, sourceProductIds, sourceUrl, scrapedAt, plus contactEmail / contactWebsite when enrichEmails is on.
Behaviors an agent should know:
maxItemsis per search / URL; the run total ismaxItems × number of sources, so raise it for deeper pulls or lower it to cap spend.startUrlsrun in addition tosearchQueries. Host must be a Kaufland storefront (de,at,cz,sk,pl,fr,it). Search queries usecountry(defaultde).- Output is seller-shaped, not product-shaped. Duplicate shops collapse to one row.
enrichEmails: trueis opt-in and only fills sellers with no impressum email.- Billing: $0.004 per seller row, $0.002 per published email, $0.002 per published phone; enrichment $0.002 only when a missing email is found off-site.
- Supported hosts: kaufland.de, .at, .cz, .sk, .pl, .fr, .it. Anything else is skipped.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Kaufland Dienstleistung GmbH & Co. KG, Kaufland Stiftung & Co. KG, Schwarz Gruppe, or any of their subsidiaries. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available Kaufland storefront pages and public product/seller JSON — no authenticated endpoints, seller-cockpit data, or content behind a login wall. Users are responsible for ensuring their use complies with Kaufland's Terms of Service, applicable data-protection law (GDPR, ePrivacy, CCPA), and any marketing / anti-spam rules that apply to how they contact the businesses they find. You are responsible for how you use the scraped data.
SEO Keywords
kaufland scraper, kaufland.de scraper, kaufland seller scraper, kaufland seller email, kaufland impressum scraper, kaufland marketplace sellers, kaufland contact scraper, kaufland VAT number, kaufland händler kontaktdaten, kaufland seller phone, kaufland lead generation, kaufland supplier scraper, kaufland third-party sellers, marketplace seller contact scraper, german marketplace leads, B2B seller email scraper, ecommerce seller intelligence, kaufland JSON export, kaufland CSV export