MediaMarkt Germany Scraper - Products, Prices, Specs & Reviews avatar

MediaMarkt Germany Scraper - Products, Prices, Specs & Reviews

Pricing

from $1.00 / 1,000 product results

Go to Apify Store
MediaMarkt Germany Scraper - Products, Prices, Specs & Reviews

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

Abot API

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

3

Monthly active users

14 days ago

Last modified

Share

MediaMarkt.de Scraper: Prices, Discounts, Specs & Reviews

MediaMarkt.de Scraper turns MediaMarkt Germany into structured product data. Search by keyword or category id with the site's own brand, price range and native sort, or paste product, category or search listing links directly. Every record carries the current price, and when a product genuinely carries a reduced original price, the struck through price plus the site's own discount amount and percentage. Switch on full spec sheets, delivery and pickup detail, and customer reviews when you need them, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • Was price and discount, gated on the site's own signal, never guessed. originalPrice is filled in whenever the site shows a strike price, and is null otherwise. isOnSpecial is true only when the site actually strikes the price through, so a product can carry originalPrice without isOnSpecial.
  • Real customer reviews. Average rating, total review count, and each product's most recent reviews with rating, title, full text, date and a verified purchaser flag.
  • Full spec sheet on demand. The flattened characteristics MediaMarkt itself shows per product, memory and processor for a notebook, panel type 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, plus one of our own. Brand, price range and MediaMarkt's own sort order (price, rating, topseller, newest, availability) go straight to the site's own query parameters. Minimum rating has no equivalent site filter, so it is applied locally after each page loads, which can mean more pages are walked to fill the result.
  • Two ways in. Keyword or category id search, or paste any product, category or listing link and continue pagination automatically.
  • Resume without paying twice. Continue an interrupted run, or skip products already collected by a previous run you name.

Use Cases

  • Price trackers and deal alerts: monitor current price, original price and discount percentage, and use strikePriceType to tell RRP-style reference prices from real price drops.
  • E-commerce market research: compare pricing, brands and specs across categories in the German electronics market.
  • Review and sentiment analysis: collect ratings and full review text to gauge customer opinion on specific products.
  • Marketplace intelligence: track which listings are sold by MediaMarkt directly versus third party marketplace sellers.
  • Catalog and comparison feeds: build a structured product feed with specs, images and availability for a comparison site or app.

Data You Get

Sample shape: values are illustrative placeholders, not from a live product.

FieldExample
productId / sku3141592
ean4012345678905
name"UltraView Pro 15 Notebook"
brand"Voltek"
category / categoryPath"15 Zoll Notebooks", ["Computer & Zubehör", "Notebooks & Laptops", "15 Zoll Notebooks"]
url"https://www.mediamarkt.de/de/product/_p-3141592.html"
price / currency899, "EUR"
originalPrice / discountAmount1299, 400
discountPercent / isOnSpecial31, true
strikePriceType"RRP"
onlineAvailable / availabilityStatustrue, "ONLINE"
isMarketplace / marketplaceSellertrue, {"sellerId": "SEL-88421", "sellerName": "Nordwind Elektronik GmbH", "sellerRating": 4.6}
shippingCost / installment0, null
image / images["https://assets.mmsrg.com/isr/sample/ASSET_PLACEHOLDER"]
rating / reviewCount4.2, 86
specs{"Bildschirmdiagonale": "15,6 Zoll", "Arbeitsspeicher (RAM)": "16 GB"} (flattened, varies per category, when Fetch full product detail is on)
delivery / pickup{"status": "AVAILABLE", "earliestDate": "2026-10-02"}, {"status": "AVAILABLE", "isPickable": true} (when Fetch full product detail is on)
energyEfficiencyClass / energyLabel"D", "EU energy label" (when Fetch full product detail is on)
badges["Bestseller", "Top Angebot"] (when Fetch full product detail is on)
otherOffersother marketplace sellers' offers for the same product, when present and Fetch full product detail is on
reviews.averageRating / reviews.totalReviewCount4.2, 86
reviews.items[][{"id": "R-0001", "rating": 5, "title": "Guter Kauf", "text": "Läuft schnell und leise, absolut empfehlenswert.", "reviewerName": "Julia K.", "date": "2026-03-14T10:22:00.000Z", "isVerifiedPurchaser": true, "syndicationSource": null}]

