MediaMarkt & Saturn Scraper
Pricing
from $1.34 / 1,000 product results
MediaMarkt & Saturn Scraper
Scrape MediaMarkt and Saturn products across DE, BE, AT, ES and PL: prices, EAN-13, specs, energy class, sellers, discounts, and delivery status. Pay per result.
Pricing
from $1.34 / 1,000 product results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share

Extract products from mediamarkt.de at scale, in a clean, consistent structure ready for price monitoring, market research, catalogue analysis and resale tooling. No API key required.
Why this scraper?
🎯 Built for mediamarkt.de
A dedicated European scraper tuned for mediamarkt.de — its categories, price formats and currency (EUR), not a generic tool pointed at it.
💶 Structured pricing
Current price as a clean number in EUR, plus discounts and previous prices where the source shows them. Items without a published price return null, never a guess.
🤝 Seller and condition
Seller details and item condition in structured fields, ready for filtering.
⭐ Review signals
Average rating and review count for every item that has them.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "laptop" | A single keyword to search (e.g. 'laptop', 'iphone', 'samsung tv'). |
searchQueries | array | (empty) | Several keywords to search in one run. Each becomes its own search. |
startUrls | array | (empty) | MediaMarkt or Saturn search, category, brand or campaign listing URLs from any supported country. |
retailer | string | "mediamarkt" | Retailer to use for keyword searches. Saturn is only available in Germany. |
country | string | "de" | Country shop to use for keyword searches. Italy uses MediaWorld (same platform as MediaMarkt). Ignored when using startUrls or retailer=saturn. |
maxResults | integer | 5 | Overall ceiling on products returned across all sources (search queries + start URLs combined). 0 = unlimited. |
maxResultsPerUrl | integer | 0 | Optional per-source cap. Each search query and each start URL stops after this many products, while 'Max results' still applies as the overall ceiling. 0 = no per-source limit. Useful when crawling several URLs in one run so the first source does not consume the whole budget. |
fetchOffers | boolean | false | Visit each product's detail page and collect every marketplace seller's offer (seller name, rating, price, shipping, delivery window, condition), not just the buy-box winner. Slower and visits one extra page per product. |
maxOffersPerProduct | integer | 50 | Cap on marketplace offers collected per product when 'Fetch all marketplace seller offers' is on. Offers are sorted cheapest first. |
includeVariantPrices | boolean | false | Visit each product's detail page and add the per-variant list (colour/size/storage label, price and availability per variant). Visits one extra page per product. |
maxPages | integer | 30 | Maximum listing pages to crawl per search query or start URL. Each page returns up to 12 products. Max supported by the site is 30. |
sortOrder | string | "relevant" | How to sort the results. Applies to keyword searches and startUrls. |
minPrice | number | (empty) | Filter products to this minimum price. Leave empty for no lower bound. |
maxPrice | number | (empty) | Filter products to this maximum price. Leave empty for no upper bound. |
condition | string | "all" | Filter by product condition. |
minRating | integer | (empty) | Only return products with this star rating or higher (1–5). |
sellerType | string | "all" | Filter by who sells the product. |
proxyConfiguration | object | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} | Proxy to use. MediaMarkt blocks Apify datacenter IPs — Apify Residential is used by default. You can override this with your own proxy if needed. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given item are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
productId | string | MediaMarkt/Saturn internal product ID. |
ean | string | null |
title | string | Full product title. |
brand | string | null |
url | string | null |
retailer | string | mediamarkt or saturn. |
country | string | Two-letter country code (de, at, es, etc.). |
assortmentType | string | null |
price | number | null |
currency | string | Always EUR. |
strikePrice | number | null |
discountPercentage | number | null |
shippingCost | number | null |
promoPrice | number | null |
installmentMonthlyRate | number | null |
installmentMonths | number | null |
seller | string | null |
sellerRating | number | null |
rating | number | null |
reviewCount | number | null |
isAvailableForDelivery | boolean | null |
isAvailableForPickup | boolean | null |
isAvailableAndBuyable | boolean | null |
onlineStatus | string | null |
deliveryStatus | string | null |
deliveryDisplayStatus | string | null |
fulfillmentEarliest | string | null |
fulfillmentLatest | string | null |
pickupStatus | string | null |
energyClass | string | null |
imageUrl | string | null |
featureImages | array | Additional product images. |
category | array | Category breadcrumb path, broadest first. |
highlightedSpecs | array | Key specs as { name, value } pairs (CPU, RAM, storage, GPU, etc.). |
badges | array | Promotional badge names (e.g. Bestseller, Neuheit). |
refurbishedAvailable | boolean | Whether a refurbished offer exists for this product. |
sourcePage | number | Listing page the product came from. |
sourceUrl | string | The listing URL it was found on. |
scrapedAt | string | ISO timestamp. |
Example record
{"productId": "2767961","ean": "4251890998632","title": "McAfee LiveSafe Attach für alle Geräte in einem Haushalt, 1 Jahr, mit einer automatischen Verlängerung Download Code [PC, iOS, Mac, Android] - [Multiplattform]","brand": "MCAFEE","url": "https://www.mediamarkt.de/de/product/_esd-livesafe-device-attach-2767961.html","retailer": "mediamarkt","country": "de","assortmentType": null,"price": 19.99,"currency": "EUR","strikePrice": 139.95,"discountPercentage": 85,"shippingCost": 0,"promoPrice": 19.99,"installmentMonthlyRate": null,"installmentMonths": null,"seller": null,"sellerRating": null,"rating": 4.6771,"reviewCount": 96,"isAvailableForDelivery": true,"isAvailableForPickup": false,"isAvailableAndBuyable": true,"onlineStatus": "DIGITAL_GOODS","deliveryStatus": null,"deliveryDisplayStatus": null,"fulfillmentEarliest": null,"fulfillmentLatest": null,"pickupStatus": null,"energyClass": null,"imageUrl": "https://assets.mmsrg.com/isr/166325/c1/-/ASSET_MMS_170735735?locale=de,de,de&imgWidth=600&quality=70&strip=cut","featureImages": [],"category": [],"highlightedSpecs": [],"badges": ["WM-Highlight","Download Code"],"refurbishedAvailable": false,"sourcePage": 1,"sourceUrl": "https://www.mediamarkt.de/de/search.html?query=laptop","scrapedAt": "2026-06-24T16:37:52.033Z"}
Examples
Search for Kopfhörer:
{"searchQuery": "Kopfhörer","maxResults": 100}
Cap the price:
{"searchQuery": "Kopfhörer","maxResults": 100,"maxPrice": 24.5}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.mediamarkt.de/de/category/laptops-notebooks-362.html"}],"maxResults": 200}
Daily monitoring (run on a schedule):
{"searchQuery": "Kopfhörer","maxResults": 500}
Schedule this input to run once a day in the Apify Scheduler to track prices, stock and new items over time.
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved products. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
| 100,000 | ~$149.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $1.19 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Some fields (brand, condition, shipping) are only returned when the seller or source publishes them — expect
nullon a share of records. - Prices and stock change constantly; records reflect the moment of scraping.
- Very large result sets are bounded by the source's own paging limits.
- Items can sell or be withdrawn at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: mediamarkt.de
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl