Dm Drogerie Scraper (Cheap)
Pricing
from $3.99 / 1,000 results
Dm Drogerie Scraper (Cheap)
DM Product Scraper calls dm.de's search API by keyword and returns product names, prices, stock status, and image URLs so price trackers, market analysts, and e-commerce teams have clean, structured data to work with without manual browsing.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
dm-drogerie markt Product Scraper

Browsing dm.de by hand is fine for one product. It falls apart the moment you need prices, brands, and ratings across a whole category or a list of competitors. This scraper does the legwork: type in the keywords you care about and it pulls back every matching product from dm-drogerie markt as clean, structured rows — name, brand, current price, star rating, review count, category trail, image, and a direct product link. Run one search term or feed it a stack of them. Export straight to JSON, CSV, or Excel and drop the data into whatever you already use.
What you get
Each product becomes one tidy row with the same shape every time, so your columns line up when you load the results into a sheet or a database. Fields with no value come back as null rather than disappearing. Every row carries:
- Identity —
gtin,articleNumber,productName,brandLabel - Pricing —
currentPrice,currencyCode - Reputation —
starRating,reviewsTotal - Links and placement —
imageLink,productLink,categoryTrail - Run context —
searchTerm(the keyword that found it) andcollectedAt(when it was captured)
Quick start
- Click Try for free and open the input form.
- Type one or more keywords into Search terms, one per line (a product type, a brand, or an ingredient all work).
- Set a Results limit per term, and pick a proxy if you want one.
- Press Start, then export the rows as JSON, CSV, Excel, or XML once the run finishes.

Use cases
- Price monitoring — track what dm charges across a brand or category and watch the numbers move over time
- Competitor research — line up your own catalogue against dm's range and pricing
- Market analysis — measure how many products a brand or ingredient has on the shelf
- Product sourcing — build a list of candidates with prices, ratings, and links ready to compare
- Review intelligence — sort by star rating and review count to spot what shoppers actually rate well
- Catalogue enrichment — match dm products to your own data by GTIN or article number
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchTerms | array of strings | Yes | Keywords to look up on dm.de, one per line. Each term is searched on its own. |
resultsLimit | integer | No | Maximum products to collect per term (hard cap 1000). Total rows = this number × number of terms. Default 50. |
batchSize | integer | No | Products fetched per API call, 12 to 48. Default 48. |
includePharmacy | boolean | No | Set true to fold pharmacy and health items in with the standard catalogue. Default false. |
timeoutSeconds | integer | No | Seconds to wait for each API reply before giving up on that request. Default 45. |
proxyConfiguration | object | No | Proxies that route your requests. Defaults to Datacenter (Anywhere); switch to Residential if dm starts blocking. |
Example input
{"searchTerms": ["nivea", "vitamin c serum", "babynahrung"],"resultsLimit": 50,"batchSize": 48,"includePharmacy": false,"timeoutSeconds": 45,"proxyConfiguration": {"useApifyProxy": true}}
Output
Every product the search returns becomes one row, and each field is always present — values dm doesn't supply come back as null so your dataset stays rectangular.
Example output
{"gtin": "4005808138654","articleNumber": 123456,"productName": "NIVEA Creme Universal-Allzweckcreme","brandLabel": "NIVEA","currentPrice": 4.95,"currencyCode": "EUR","imageLink": "https://media.dm-static.com/images/nivea-creme.jpg","productLink": "https://www.dm.de/nivea-creme-universal-allzweckcreme-p4005808138654.html","categoryTrail": "Gesundheit & Pflege, Hautpflege, Cremes","starRating": 4.8,"reviewsTotal": 2143,"searchTerm": "nivea creme","collectedAt": "2026-06-29T12:00:00.000000+00:00"}
Output fields
| Field | Type | Description |
|---|---|---|
gtin | string | Global Trade Item Number for the product |
articleNumber | integer | dm's internal article number (DAN) |
productName | string | Full product title as shown on dm.de |
brandLabel | string | Brand the product belongs to |
currentPrice | number | Listed price in the quoted currency; null when unavailable |
currencyCode | string | Three-letter currency code, usually EUR |
imageLink | string | Direct link to the main product photo |
productLink | string | Full URL of the product's dm.de page |
categoryTrail | string | Comma-separated category path from the dm API |
starRating | number | Mean shopper rating from 0 to 5; null when unrated |
reviewsTotal | integer | Number of shopper reviews; null when there are none |
searchTerm | string | The keyword that surfaced this product |
collectedAt | string | ISO 8601 timestamp of when the row was captured |
Tips for best results
- Start with a small run. Try one or two terms with a low
resultsLimitbefore scaling — proxy and keyword issues show up in the first handful of rows. - Pick keywords like a shopper would. Broad terms ("shampoo") return more products; specific terms ("nivea creme") return a tighter, more relevant set.
- Switch to Residential if you get blocked. Datacenter clears most searches, but residential proxies help when you start seeing repeated request errors.
- Leave
batchSizeat 48 for the fewest API calls per term; drop it only if larger pages time out. - Raise
timeoutSecondsto ~60 when you run on slower residential proxies. - Flip on
includePharmacyonly when you actually want health-care listings mixed in — it widens the result set.
How can I use dm-drogerie markt product data?
How can I use the dm-drogerie markt Product Scraper to monitor prices?
Run your key terms or brands on a schedule and keep each export. Because every row carries currentPrice, currencyCode, and collectedAt, you can line up successive runs and see exactly when a price moved and by how much — a simple base for any dm price-tracking project.
How can I compare my catalogue against dm products?
Search the brands or categories you both carry, then match on gtin or articleNumber against your own data. You get dm's price, rating, and review count next to each product, which makes gap analysis and competitive pricing straightforward.
How can I research which dm products shoppers rate highest?
Pull a category with a generous resultsLimit, then sort the output by starRating and reviewsTotal. Products with both a high score and a deep review count tell you what's genuinely popular rather than just newly listed.
How can I export dm-drogerie markt data to a spreadsheet? After a run, use the export menu to download JSON, CSV, Excel, or XML. The flat, one-row-per-product layout drops straight into a spreadsheet or database with no reshaping, so you can filter and pivot the dm data immediately.
Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Support
Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.