MediaMarkt Germany Scraper - Products, Prices, Specs & Reviews
Pricing
from $1.00 / 1,000 product results
MediaMarkt Germany Scraper - Products, Prices, Specs & Reviews
Scrape MediaMarkt.de products by keyword or URL. Extract current and original prices, discounts, brands, EANs, category paths, availability, images, full specifications, marketplace seller offers, ratings, and customer reviews.
Pricing
from $1.00 / 1,000 product results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
MediaMarkt.de Product Scraper
Pull rich product data from MediaMarkt Germany (mediamarkt.de), one of Germany's largest electronics retailers. Search by keyword and/or category with the site's own brand, price-range, and rating filters and native sort, or paste product, category, or search listing links directly. Every record includes the current price, and when a product genuinely carries a reduced original price, the strike-through price plus the computed discount amount and percentage.
Why This Scraper?
- Was-price and discount, gated on the site's own signal, never guessed. When a product carries a struck-through original price, both prices are captured plus the discount amount and percentage. A full-price product simply carries
originalPrice: null-- nothing is fabricated. - Real customer reviews. Average rating, total review count, and each product's most recent reviews with rating, title, full text, date, and verified-purchaser flag.
- Full spec sheet on demand. The flattened characteristics MediaMarkt itself shows per product -- RAM/CPU/display for a laptop, panel type/resolution for a TV, and so on -- never hardcoded to one category's fields.
- Marketplace-aware. Distinguishes MediaMarkt's own retail offers from third-party marketplace sellers, including seller name and rating when a listing is a marketplace offer.
- Real site filters. Brand, price range, minimum rating, and MediaMarkt's own sort order (price, rating, topseller, newest, availability) -- all verified live against the site's own controls, not guessed query parameters.
- Two ways in. Keyword and/or category search, or paste any product/category/listing link and continue pagination automatically.
- Optional export to your apps. Send results into Notion, Linear, Airtable, or any Apify MCP connector alongside the dataset.
Data You Get
| Field | Example value |
|---|---|
| productId / sku | 2986202 |
| ean | 0198990974613 |
| name | Sample Notebook 16 Zoll |
| brand | Sample Brand |
| category / categoryPath | 16 Zoll Laptops, ["Computer & Büro", "Laptops & Notebooks", "16 Zoll Laptops"] |
| url | https://www.mediamarkt.de/de/product/_sample-notebook-2986202.html |
| price / currency | 749, EUR |
| originalPrice / discountAmount / discountPercent | 1199, 450, 37 |
| isOnSpecial / strikePriceType | true, RRP |
| onlineAvailable / availabilityStatus | true, ONLINE |
| isMarketplace / marketplaceSeller | false, {"sellerId": "...", "sellerName": "Sample Seller", "sellerRating": 4.4} |
| image / images | ["https://assets.mmsrg.com/isr/.../ASSET_SAMPLE"] |
| specs | {"Bildschirmdiagonale": "16 Zoll", "Arbeitsspeicher (RAM)": "16 GB"} (flattened, varies per category) |
| delivery / pickup | {"status": "AVAILABLE", ...}, {"status": "AVAILABLE", "isPickable": true} |
| otherOffers | other sellers' offers for the same product, when present |
| rating / reviewCount | 4.3, 155 |
| reviews.averageRating / reviews.totalReviewCount | 4.3, 155 |
| reviews.items[] | [{"rating": 5, "title": "Sample title", "text": "Sample review text.", "reviewerName": "Sample User", "date": "2026-07-01T21:49:37.000Z", "isVerifiedPurchaser": true}] |
Sample shape: values above are illustrative placeholders, not from a live product.
How to Use
1. Keyword search, first page, with reviews (default):
{"mode": "search","searchTerm": "notebook","maxItems": 20}
2. Category browse, filtered to a brand and price range, sorted by price:
{"mode": "search","categoryId": "362","brands": ["ASUS"],"minPrice": 300,"maxPrice": 900,"sortBy": "PRICE_ASC","maxItems": 50,"maxPages": 5}
3. Full product detail + reviews for pasted product links:
{"mode": "url","urls": ["https://www.mediamarkt.de/de/product/_sample-notebook-2986202.html"],"fetchDetails": true,"fetchReviews": true,"maxReviewsPerProduct": 10}
4. Paste a listing link and keep paginating forward:
{"mode": "url","urls": ["https://www.mediamarkt.de/de/search.html?query=kaffeemaschine"],"maxItems": 100,"maxPages": 10}
5. Continue a previous run, collecting only new products:
{"mode": "search","categoryId": "362","resumeFromRunId": "<a previous run id or dataset id>"}
Input Parameters
| Parameter | Type | Description |
|---|---|---|
mode | string | search or url. |
searchTerm | string | Free-text keyword (search mode only). |
categoryId | string | Numeric MediaMarkt category id, from a category URL like .../laptops-notebooks-362.html -> 362 (search mode only). |
brands | array | Exact brand names to keep. Applies in both search and URL mode. |
minRating | integer | 1-5, minimum rating to keep. Applies in both search and URL mode. |
minPrice / maxPrice | number | EUR price band to keep. Applies in both search and URL mode. |
sortBy | string | RELEVANCE, PRICE_ASC, PRICE_DESC, RATING, TOPSELLER, NEWEST, or AVAILABILITY. Applies in both search and URL mode -- URL mode rebuilds the pasted listing URL's request rather than replaying it, so a pasted URL's own sort parameter is replaced by this input. |
urls | array | Product, category, or listing URLs to scrape (url mode only). |
fetchDetails | boolean | Fetch full spec sheet, delivery/pickup detail, energy label, badges, and marketplace offers. |
fetchReviews | boolean | Fetch review summary and the product's most recent reviews. |
maxReviewsPerProduct | integer | Cap on reviews per product; 0 = all available on that page. |
maxPages | integer | Cap on result pages per search/category/URL entry; 0 (default) = unlimited, walk every page until the site stops returning new products or Max products total is hit. |
maxItems | integer | Cap on total products returned; 0 = unlimited. |
resumeFromRunId | string | Optional: a previous run id (or its dataset id). Products it already collected are skipped, so this run returns only new products (a delta). Leave empty for a normal run. |
proxy | object | Apify proxy configuration. A residential connection is required for a reliable run (see below). |
mcpConnectors | array | Optional MCP connectors to export results into (Notion, Linear, Airtable, Apify). |
notionParentPageUrl | string | Notion connector only: page under which item pages are created. |
maxNotifyListings | integer | Cap on items exported to each connector per run. Does not affect the dataset. |
Output Example
{"productId": "2986202","sku": "2986202","ean": "0198990974613","name": "Sample Notebook 16 Zoll","brand": "Sample Brand","category": "16 Zoll Laptops","categoryPath": ["Computer & Büro", "Laptops & Notebooks", "16 Zoll Laptops"],"url": "https://www.mediamarkt.de/de/product/_sample-notebook-2986202.html","price": 749,"currency": "EUR","originalPrice": 1199,"discountAmount": 450,"discountPercent": 37,"isOnSpecial": true,"strikePriceType": "RRP","onlineAvailable": true,"availabilityStatus": "ONLINE","isMarketplace": false,"image": "https://assets.mmsrg.com/isr/166325/c1/-/ASSET_SAMPLE","images": ["https://assets.mmsrg.com/isr/166325/c1/-/ASSET_SAMPLE"],"rating": 4.3,"reviewCount": 155,"reviews": {"averageRating": 4.3,"totalReviewCount": 155,"items": [{"rating": 5,"title": "Sample title","text": "Sample review text.","reviewerName": "Sample User","date": "2026-07-01T21:49:37.000Z","isVerifiedPurchaser": true}]}}
Sample shape: values above are illustrative placeholders, not from a live product.
Send results into your apps (MCP connectors)
Optionally pipe results into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the mcpConnectors field. Each connector receives a condensed, human-readable summary per product (name plus key fields), while the complete record always stays in the Apify dataset. For Notion, set notionParentPageUrl to the page the item pages should be created under, and use maxNotifyListings to cap how many items are exported per connector per run. Supported connectors: Notion, Linear, Airtable, and Apify. Leave the field empty to skip; it never changes the dataset output.
A note on plans
mediamarkt.de requires a residential connection for a reliable run -- a datacenter or free-tier connection will very likely fail. The default proxy configuration already selects a residential connection in Germany; no extra setup is needed on any paid plan with residential proxy access.
Verified behaviour (checked live 2026-09-04)
Checked against the live mediamarkt.de site with real requests, not mocked data:
- All three URL-mode shapes return real, non-empty results: a product URL, a category URL, and a search listing URL each produce fully populated MediaMarkt product records.
- brands genuinely narrows the result set:
ASUSon category 362 (Laptops & Notebooks) returned 12 of 12 products with brand ASUS, and none of any other brand. - minPrice / maxPrice genuinely narrows: a 200 to 500 EUR band returned 12 products priced 239 to 499, and an open-ended band starting at 800 returned only products at or above 800.
- brands with minPrice / maxPrice together still narrow correctly (12 of 12 ASUS products, priced 289 to 499.95, under a 0 to 500 band).
- sortBy is live on all six of its non-default values:
PRICE_ASCandPRICE_DESCproduced monotonic price sequences in opposite directions, andRATING,TOPSELLER,NEWESTandAVAILABILITYeach produced an order distinct from theRELEVANCEdefault. - The listing page size (12 products per page) is unchanged.
brands,minRating,minPrice,maxPriceandsortByall apply in both search mode and URL mode, exactly as their descriptions state.