Douglas Germany Scraper icon

Douglas Germany Scraper

Scrape Douglas.de beauty and fragrance products by keyword, category, brand, or URL. Extract brands, current and original prices, discounts, unit…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Douglas Germany Scraper at a glance

Douglas Germany Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes title, brand, url, price and isonspecial, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Ecommerce, Automation, Developer Tools
Region
Europe
Pricing
$2.20 per 1,000 results (Free plan), from $1.50 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
29 options
Run success
98.2% of completed public runs in the last 30 days

Scrape Douglas.de beauty and fragrance products by keyword, category, brand, or URL. Extract brands, current and original prices, discounts, unit prices, size variants, stock, images, ratings, reviews, ingredients, and specifications.

What Douglas Germany Scraper can do

  • Two ways to find products. Search by keyword or category, or paste any Douglas product, category or search URL. A brand filter or a pasted brand URL without a keyword or category covers the Parfum department only.
  • Real specials, never guessed. Douglas has no dedicated sale category; a special is detected from the crossed-out original price, and every product carries an explicit isOnSpecial flag plus the exact savings amount and percent.
  • Filters that actually narrow. Price band and discounted-only filters apply to every mode, including a pasted category, brand or search URL, not just keyword search.
  • Deep product data, best effort. Turn on ingredient lists (INCI), how-to-use text and the full spec table, or pull rating breakdowns and per-review text; these come from a separate, harder-to-reach route than the listing data and can come back empty on a given run, and you're never charged the enrichment surcharge when they do.
  • A single pasted product is never filtered out. Paste one product URL and you get that exact product back, whatever its price or discount, though the record is thinner than a listing result (see the FAQ).
  • Unresolvable URLs are named, not guessed. A pasted link that matches no Douglas category is reported by name and skipped rather than silently swapped for a different department's products.

Choose what to collect

These inputs let you configure Douglas Germany Scraper - Beauty Products, Prices & Reviews. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredSearch mode = keyword + category + brand + filters. URL mode = paste Douglas product, category, brand or search URLs.

Choices: search, url

queriesarrayKeywords to search, e.g. 'vitamin c serum', 'parfum', 'dior lipstift'. Each query runs as a separate search.
keywordsarrayAlias of Search keywords; used only when Search keywords is empty.
categorystringA Douglas category code (e.g. '01' Parfum, '03' Make-up, '1205' Gesichtspflege) or a full category URL like https://www.douglas.de/de/c/parfum/01. Leave empty for keyword-only search.
brandstringA Douglas brand code (e.g. 'b0690' Dior) or a full brand URL like https://www.douglas.de/de/b/dior/b0690. Optional.
genderstringRestrict to women's, men's or unisex products. Search mode only: this is sent to the store as a search facet, so it has no effect in URL mode, where a pasted URL carries its own facets.

Choices: any, FEMALE, MALE, UNISEX

sortBystringHow to order the results. Applies in search mode and, where the store supports it (price), to pasted category, brand and search URLs. Newest and rating have no store-side sort and keep the store's relevance order.

Choices: relevance, price-asc, price-desc, newest, rating

Show 22 more inputs
More input fields
InputWhat it controls
sortstringAlias of Sort order, used when Sort order is left at relevance. price_low = price-asc, price_high = price-desc, top_rated = rating.

Choices: relevance, price_low, price_high, newest, top_rated

