Dreamland Scraper [$0.49/1K 💰] — NL & BE Toys, EAN, Stock avatar

Dreamland Scraper [$0.49/1K 💰] — NL & BE Toys, EAN, Stock

Pricing

from $0.49 / 1,000 products

Go to Apify Store
Dreamland Scraper [$0.49/1K 💰] — NL & BE Toys, EAN, Stock

Dreamland Scraper [$0.49/1K 💰] — NL & BE Toys, EAN, Stock

Scrape toy products from dreamland.nl and dreamland.be (Dutch and French) at $0.49 per 1,000. Prices, recommended retail price and discount, EAN, article number, specifications, ratings, reviews and stock in every physical store. By category, brand, URL or the whole catalogue.

Pricing

from $0.49 / 1,000 products

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Dreamland Scraper

Dreamland Scraper

Extract toy products from dreamland.nl and dreamland.be: prices, recommended retail prices and discounts, EAN, article numbers, specifications, ratings and reviews, and stock in every physical store. Search by keyword, scrape by category or brand, start from any Dreamland URL, or take the whole catalogue. No API key required.


Why this scraper?

🎯 Built for Dreamland in two countries

One actor covers dreamland.nl and dreamland.be in Dutch and French. Product codes are shared across all three storefronts, so prices and stock compare directly between the Netherlands and Belgium.

Type a brand, a character or a product type. A brand returns its full listing, a category name returns that category, and any other term matches product names across the full catalogue. Every row records the keyword and how it matched.

💶 Prices you can analyse

Current price, the manufacturer's recommended retail price, discount in euros and percent, and promotion badges. A discount-only filter uses Dreamland's own reduced-price listing, so a discount run reads a few pages, not the whole category.

🏷️ Product identifiers

EAN barcode, Dreamland order code and the manufacturer's article number (for example the LEGO set number) on every detailed record. Match Dreamland against any other retailer or your own catalogue.

🏬 Stock in every store

With details on, each product carries the stock status of every physical Dreamland store, with store code and coordinates. See where a product is in stock, running low or sold out.

⭐ Ratings and reviews

Exact average rating, review count and the reviews shown on the product page, without reviewer names.

📦 Up to 70 fields

Specifications by stable attribute code, age grading, piece count, description in text, HTML and Markdown, manufacturer details, safety warnings and links to the same product on the other storefronts.


Input parameters

ParameterTypeDefaultDescription
sitestring"nl"nl = dreamland.nl, be-nl = dreamland.be in Dutch, be-fr = dreamland.be in French.
searchQueriesarray[]Keywords, one per line, e.g. lego star wars, stitch, knuffel. See How keyword search works below.
categoriesarray[]Top-level categories by Dutch slug, e.g. bouwen-en-constructie. French pages are resolved automatically.
brandsarray[]Brand slugs as used in Dreamland's /m/ URLs, e.g. lego, playmobil, pokemon.
startUrlsarray[]Any Dreamland category, sub-category, brand or product URL. Overrides categories and brands.
sortBystring"relevance-desc"relevance-desc, price-asc, price-desc, sortingRating-desc or new-desc.
minPriceinteger(empty)Minimum price in euros.
maxPriceinteger(empty)Maximum price in euros.
onlyDiscountedbooleanfalseOnly products priced below their recommended retail price.
onlyNewbooleanfalseOnly products marked as new.
searchProductNamesbooleantrueFor keywords that are not a brand or category, also match product names. These matches are billed at the detailed rate.
fetchDetailsbooleanfalseOpen each product page for EAN, specifications, description, reviews, store stock and more. Billed at the detailed rate.
includeReviewsbooleantrueWith details on, include the reviews from the product page.
includeStoreStockbooleantrueWith details on, include stock per physical store.
maxItemsinteger100Maximum number of products. 0 means no limit.

Leave searchQueries, categories, brands and startUrls empty to scrape the whole catalogue (19,426 products on dreamland.nl in September 2026).

How keyword search works

