Douglas Beauty Products, Prices & Reviews Scraper avatar

Douglas Beauty Products, Prices & Reviews Scraper

Pricing

from $1.50 / 1,000 product results

Go to Apify Store
Douglas Beauty Products, Prices & Reviews Scraper

Douglas Beauty Products, Prices & Reviews Scraper

Scrape douglas.de beauty and perfumery products. Returns name, brand, price with original/was price and discount, unit price, size variants, availability, gallery, ratings, reviews, ingredients and spec table. Keyword, category, brand browse plus URL input.

Pricing

from $1.50 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

3 days ago

Last modified

Share

Douglas DE Beauty & Perfumery Scraper

Scrape products from douglas.de, Douglas, Europe's leading beauty, perfumery and cosmetics retailer (German flagship, EUR pricing). The actor returns rich per-product records: identity, full price with the original/was price and discount, unit price, size variants, availability, image gallery, ratings, reviews, and product detail (ingredients, how-to-use, spec table).

What you get (per product)

FieldExample
titleTOM FORD Soleil Neige Eau de Parfum
brandTOM FORD
id / sku / ean5011956034 / 1269078 / 0888066177962
urlhttps://www.douglas.de/de/p/5011956034?variant=1269078
price{current: 76.99, original: 115.0, currency: "EUR", discountPercent: 33.0}
unitPrice{amount: 769.9, unit: "per 1 l"}
isOnSpecial / wasPrice / savingsAmounttrue / 115.0 / 38.01
availability{code: "AVAILABLE", inStock: true}
variants[{sku, label: "30 ml", price, unitPrice}, ...]
images[{url, alt}, ...]
rating / reviewCount4.8 / 86
ratingBreakdown[{rating: 5, count: 77}, {rating: 4, count: 6}, ...]
reviews[{id, author, date, rating, title, body}, ...]
ingredientsALCOHOL, PARFUM / FRAGRANCE, AQUA / WATER / EAU, ...
howToUseAnwendungshinweise (how to use)
specifications{Duftrichtung: "frisch, blumig", Kopfnote: "Jasmin", ...}
breadcrumbs[{name: "Parfum", url}, ...]

Full-price (non-discounted) products return isOnSpecial: false, wasPrice: null so they are an explicit negative, never a missing key.

Input modes

Search mode (default)

Keyword search and/or category and brand browse.

{
"mode": "search",
"queries": ["vitamin c serum"],
"category": "01",
"brand": "b0690",
"gender": "FEMALE",
"sortBy": "rating"
}
  • queries: free-text keywords, e.g. "parfum", "dior lipstift".
  • category: a Douglas category code (01 Parfum, 03 Make-up, 1205 Gesichtspflege) or a full category URL like https://www.douglas.de/de/c/parfum/01.
  • brand: a brand display name (Dior) or a brand URL like https://www.douglas.de/de/b/dior/b0690 for an exact filter. A bare brand code (b0690) cannot be resolved to a name and is skipped with a warning rather than risk matching the wrong brand — pass the name or URL instead.
  • gender: any / women / men / unisex. Search mode only, it is sent as a store facet.
  • sortBy: best match, price ascending, price descending, newest first, top rated. Search mode only, a pasted URL is walked in the store's own default order.
  • promoFlags: extra store promotion facets. Search mode only.

URL mode

Paste one or more Douglas URLs. Product URLs return a single rich record; category, brand and search URLs return products up to the configured item and page limits.

{
"mode": "url",
"urls": ["https://www.douglas.de/de/c/parfum/01"],
"priceMax": 80,
"specialsOnly": true,
"fetchDetails": true,
"fetchReviews": true
}

Filters (both modes)

priceMin, priceMax and specialsOnly are not search-mode-only. They are applied to every product the scraper collects, so a pasted category, brand or search URL is filtered exactly like a keyword search.

  • priceMin / priceMax: EUR price band. In search mode the band is also sent to the store as a price facet; in URL mode it narrows the products found behind the pasted URL.
  • specialsOnly: keep only products that are currently reduced (see Specials below), in either mode.

The one exception is a pasted product URL: a single product you asked for by URL is always returned, whatever its price and whether or not it is reduced.

Specials and the was/original price

Douglas does not run a dedicated sale or outlet category. A product is on special when its recommended retail price (UVP, "Empfohlener Verkaufspreis") is crossed out and a lower current price is shown. The actor captures both prices on every product:

  • price.original (the crossed-out UVP) and price.discountPercent come straight from the listing data.
  • isOnSpecial, wasPrice, savingsAmount, savingsPercent are derived from those two prices.
  • Turn on specialsOnly to keep only the reduced products. A real discounted product looks like: price.current: 76.99, price.original: 115.0, isOnSpecial: true, wasPrice: 115.0, savingsAmount: 38.01, savingsPercent: 33.0.

Reviews

Turn on fetchReviews to pull the overall rating, the star-rating histogram, the EAN/GTIN, and per-review text (author, date, rating, title, body) for each product. maxReviewsPerProduct caps how many reviews come back (default 20). Reviews come from the retailer's own first-party ratings endpoint, so no third-party host appears in the output. Products with no reviews return an empty reviews list while the rating summary fields stay null.

Product detail

Turn on fetchDetails to open each product page and pull the ingredient list (INCI), the how-to-use text and the full spec table (scent notes, product type, article number, etc.), flattened into specifications. Listing-only runs skip this and are faster and cheaper. Detail and review enrichment open the individual product page, which is a separate, harder route than listing data — on a given run it may return the base product without enrichment; the listing fields themselves (price, variants, gallery, rating) are unaffected.

Limits and cost

  • maxItems: hard cap on the total number of products returned (default 100).
  • maxPages: max pages to walk per query/category/URL (default 0, unlimited). One page holds 48 products.
  • A listing-only run returns fully-attributed products (price, variants, gallery, rating, description). Detail and review enrichment are optional, opt-in toggles.

Proxy

A Germany exit is required, and the default is already set up for it. Changing the preset can make a run return no results.

Export to your apps

Optionally send a condensed summary of each result to Notion, Linear, Airtable or Apify via MCP connectors. Authorize a connector under Apify Settings, Integrations, then select it in mcpConnectors. The full record always stays in the dataset.