How to Use

  1. Pick a mode: search (keyword or category id; if both are set, the category wins and the keyword is ignored) or url (paste product, category or listing links).
  2. Fill in the fields for that mode, and turn on full product detail and/or reviews if you need them.
  3. Set brand, price, rating and sort filters if you want to narrow the result set, then set Max products total to control run size and cost.
  4. Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.

Keyword search, first 20 products, with reviews (on by default):

{
"mode": "search",
"searchTerm": "notebook",
"maxItems": 20
}

Category browse, filtered to a brand and price range, sorted by price:

{
"mode": "search",
"categoryId": "515",
"brands": ["ASUS"],
"minPrice": 300,
"maxPrice": 900,
"sortBy": "PRICE_ASC",
"maxItems": 50,
"maxPages": 5
}

Full product detail and reviews for pasted product links:

{
"mode": "url",
"urls": ["https://www.mediamarkt.de/de/product/_p-3141592.html"],
"fetchDetails": true,
"fetchReviews": true,
"maxReviewsPerProduct": 10
}

Continue a previous run, collecting only new products:

{
"mode": "search",
"categoryId": "515",
"resumeFromRunId": "<a previous run id or dataset id>"
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/mediamarkt-de-scraper").call(run_input={"mode": "search", "searchTerm": "notebook", "maxItems": 20})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["name"], product["price"], product["currency"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/mediamarkt-de-scraper').call({ mode: 'search', searchTerm: 'notebook', maxItems: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Pages, budgets and resuming

Max pages per search and Max products total together bound the size and cost of a run: pages are walked from the start (or from any page= already in a pasted URL) until either cap is hit, or the site stops returning new products. Set Max pages per search to 0 to walk every page.

Resume from run/dataset id continues one interrupted run: paste its run or dataset id and this run skips every product already in that run's dataset, so you only get and pay for products not already there (a delta), not necessarily products added since that run. The run also checkpoints itself automatically as it goes, so if the platform restarts or migrates it mid-run, resuming with the same input picks up right where it left off, with no duplicate products and no double charges.

In url mode, Max products total is split evenly across the listing/category URLs you paste; a single pasted product URL does not draw from that budget.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape, the Apify dataset is never changed.

What gets written to the connector: a condensed, human readable summary of each product, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify, Settings, Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. If the picker is empty, you have not authorized a connector yet.
  3. For Notion, also set notionParentPageUrl to the page where item pages should be created.

The connection is mediated by Apify's own MCP proxy, so this actor never sees your third party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch (keyword or category id, with the site's own filters and sort; if both are set, the category wins and the keyword is ignored) or url (paste links).
searchTermstringprefill: notebookFree text keyword, e.g. notebook or kaffeemaschine. Search mode only.
categoryIdstring(none)Numeric MediaMarkt category id, from a category URL like .../laptops-notebooks-362.html giving 362. Search mode only.
brandsarrayprefill: []Only return products from these exact brand names. Applies in both search and URL mode.
minRatinginteger(none)Only return products rated at or above this many stars, 1 to 5. Applied locally after each page loads (the site has no equivalent server-side filter), so more pages may be walked to fill the result. Applies in both search and URL mode.
minPricenumber(none)Only return products priced at or above this amount, in euros. Applies in both search and URL mode.
maxPricenumber(none)Only return products priced at or below this amount, in euros. Applies in both search and URL mode.
sortBystringRELEVANCEMediaMarkt's own sort order. 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 dropped in favor of this input.
urlsarrayprefill: sample search URLProduct, category or search listing URLs to scrape. URL mode only; pagination continues forward from any page= already present.
fetchDetailsbooleanfalseFetch the full flattened spec sheet, delivery and pickup detail, energy label, promo badges and marketplace offers.
fetchReviewsbooleantrueFetch review summary and the product's most recent reviews (rating, title, text, date, verified purchaser flag).
maxReviewsPerProductinteger10Cap on reviews returned per product when Fetch reviews is on. 0 returns all available on that page.
maxPagesinteger0Cap on result pages per search, category or URL entry. 0 means unlimited, walk every page until the site stops returning new products or the total product cap is hit.
maxItemsinteger20Hard cap on total products returned across every search, category or URL entry. 0 means unlimited (still bounded by Max pages per search).
resumeFromRunIdstring(none)A previous run id (or its dataset id). Products already in that run's dataset are skipped, so this run returns only products not already there (a delta). Leave empty for a normal run.
proxyobjectResidential, country DEConnection settings. The default already selects a residential connection in Germany.
mcpConnectorsarray(none)Optional MCP connectors to export a summary of results into (Notion, Linear, Airtable, Apify).
notionParentPageUrlstring(none)Notion connector only: page under which item pages are created.
maxNotifyListingsinteger50Cap on items exported to each connector per run. Does not affect the dataset.