Dreamland's robots.txt does not allow automated use of its site search, so this actor never calls it. Instead it resolves each keyword against the product and category sitemaps that Dreamland publishes for search engines, in three steps:

  1. Brand. If the keyword is a brand (lego, playmobil, paw patrol), you get the brand's full listing first, then any other products with the keyword in their name.
  2. Category. If the keyword names a category (knuffel, puzzel, trampoline), you get that category's listing. Plurals are matched, so puzzel finds Puzzels.
  3. Product name. Otherwise, every product whose name contains all the words of the keyword (lego star wars, eenhoorn, fiets 16 inch). These are read from their product pages, so they come back fully detailed and are billed at the detailed rate.

Brand and category matches follow your fetchDetails setting and are billed at the listing rate unless you turn details on. The matchedBy field on each row tells you which step found it.


Output schema

Every field below is present on every record. Fields the source does not publish for a product, and detail-only fields when fetchDetails is off, are returned as null.

FieldTypeDescription
idstringDreamland product code, same as productCode. Stable across runs and storefronts.
productCodestringDreamland's 8-digit order code, shared by dreamland.nl and dreamland.be.
productIdstringDreamland's internal numeric product ID.
namestringProduct name as shown on the site.
urlstringProduct page URL on the scraped storefront.
sitestringStorefront scraped: dreamland.nl, dreamland.be/nl or dreamland.be/fr.
countrystringNL or BE.
languagestringnl or fr.
currencystringAlways EUR.
brandstring|nullBrand, e.g. LEGO, PLAYMOBIL. Null for unbranded and house products.
subBrandstring|nullProduct line, e.g. Star Wars, Technic, Pokemon.
categorystringTop-level category.
subCategorystring|nullSecond-level category.
subSubCategorystring|nullThird-level category, where the site uses one.
categoryPathstring[]Full category path, top level first.
categoryUrlstring|nullCategory page URL. Detail only.
pricenumberCurrent selling price in euros.
recommendedRetailPricenumber|nullManufacturer's recommended retail price, when the site shows one.
priceLabelstring|nullLabel shown next to the RRP, e.g. Adviesprijs.
isDiscountedbooleanTrue when the price is below the shown RRP.
discountAmountnumber|nullRRP minus price, in euros.
discountPercentnumber|nullDiscount as a percentage of the RRP, one decimal.
labelsstring[]Badges on the product, e.g. Nieuw, Actie, DreamDeal, Alleen thuislevering.
isNewbooleanMarked as new.
isPromotionbooleanCarries a promotion badge.
homeDeliveryOnlybooleanAvailable for home delivery only, not in stores.
deliveryTextstring|nullDelivery or stock message as shown, e.g. Levertijd: 1-2 werkdagen.
inStockOnlineboolean|nullOrderable online now.
isPreOrderbooleanNot yet released or awaiting stock.
availableFromstring|nullExpected availability date (ISO) for pre-order products.
availabilitystring|nullSchema.org availability: InStock, OutOfStock, InStoreOnly, OnlineOnly. Detail only.
canHomeDeliverboolean|nullHome delivery offered. Detail only.
canPickUpInStoreboolean|nullStore pickup offered. Detail only.
ratingStarsnumber|nullStar rating from the listing card, to the nearest half star.
ratingnumber|nullExact average rating out of 5. Detail only.
reviewCountinteger|nullNumber of reviews. Detail only.
imageUrlstringMain product image.
imageUrlWebpstring|nullMain image in WebP.
secondaryImageUrlstring|nullSecond product image from the listing card.
imagesstring[]Listing: card images. Detail: every gallery image at full resolution.
imageCountinteger|nullNumber of gallery images. Detail only.
eanstring|nullEAN / GTIN barcode. Detail only.
articleNumberstring|nullManufacturer's article or set number, e.g. LEGO 75192. Detail only.
ageGradingstring|nullAge grading as shown, e.g. Vanaf 16 jaar. Detail only.
minAgeYearsnumber|nullMinimum age in years, parsed from the age grading. Detail only.
pieceCountinteger|nullNumber of pieces, where published (building sets). Detail only.
licensestring|nullLicence or theme, where published. Detail only.
materialstring|nullMain material. Detail only.
batteriesstring|nullBattery requirement, e.g. 2 x Knoopcel LR41 (inbegrepen). Detail only.
specificationsobject|nullEvery specification row, keyed by its label on the site. Detail only.
specificationCodesobject|nullThe same rows keyed by Dreamland's stable attribute codes (BARCODE, AGE_GRADING and so on), for consistent parsing across languages. Detail only.
descriptionTextstring|nullProduct description as plain text. Detail only.
descriptionHtmlstring|nullProduct description as HTML. Detail only.
descriptionMarkdownstring|nullProduct description as Markdown. Detail only.
manufacturerNamestring|nullManufacturer or importer (EU product-safety information). Detail only.
manufacturerAddressstring|nullManufacturer's business address. Detail only.
safetyWarningsobject[]Safety pictograms: code and text. Detail only.
storesWithStockinteger|nullNumber of physical stores with stock. Detail only.
storesTotalinteger|nullNumber of physical stores listed for the product. Detail only.
storeStockobject[]|nullOne entry per store. Detail only.
storeStock.storeCodestringDreamland store code, e.g. ALMER.
storeStock.storeNamestringStore name.
storeStock.statusstringin-stock, low-stock or sold-out.
storeStock.hasStockbooleanStore holds stock.
storeStock.hasPurchasableStockbooleanStock can be reserved for pickup.
storeStock.latitudenumberStore latitude.
storeStock.longitudenumberStore longitude.
reviewsobject[]|nullReviews shown on the product page: rating, title, date (ISO), text. Reviewer names are never collected. Detail only.
alternateUrlsobject|nullThe same product on the other storefronts: nlNL, nlBE, frBE. Detail only.
searchQuerystring|nullThe keyword that found this product, if any.
matchedBystring|nullHow the keyword matched: brand, category or product-name.
listPositioninteger|nullPosition in the listing it was found in.
sourceUrlstring|nullListing page the product was collected from.
sourcePageinteger|nullPage number within that listing.
detailFetchedbooleanTrue when the product page was opened. Decides the billing rate.
contentHashstringHash of product code and name, for de-duplication across runs.
sourcestringAlways dreamland.
scrapedAtstringISO timestamp of collection.

