dm.de - Prices, Offers, Unit Price & Reviews avatar

dm.de - Prices, Offers, Unit Price & Reviews

Pricing

from $1.00 / 1,000 product results

Go to Apify Store
dm.de - Prices, Offers, Unit Price & Reviews

dm.de - Prices, Offers, Unit Price & Reviews

Scrape dm-drogerie markt (dm.de) products: current + strike-through Ausverkauf price with discount, per-unit pricing (per 100ml/kg/piece), brand incl. dm own-brands, EAN, ingredients, pack-size variants, and full reviews with rating breakdown. Search or paste links.

Pricing

from $1.00 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

dm.de Product Scraper

Pull rich product data from dm-drogerie markt (dm.de), Germany's drugstore and personal-care retailer. Search by keyword, a real dm.de category, or the site's own currently-reduced Ausverkauf items, or paste product and listing links directly. Every record includes the current price, the strike-through original price with computed discount when a product is marked down, per-unit pricing (e.g. price per 100 ml or per kg) where the site shows it, and a complete customer review history with a full rating breakdown.

Why This Scraper?

  • Was-price and discount, structured, not scraped from a badge. When a product carries a reduced original price, both prices are captured plus the computed discount amount and percentage.
  • Real per-unit pricing. Bodycare, food, and household products return their price per 100 ml / 100 g / kg / piece separately from the pack price, exactly as the site itself breaks it down.
  • Ausverkauf, first class. A specialsOnly toggle narrows any search or category listing to dm's own live clearance/sellout feed -- the site's real, queryable discount signal, not a guessed category.
  • Full review history. Overall rating, review count, a full 1 to 5 star rating breakdown, and every individual review with author, date, rating, title, and body text.
  • Rich detail on demand. Full breadcrumb category path, flattened product information (description, ingredients/Inhaltsstoffe, usage notes -- varies per category, never hardcoded), pack-size variants with their own price and EAN, brand image, and online/store availability.
  • Brand coverage. Every brand dm carries, including its own private-label lines (dmBio, Balea, alverde NATURKOSMETIK, and more) alongside national brands.
  • Two ways in. Keyword or category search with real site filters (brand, rating, price range, Ausverkauf, sort), or paste any product/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

FieldExample value
productId / sku1234567
ean4058172548821
nameSample Bodylotion Aloe Vera
brandSample Brand
category / categoryPathBodylotion & Hautcreme, ["Pflege & Parfum", "Körperpflege", "Bodylotion & Hautcreme"]
urlhttps://www.dm.de/p/d/1234567/sample-bodylotion-aloe-vera
price / currency3.45, EUR
originalPrice / discountAmount / discountPercent4.95, 1.50, 30.3
isOnSpecial / promoLabeltrue, Ausverkauf
unitPrice / unitPriceBasis / packSize0.86, 100 ml, 400 ml
rating / reviewCount4.6, 128
onlineAvailable / onlineAvailabilityStatus / storeAvailabilityStatustrue, Lieferbar, Im Markt vorrätig
image / images["https://www.dm.de/sample/image.png"]
description / ingredientsfull text fields
productDetails{"Produktmerkmale": "...", "Verwendungshinweise": "..."} (flattened per category)
variants[{"productId": "1234568", "ean": "4058172548838", "label": "600 ml", "isSelected": false}]
isPharmacyfalse
reviews.averageRating / reviews.totalReviewCount4.6, 128
reviews.ratingDistribution[{"rating": 5, "count": 90}, {"rating": 4, "count": 24}, ...]
reviews.items[][{"rating": 5, "title": "Sample title", "body": "Sample review text.", "author": "Sample User", "date": "2026-07-12T07:31:15.000Z", "isRecommended": true, "verifiedPurchaser": 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": "bodylotion",
"maxItems": 20
}

2. Category browse, filtered to a brand and only currently-reduced Ausverkauf items:

{
"mode": "search",
"searchTerm": "pflege-und-parfum/koerperpflege/bodylotion-und-hautcreme",
"brands": ["Balea"],
"specialsOnly": true,
"sortBy": "PRICE_ASC",
"maxItems": 50,
"maxPages": 5
}

3. Full product detail + reviews for pasted product links:

{
"mode": "url",
"urls": ["https://www.dm.de/p/d/1234567/sample-bodylotion-aloe-vera"],
"fetchDetails": true,
"fetchReviews": true,
"maxReviewsPerProduct": 0
}

4. Paste a listing link and keep paginating forward:

{
"mode": "url",
"urls": ["https://www.dm.de/search?query=bodylotion"],
"maxItems": 100,
"maxPages": 10
}

Input Parameters

ParameterTypeDescription
modestringsearch or url.
searchTermstringKeyword or a real dm.de category path (search mode only).
specialsOnlybooleanKeep only products currently in dm's Ausverkauf/clearance feed (search mode only).
brandsarrayExact brand names to keep (search mode only).
minRatinginteger1-5, minimum rating to keep (search mode only).
minPrice / maxPricenumberEUR price band to keep (search mode only).
sortBystringRELEVANCE, PRICE_ASC, PRICE_DESC, NEWEST, or RATING (search mode only).
urlsarrayProduct or listing URLs to scrape (url mode only).
fetchDetailsbooleanFetch full product detail (breadcrumb, description, ingredients, pack-size variants, brand image, availability). Pasted product URLs always fetch detail, and are charged for it, regardless of this toggle.
fetchReviewsbooleanFetch full review history. Shares one enrichment charge with fetchDetails, applied at most once per product.
maxReviewsPerProductintegerCap on reviews per product; 0 = all.
maxPagesintegerCap on result pages per search/category/URL entry; empty = unlimited.
maxItemsintegerCap on total products returned; 0 = unlimited.
proxyobjectApify proxy configuration. Works on every plan by default.
mcpConnectorsarrayOptional MCP connectors to export results into (Notion, Linear, Airtable, Apify).
notionParentPageUrlstringNotion connector only: page under which item pages are created.
maxNotifyListingsintegerCap on items exported to each connector per run. Does not affect the dataset.

Output Example

{
"productId": "1234567",
"sku": "1234567",
"ean": "4058172548821",
"name": "Sample Bodylotion Aloe Vera",
"brand": "Sample Brand",
"category": "Bodylotion & Hautcreme",
"url": "https://www.dm.de/p/d/1234567/sample-bodylotion-aloe-vera",
"price": 3.45,
"currency": "EUR",
"originalPrice": 4.95,
"discountAmount": 1.5,
"discountPercent": 30.3,
"isOnSpecial": true,
"promoLabel": "Ausverkauf",
"unitPrice": 0.86,
"unitPriceBasis": "100 ml",
"packSize": "400 ml",
"rating": 4.6,
"reviewCount": 128,
"onlineAvailable": true,
"image": "https://www.dm.de/sample/image.png",
"reviews": {
"averageRating": 4.6,
"totalReviewCount": 128,
"ratingDistribution": [{ "rating": 5, "count": 90 }, { "rating": 4, "count": 24 }],
"items": [
{
"rating": 5,
"title": "Sample title",
"body": "Sample review text.",
"author": "Sample User",
"date": "2026-07-12T07:31:15.000Z",
"isRecommended": true,
"verifiedPurchaser": 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

The default connection works on every Apify plan, including the free tier. A residential proxy connection is optional and only worth turning on for very large or sustained runs.