Idealo Product & Offer Scraper avatar

Idealo Product & Offer Scraper

Pricing

from $5.00 / 1,000 dataset items

Go to Apify Store
Idealo Product & Offer Scraper

Idealo Product & Offer Scraper

Scrape idealo price comparison in 6 markets (DE, AT, UK, FR, IT, ES). Get every merchant offer, not just the first 20 — plus lowest/highest price, shop names, delivery, ratings and full spec sheets as clean JSON. Search by keyword, category or URL. Pay only for the results you get.

Pricing

from $5.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Turn idealo — Europe's largest price-comparison network — into a structured product and price feed. Search by keyword, list a whole category, or hand it product URLs, and get back clean JSON with every merchant offer, the full price range, shop names, delivery estimates, ratings and the complete technical datasheet.

Works across six markets: Germany (idealo.de), Austria, the United Kingdom, France, Italy and Spain.

Who uses this

You are…You get
E-commerce / pricing teamEvery competitor's price for your SKUs, per market — the input for repricing and MAP checks
Brand / distribution managerWhich shops actually sell your product, at what price, in which country
Marketplace sellerWhere you rank against 50+ merchants on the same product, including delivery-inclusive cost
Market researcher / analystCategory-wide price distributions, ratings and spec attributes at scale
Affiliate / deal publisherLowest price, click-out links and price spread for deal pages

Why the complete offer list matters

Idealo renders about 20 offers on a product page. Popular products carry far more — an iPhone 15 on idealo.de has 147 offers across 48 shops. Most scrapers stop at what the page renders. Turn on Include every merchant offer and this Actor follows the offer-list pagination to collect all of them, so your "lowest price" is the real one and your competitor coverage is complete.

Output fields

FieldTypeDescription
product_idstringIdealo product ID — stable across all six country sites
title, url, imagestringProduct name, canonical page URL, main image
market, country, currencystringWhich site the row came from and its currency
price_min, price_max, price_avgnumberLowest, highest and mean merchant price
total_price_minnumberLowest price including delivery
price_spreadnumberHighest − lowest — the saving from comparing
offer_count, offers_scraped, shop_countintegerOffers idealo reports, offers in this row, distinct merchants
rating, rating_scale, review_countnumberProduct rating (scale varies per market) and review count
best_shop_name, best_price, best_total_price, best_delivery, best_offer_urlmixedThe cheapest offer, broken out for easy filtering
offers[]arrayEvery offer: shop, price, total price, delivery, click-out URL
specsobjectTechnical datasheet as key/value pairs (often 70–90 attributes)
international_prices[]arraySame product's cheapest price on idealo's other country sites
cheapest_foreign_site, cheapest_foreign_pricemixedBest cross-border price, pre-extracted
source, scraped_atstringHow the product entered the run; UTC timestamp

High-value use cases

  1. Competitive repricing — feed your SKU list in as product URLs, run it hourly, and drive your price rules off price_min, shop_count and the full offers[] array.
  2. MAP / price-floor monitoring — spot any merchant selling below your minimum advertised price, with the shop name and click-out link as evidence.
  3. Cross-border arbitrage — enable cross-border prices and compare price_min against cheapest_foreign_price to find products that are materially cheaper in another idealo market.
  4. Category intelligence — list an entire category (e.g. 19116, mobile phones) to build a price and specification map of the market.
  5. Catalog enrichment — pull the specs object to fill product attributes in your PIM without manual data entry.

Input parameters