Example record

A detailed record (fetchDetails: true). Long arrays and the description are shortened here.

{
"id": "01297751",
"productCode": "01297751",
"productId": "26182",
"name": "75192 LEGO Star Wars Millennium Falcon",
"url": "https://www.dreamland.nl/producten/75192-lego-star-wars-millennium-falcon/01297751",
"site": "dreamland.nl",
"country": "NL",
"language": "nl",
"currency": "EUR",
"brand": "LEGO",
"subBrand": "Star Wars",
"category": "Bouwen en constructie",
"subCategory": "Bouwsets",
"subSubCategory": null,
"categoryPath": [
"Bouwen en constructie",
"Bouwsets"
],
"categoryUrl": "https://www.dreamland.nl/c/categorie/bouwen-en-constructie/bouwsets/producten",
"price": 849.99,
"recommendedRetailPrice": null,
"priceLabel": null,
"isDiscounted": false,
"discountAmount": null,
"discountPercent": null,
"labels": [],
"isNew": false,
"isPromotion": false,
"homeDeliveryOnly": false,
"deliveryText": null,
"inStockOnline": false,
"isPreOrder": false,
"availableFrom": null,
"availability": "InStoreOnly",
"canHomeDeliver": true,
"canPickUpInStore": true,
"ratingStars": 5,
"rating": 5,
"reviewCount": 32,
"imageUrl": "https://www.dreamland.nl/media/cache/default_pop_product_image/media/image/01297751/b5c039bb984bb26b_01297751_001.6488a988.jpg",
"imageUrlWebp": "https://www.dreamland.nl/media/cache/default_pop_product_image_webp/media/image/01297751/b5c039bb984bb26b_01297751_001.6488a988.webp",
"secondaryImageUrl": "https://www.dreamland.nl/media/cache/default_pop_product_image/media/image/01297751/06ff8bc0985357b6_01297751_003.9bc17833.jpg",
"images": [
"https://www.dreamland.nl/media/image/01297751/b5c039bb984bb26b_01297751_001.jpg",
"https://www.dreamland.nl/media/image/01297751/260a578db4b6433e_01297751_002.jpg"
],
"imageCount": 10,
"ean": "5702015869935",
"articleNumber": "75192",
"ageGrading": "Vanaf 16 jaar",
"minAgeYears": 16,
"pieceCount": 7541,
"license": null,
"material": "Plastic",
"batteries": null,
"specifications": {
"Merk": "LEGO",
"Submerk": "Star Wars",
"Materiaal": "Plastic",
"Aantal stukjes": "7541 Stukjes",
"Geschikt voor": "Beide",
"Bestelcode": "01297751",
"Barcode": "5702015869935",
"Leeftijd": "Vanaf 16 jaar",
"Artikel nummer": "75192"
},
"specificationCodes": {
"BRAND": "LEGO",
"SUBBRAND": "Star Wars",
"MATERIAL": "Plastic",
"LEGO_Aantal_stuks": "7541 Stukjes",
"SUITABLE FOR": "Beide",
"ORDER_CODE": "01297751",
"BARCODE": "5702015869935",
"AGE_GRADING": "Vanaf 16 jaar",
"ARTICLE_NUMBER": "75192"
},
"descriptionText": "Kom aan boord van de beroemde Millennium Falcon van LEGO voor een reis door het melkwegstelsel! Zo herbeleef je alles van de mythische Star Wars-saga!\nBuitenkan…",
"descriptionHtml": "<p>Kom aan boord van de beroemde Millennium Falcon van LEGO voor een reis door het melkwegstelsel! Zo herbeleef je alles…",
"descriptionMarkdown": "Kom aan boord van de beroemde Millennium Falcon van LEGO voor een reis door het melkwegstelsel! Zo herbeleef je alles va…",
"manufacturerName": "Lego Nederland bv",
"manufacturerAddress": "Ruiterijschool 5, 2930 Brasschaat Nederland, NL",
"safetyWarnings": [
{
"code": "chocking-hazard",
"text": "Opgepast, verstikkingsgevaar! Niet geschikt voor kinderen onder de 3 jaar."
}
],
"storesWithStock": 26,
"storesTotal": 27,
"storeStock": [
{
"storeCode": "ALMER",
"storeName": "DreamLand Almere",
"status": "in-stock",
"hasStock": true,
"hasPurchasableStock": true,
"latitude": 52.373244,
"longitude": 5.220256
},
{
"storeCode": "ARKEL",
"storeName": "DreamLand Arkel",
"status": "in-stock",
"hasStock": true,
"hasPurchasableStock": true,
"latitude": 51.867381,
"longitude": 4.989133
}
],
"reviews": [
{
"rating": 5,
"title": "Zeer mooie Lego build voor een zeer mooie prijs.",
"date": "2025-03-12",
"text": "Een waar pronkstuk voor de Lego Star Wars collectie van onze zoon."
}
],
"alternateUrls": {
"nlNL": "https://www.dreamland.nl/producten/75192-lego-star-wars-millennium-falcon/01297751",
"nlBE": "https://www.dreamland.be/nl/producten/75192-lego-star-wars-millennium-falcon/01297751",
"frBE": "https://www.dreamland.be/fr/produits/75192-lego-star-wars-millennium-falcon/01297751"
},
"searchQuery": null,
"matchedBy": null,
"listPosition": 1,
"sourceUrl": "https://www.dreamland.nl/c/bouwen-en-constructie/producten?sort=price-desc",
"sourcePage": 1,
"detailFetched": true,
"contentHash": "fa6e8524be3e6a66",
"source": "dreamland",
"scrapedAt": "2026-09-11T11:23:49.015Z"
}