promoFlagsarraySite promotion facets to apply (e.g. 'travelSize' travel size, 'computedNewFlag' new, 'computedLimited' limited edition). Optional. Search mode only: these are sent to the store as search facets, so they have no effect in URL mode.
urlsarrayFull Douglas URLs: product (https://www.douglas.de/de/p/...), category (https://www.douglas.de/de/c/...), brand (https://www.douglas.de/de/b/...) or search (https://www.douglas.de/de/search?q=...). Any other Douglas page (a content page, a store page, the homepage) is looked up against the store's own category index; if it matches no category it is named in the log and skipped, never swapped for a different department's products.
productCodesarrayDouglas product codes (numeric ids such as 5010207032) or product URLs (https://www.douglas.de/de/p/...). URL mode only. Each code is scraped like a pasted product URL and is added to the URLs above. If you set product codes and leave the URLs list at its four example URLs, only the product codes are scraped.
priceMinnumberOnly return products at or above this price. Applies in BOTH search mode and URL mode: in search mode it is also sent to the store as a price facet, and in URL mode it filters the products found behind a pasted category, brand or search URL. A pasted product URL is always returned, whatever its price.
priceMaxnumberOnly return products at or below this price. Applies in BOTH search mode and URL mode: in search mode it is also sent to the store as a price facet, and in URL mode it filters the products found behind a pasted category, brand or search URL. A pasted product URL is always returned, whatever its price.
specialsOnlybooleanKeep only products that are currently reduced (have a strike-through original price). Applies in BOTH search mode and URL mode, including the products found behind a pasted category, brand or search URL; a pasted product URL is always returned whether or not it is reduced. Douglas does not run a dedicated sale category; a 'special' here is any product whose original/list price is crossed out.
fetchDetailsbooleanOpen each product page for the full spec table, ingredients (INCI) and how-to-use text. Off = listing fields only (faster, cheaper).
scrapeModestringAlias of Fetch product details: detail turns it on, overview leaves it as set.

Choices: overview, detail

fetchReviewsbooleanPull the rating histogram, EAN/GTIN and per-review text (author, date, rating, title, body) for each product.
maxReviewsPerProductintegerCap on reviews returned per product (1-200). Ignored unless 'Fetch reviews' is on.
maxPagesintegerMaximum result pages to walk per query/category/URL (0 = unlimited, walk until results are exhausted). One page holds 48 products. Leave at 0 for no limit of your own; the actor still stops after 1000 pages per search or URL.
maxItemsintegerHard cap on the total number of products returned across all queries/URLs.
maxResultsintegerAlias of Max products total. Used only while Max products total is left at its default of 100; a Max products total you changed always wins.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large pull without returning or charging for products that run already collected. Use it after an interrupted run. For recurring monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn on for scheduled monitoring. The first run returns every matching product as NEW. Later runs compare each product with the last run (price, was price, promo label, availability, variants, brand, images, description and any product-page details) and return only NEW and UPDATED products; an UPDATED row's changedFields names exactly what moved. Reviews, ratings, review counts and the scrape time are never compared, since they change without a real product change. Products you do not receive are not charged as results. State is kept separately for each search/URL/filter setup; use State key to name or share a campaign.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to derive a key automatically from the search/URL and filter settings.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. These are returned and billed like any other result, so leave it off unless you want the full snapshot every run.
ignoreFieldsForChangesarrayOptional. Field names to exclude from UPDATED detection, in addition to the built-in handling (reviews, review summary, rating histogram, rating, rating stars, review count and scrape time never trigger an UPDATED). Use it if another field is noisy in your setup, for example images. A dotted name such as variants.size ignores that key inside every variant while still tracking the rest of each variant.
mcpConnectorsarrayOptionally send scraped results to apps you already use, via MCP connectors. Authorize a connector once under Apify Settings Integrations, then select it here. A condensed human-readable summary per item is sent; the full record stays in the dataset. Leave empty to skip.
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

titletitle
brandbrand
urlurl
priceprice
isOnSpecialisOnSpecial
wasPricewasPrice
ratingrating

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": "5010207032",
  "sku": "1269078",
  "ean": "4064666325144",
  "title": "TOM FORD Soleil Neige Eau de Parfum",
  "variantLabel": "",
  "url": "https://www.douglas.de/de/p/5010207032?variant=1269078",
  "brand": {
    "name": "TOM FORD",
    "code": null
  },
  "brandLine": "Soleil Neige",
  "productFamily": "Eau de Parfum",
  "productType": "PERFUME",
  "isMarketplace": false,
  "breadcrumbs": [],
  "price": {
    "current": 76.99,
    "original": 115,
    "currency": "EUR",
    "formattedCurrent": null,
    "formattedOriginal": null,
    "discountPercent": 33.1
  },
  "unitPrice": {
    "amount": 1539.8,
    "currency": "EUR",
    "unit": "per 1 l"
  },
  "basePriceUnit": "1 l",
  "recommendedRetailPrice": 125,
  "lowestPrice30d": 71.41,
  "isOnSpecial": true,
  "wasPrice": 115,
  "savingsAmount": 38.01,
  "savingsPercent": 33.1,
  "promoLabel": "reduziert",
  "availability": {
    "code": "AVAILABLE",
    "inStock": true
  },
  "variants": [],
  "images": [
    {
      "url": "https://images.douglas.de/is/image/rc/5010207032-01",
      "alt": null
    }
  ],
  "description": "",
  "characteristics": [
    "Eau de Parfum"
  ],
  "rating": 4.8,
  "ratingStars": null,
  "reviewCount": null,
  "ratingBreakdown": [
    {
      "rating": 5,
      "count": 77
    },
    {
      "rating": 4,
      "count": 6
    },
    {
      "rating": 3,
      "count": 2
    },
    {
      "rating": 2,
      "count": 1
    },
    {
      "rating": 1,
      "count": 0
    }
  ],
  "reviews": [
    {
      "id": "1001",
      "author": "Sample User",
      "date": "2026-05-01",
      "rating": 5,
      "title": "Wonderful scent",
      "body": "Long lasting and elegant.",
      "isRecommended": true,
      "variant": "50 ml",
      "verified": true
    }
  ],
  "ingredients": "ALCOHOL, PARFUM / FRAGRANCE, AQUA / WATER / EAU, LIMONENE, LINALOOL",
  "howToUse": "Auf die Haut auftragen, nicht verreiben.",
  "specifications": {
    "Duftrichtung": "frisch, blumig",
    "Kopfnote": "Jasmin",
    "Art-Nr.": "5010207032"
  },
  "reviewSummary": null,
  "scrapedAt": "2026-09-29T10:15:00+00:00"
}

Ways to use this data

  • Price and discount tracking: monitor current price, was price and savings percent across a brand or category to spot restocks and markdowns.
  • Catalog and assortment analysis: pull a whole category or brand with availability and images to compare range depth against competitors.
  • Review and rating research: turn on review enrichment to attempt the rating histogram and per-review text for a product line, best effort.
  • Ingredient and formulation research: turn on detail enrichment to attempt INCI ingredient lists and spec tables across a category, best effort.
  • Affiliate and content catalogs: build product feeds with clean pricing and images for a beauty comparison site or newsletter.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Douglas Germany Scraper return?

The documented output for Douglas Germany Scraper includes title, brand, url, price, isonspecial, wasprice and rating. Availability of each field depends on the source page and the selected mode.

How much does Douglas Germany Scraper cost?

It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only the products I care about on a schedule?

Yes. Schedule the actor from the Schedules tab with a fixed keyword, category or brand input, and use priceMin/priceMax/specialsOnly to keep each run scoped to what you track.

Why does turning on detail or review enrichment add nothing?

Product detail and reviews are fetched from a separate, harder-to-reach route than the listing data, and that route is currently blocked more often than not; ingredients, how-to-use text, spec tables, the rating breakdown and per-review text can come back empty on most or all products in a given run. The listing fields (price, availability, images, rating summary) are unaffected either way, and the enrichment surcharge is only charged on products where it actually added data, so a run where enrichment adds nothing costs the same as one with it turned off.

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 results into Notion, Linear or Airtable.

Ready to collect with Douglas Germany Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.