ParameterTypeDefaultDescription
marketselectdede, at, uk, fr, it, es
searchTermsarrayKeywords to search and paginate
categoryIdsarrayNumeric category IDs to list in full
productUrlsarrayDirect product page URLs (any market's format)
maxItemsinteger100Stop after this many products (0 = unlimited)
maxPagesPerTerminteger5Result pages per term/category (36 products per page)
includeDetailsbooleantrueOpen each product page for offers, ratings and price range
includeAllOffersbooleanfalseCollect all offers, not just the ~20 rendered
maxOffersPerProductinteger0Cap offers per product (0 = no cap)
includeSpecsbooleantrueExtract the technical datasheet
includeInternationalPricesbooleanfalseAdd cheapest prices from idealo's other country sites
proxyConfigurationobjectdisabledOptional — runs fine without a proxy

At least one of searchTerms, categoryIds or productUrls is required.

Example input

{
"market": "de",
"searchTerms": ["iphone 15"],
"maxItems": 50,
"maxPagesPerTerm": 2,
"includeDetails": true,
"includeAllOffers": true,
"includeSpecs": true,
"includeInternationalPrices": true
}

Example output

{
"product_id": "203235721",
"title": "Apple iPhone 15",
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/203235721_-iphone-15-apple.html",
"image": "https://cdn.idealo.com/folder/Product/203235/7/203235721/s10_produktbild_gross/apple-iphone-15.jpg",
"market": "de",
"country": "Germany",
"currency": "EUR",
"price_min": 559.9,
"price_max": 1049.0,
"price_avg": 704.32,
"total_price_min": 559.9,
"price_spread": 489.1,
"offer_count": 147,
"offers_scraped": 146,
"shop_count": 48,
"rating": 1.7,
"rating_scale": "0-6",
"review_count": 46,
"best_shop_name": "Cyberport",
"best_price": 559.9,
"best_total_price": 559.9,
"best_delivery": "bis Do 04.09.",
"best_offer_url": "https://www.idealo.de/relocator/relocate?...",
"offers": [
{
"shop_name": "Cyberport",
"shop_id": "104172",
"price": 559.9,
"total_price": 559.9,
"currency": "EUR",
"delivery": "bis Do 04.09.",
"variant_name": "Apple iPhone 15 128GB Schwarz",
"position": 1,
"offer_key": "…",
"clickout_url": "https://www.idealo.de/relocator/relocate?…"
}
],
"specs": {
"Displaygröße": "6.1 Zoll",
"Arbeitsspeicher": "6 GB",
"Akkukapazität": "3349 mAh"
},
"international_prices": [
{
"site": "idealo.it",
"price": 484.0,
"url": "https://www.idealo.it/confronta-prezzi/203235721/apple-iphone-15.html"
}
],
"cheapest_foreign_site": "idealo.it",
"cheapest_foreign_price": 484.0,
"source": "search",
"scraped_at": "2026-09-01T10:22:41Z"
}

Scheduling & integrations

Schedule the Actor (hourly, daily, weekly) from the Apify Console to build a price time series. Results are available as JSON, CSV, Excel and XML, and can be pushed automatically via webhooks into Google Sheets, Make, Zapier, Amazon S3 or your own API. Long runs checkpoint themselves, so a restarted run resumes where it stopped instead of re-emitting rows you already paid for.

Use it from an AI assistant (MCP)

The Actor is callable through Apify's MCP server, so Claude, ChatGPT or any MCP-capable agent can run it directly:

https://mcp.apify.com/?actors=axlymxp/idealo-product-offer-scraper

Ask your assistant things like "what is the cheapest shop for an iPhone 15 on idealo.de right now?" and it will call the Actor and read the dataset.

FAQ

Do I need a proxy? No. The Actor talks to idealo's public pages with a browser-grade TLS fingerprint and works without a proxy. A proxy is supported for very large runs or rate-limited regions.

How many results can I get? There is no hard cap. A category walk on idealo.de returns thousands of unique products; set maxItems to control the volume.

How fresh is the data? Every row is scraped live at run time and stamped with scraped_at. Nothing is served from a cache.

Why is offers_scraped smaller than offer_count? offer_count is the total idealo advertises, including variants it does not list individually. offers_scraped is what was actually collected. Turn on Include every merchant offer to maximise coverage.

Does pagination ever loop or duplicate rows? No. Idealo silently re-serves page 1 when you request a page past the last one — a trap that makes naive scrapers loop forever. This Actor de-duplicates by product ID and offer key and stops as soon as a page yields nothing new.

What happens if a product was removed? Idealo answers with HTTP 410 and a full-looking HTML page. The Actor detects this, logs it, skips the item and keeps going rather than emitting garbage.

Is this legal? The Actor collects publicly available product and price information. You are responsible for using the data in line with idealo's terms and applicable law.

Something broke — how fast do you respond? Open an issue on the Actor page. Fatal errors are reported automatically to the maintainer, so breakages are usually noticed before they are reported.