Examples

1. Keyword search across a brand, a product line and a category

{ "site": "nl", "searchQueries": ["pokemon", "lego star wars", "knuffel"], "maxItems": 500 }

2. Discounted board games and puzzles in Belgium, with EAN and store stock

{ "site": "be-nl", "categories": ["gezelschapspellen-en-puzzels"], "onlyDiscounted": true, "fetchDetails": true, "maxItems": 500 }

3. A sub-category and single products by URL

{ "startUrls": [
{ "url": "https://www.dreamland.nl/c/games-en-multimedia/spelconsoles-accessoires/producten" },
{ "url": "https://www.dreamland.nl/producten/10713-lego-classic-creatieve-koffer/01295689" }
], "maxItems": 200 }

4. Daily feed of new arrivals in French for Belgium

{ "site": "be-fr", "categories": ["speelfiguren-en-sets", "poppen-figuren-en-knuffels"], "onlyNew": true, "sortBy": "new-desc", "maxItems": 300 }

Schedule example 4 daily and compare productCode against yesterday's dataset to spot new listings.


💰 Pricing

You only pay for products delivered to your dataset. Failed requests are never charged.

EventPrice per 1,000When it applies
Product$0.49Product collected from a category, brand or catalogue page
Product with details$2.49Product whose product page was also opened (fetchDetails: true), and keyword matches found by product name
ProductsListing onlyWith details
100~$0.05~$0.25
1,000~$0.49~$2.49
10,000~$4.90~$24.90