Output Example

Sample shape: values are illustrative placeholders, not from a live product.

{
"productId": "3141592",
"sku": "3141592",
"ean": "4012345678905",
"name": "UltraView Pro 15 Notebook",
"brand": "Voltek",
"category": "15 Zoll Notebooks",
"categoryPath": ["Computer & Zubehör", "Notebooks & Laptops", "15 Zoll Notebooks"],
"url": "https://www.mediamarkt.de/de/product/_p-3141592.html",
"price": 899,
"currency": "EUR",
"originalPrice": 1299,
"discountAmount": 400,
"discountPercent": 31,
"isOnSpecial": true,
"strikePriceType": "RRP",
"onlineAvailable": true,
"availabilityStatus": "ONLINE",
"isMarketplace": false,
"image": "https://assets.mmsrg.com/isr/sample/ASSET_PLACEHOLDER",
"images": ["https://assets.mmsrg.com/isr/sample/ASSET_PLACEHOLDER"],
"specs": {
"Bildschirmdiagonale": "15,6 Zoll",
"Arbeitsspeicher (RAM)": "16 GB"
},
"rating": 4.2,
"reviewCount": 86,
"reviews": {
"averageRating": 4.2,
"totalReviewCount": 86,
"items": [
{
"rating": 5,
"title": "Guter Kauf",
"text": "Läuft schnell und leise, absolut empfehlenswert.",
"reviewerName": "Julia K.",
"date": "2026-03-14T10:22:00.000Z",
"isVerifiedPurchaser": true
}
]
}
}

Plan Requirement

mediamarkt.de needs a residential connection for a reliable run, a datacenter connection will very likely fail on every page. The default proxy configuration already selects a residential connection in Germany, so no extra setup is needed on any plan with residential proxy access. If a connection is refused, the run automatically retries with a fresh connection a limited number of times before moving on. If most connections are being refused for the whole run, it stops early instead of grinding on, and keeps everything already collected.

FAQ

How much does it cost?

You pay per product returned, plus a small add-on charge per product when full detail and/or reviews are fetched for it. Fetch reviews is on by default, so most runs include this add-on for nearly every product; turn both detail toggles off to pay only the base per-product charge. The Pricing tab shows the current rates. Use Max products total to cap the cost of any run.

This actor collects only publicly available product data. You are responsible for how you use it, follow MediaMarkt's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product images, brand names and review text may be subject to third party rights.

Can I avoid re-collecting products I already have?

Yes, but not automatically on a schedule. Set resumeFromRunId to a previous run's id (or dataset id) and this run skips every product already in that run's dataset, so you do not pay twice for the same product. On a recurring schedule, update the id to point at the most recent run each time.

Why do I need a residential connection?

MediaMarkt's pages only load reliably over a residential connection. The default proxy configuration already selects one in Germany, so most runs need no changes at all.

Why did my run return no products?

Check your filters and category or search term first. If the site refused connections for the whole run, the run logs a warning and finishes with whatever it already collected, which can be an empty dataset; run it again in a few minutes. If only some pages could not be read, you still get what was found, and already collected products are kept.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push a summary of results into Notion, Linear or Airtable.

🔗 Want more MediaMarkt data?

Pair this actor with these related scrapers from the same team:

🔌 MediaMarkt.es Scraper
Scrape MediaMarkt Spain (mediamarkt.es) products: current price, strike-through original...
👗 OTTO.de Scraper
Scrape OTTO.de products by search or URL. Extract prices, discounts, variants...
🔌 PcComponentes Scraper
Scrape PcComponentes (pccomponentes.com) products: current price plus strike-through...
🔌 Darty Scraper
Scrape Darty (darty.com) products: current price plus strike-through reference price and...
🔌 Dienmayxanh Scraper
Scrape dienmayxanh.com home appliances and electronics with full specifications, current...
🛒 OBI.de Scraper
Scrape OBI (obi.de) DIY/home-improvement products: current + strike-through original...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.