Until 26 September 2026 the detailed rate is $2.19 per 1,000. Keyword matches found through product names (matchedBy: product-name) are read from their product page and billed as products with details. Turn off searchProductNames to keep keyword runs at the listing rate. A product whose page could not be loaded is billed at the listing rate, because that is what you received. A negligible $0.00005 start fee applies per run. Use Max results to cap spend.


Performance

Dreamland sits behind bot protection, so every page goes through an unblocking proxy that takes 5 to 30 seconds per page. The actor fetches pages in parallel to compensate.

Run sizeListing onlyWith details
100 productsabout 1–2 minutesabout 4–6 minutes
1,000 productsabout 6–10 minutesabout 20–30 minutes
10,000 productsabout 1–1.5 hoursnot recommended in one run

Known limitations

  • Keyword search does not read product descriptions. It matches brand, category and product names, which covers most searches (stitch finds 95% of what the site's own search finds), but words that only appear in descriptions are missed. eenhoorn matches 159 product names where the site's own search reports about 340 hits.
  • French keywords on dreamland.be. Dreamland publishes its Belgian sitemaps in Dutch only. Brand keywords work in both languages; product and category words should be given in Dutch, and the results are still returned from the French pages.
  • The whole-catalogue listing cannot be sorted or filtered server-side. robots.txt allows only plain paging there, so filters are applied locally and read more pages. Pick categories to filter efficiently.
  • Some products have no brand. Party goods and house products often carry a sub-brand (for example Pokemon) but no brand.
  • Reviews are limited to those on the product page. Products with many reviews show a selection, not every review.
  • Store stock is a snapshot of what the site shows at the time of the run.

Technical details

  • Source: dreamland.nl and dreamland.be (Dutch and French), Colruyt Group's toy retailer
  • Coverage: full catalogue, by category, brand or URL
  • Compliance: respects robots.txt; site search and filtered root listings are never requested
  • Retry: automatic retry with exponential backoff; repeated pages are detected and stop the listing
  • Health: every run writes OUTPUT and HEALTH records to its key-value store

Rate this actor

If this scraper does its job, a short review on the Reviews tab helps other users find it. Something not working? Open an issue on the Issues tab instead — issues get fixed.


Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl