Idealo Price Scraper avatar

Idealo Price Scraper

Pricing

Pay per event

Go to Apify Store
Idealo Price Scraper

Idealo Price Scraper

Look up any product EAN on idealo and get every live merchant offer: shop, total price, delivery and payment methods, plus the full price range. Germany and Austria. Each match is verified against the product page's own GTIN.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

31

Total users

1

Monthly active users

64 days

Issues response

3 days ago

Last modified

Categories

Share

Idealo Price Scraper, Offers and Prices by EAN

Turn any product barcode into the full idealo price-comparison listing. This idealo scraper takes an EAN/GTIN and returns its live merchant offers from idealo, shop name, total price, delivery estimate and accepted payment methods, across the German (idealo.de) and Austrian (idealo.at) marketplaces. No login, no idealo API key, no HTML parsing on your side.

It is built for price monitoring, repricing, and competitive intelligence where you already know the products you care about and need their idealo offers as clean structured JSON. Submit up to 5 EANs per run; each comes back as one product row with every one of its offers nested and the cheapest and most expensive total price pre-computed. Larger catalogues are handled by scheduling runs, which is also how you keep a price history rather than a single snapshot.

What you get

  • One dataset item per product EAN you submit, with the matching idealo product title, brand, canonical product url, thumbnail, and idealo_sku.
  • A nested offers array, one entry per merchant, with shop, total_price, position in idealo's ranking, delivery, shipping_included and payment_methods, sorted cheapest first.
  • Every offer, not just the first page. idealo's product page shows 20 offers and hides the rest behind a "show more" button; this Actor follows that through to the end, so a product with 45 sellers returns 45. offer_count is idealo's own total and offers_returned is what you received, so a short list is visible instead of silent.
  • min_total_price and max_total_price straight from idealo's own totals, matching the range of the returned offers.
  • A verified EAN match. idealo's search redirects to its closest product even when it does not hold your exact barcode, which is how a price lookup quietly returns the wrong product. Every match is checked against the product page's own GTIN. A page that publishes a different GTIN is reported as a miss, naming the GTIN it landed on in matched_gtin, rather than being passed off as your product.
  • Coverage of both live idealo marketplaces: Germany (idealo.de) and Austria (idealo.at), selectable per run.
  • An explicit found flag so a product idealo does not list is returned as a clear empty record, never a silent gap in your data. ean_verified separates a match idealo's own GTIN confirms from one it simply does not publish a code for.
  • EUR pricing with the currency stated on every item.
  • Up to 5 EANs per run, looked up in parallel. The limit is deliberate: each product is fetched in full, and a small run finishes in seconds instead of degrading into a partial one.

Why scrape idealo price comparison data

idealo is the dominant price-comparison marketplace in the German-speaking market, aggregating offers from hundreds of merchants for the same product. For anyone selling, sourcing, or analysing consumer goods in Germany and Austria, the idealo product page is the single best snapshot of the live competitive price landscape for a given item.

The problem is access. idealo has no public offers API, the product pages are behind bot protection, and the listing for one product can carry dozens of merchant offers that change throughout the day. Scraping it reliably yourself means maintaining proxies, parsing a moving HTML target, and handling the German and Austrian sites separately. This actor does that work behind a stable API-backed pipeline so you receive normalized JSON keyed by the EAN you already have in your catalog.

Because the input is the EAN, the data joins directly back to your own product master, no fuzzy title matching, no manual mapping between your SKUs and idealo's.

Input

FieldTypeRequiredDescription
eansarray of stringsYesProduct barcodes (EAN-8/EAN-13/GTIN, 8-14 digits), maximum 5 per run. Non-digit characters are stripped automatically. Duplicates are de-duplicated.
countrystring (de or at)NoWhich idealo marketplace to query. de = idealo.de (default), at = idealo.at.
concurrencyinteger (1-5)NoHow many of the run's EANs to look up in parallel. Default 5.

Minimal input:

{
"eans": ["5702017416663"],
"country": "de"
}

Output

Each product is one dataset item. Example (trimmed to three offers):

{
"ean": "5702017416663",
"country": "de",
"site": "idealo.de",
"found": true,
"idealo_sku": 202283713,
"title": "LEGO Icons - Botanical Collection - Wildblumenstrauß (10313)",
"brand": null,
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/202283713.html",
"thumbnail": null,
"availability": "InStock",
"currency": "EUR",
"ean_verified": true,
"matched_gtin": "4242005218875",
"offer_count": 20,
"offers_returned": 20,
"min_total_price": 90.9,
"max_total_price": 150.12,
"offers": [
{
"shop": "otto.de",
"shop_id": "3040",
"position": 1,
"total_price": 90.9,
"price_text": "90,90",
"shipping_included": true,
"shipping_cost_text": null,
"delivery": "lieferbar - am nachsten Werktag bei dir",
"payment_methods": ["Rechnung", "Lastschrift", "Vorkasse"],
"offer_key": "195a631b5ed56680000e997125b2b868"
},
{
"shop": "boomstore.de",
"shop_id": "1449",
"position": 2,
"total_price": 97.46,
"shipping_included": true,
"delivery": "Lieferung: bis Mi. 09.09.",
"payment_methods": ["Rechnung", "Lastschrift", "Vorkasse"]
}
]
}

Only products idealo actually lists reach the dataset, so every dataset item is a real result. EANs idealo has no listing for are reported separately in the run's OUTPUT record under notFound (a list of EANs), free of charge, so you can reconcile your input against what was found.

Use cases

Repricing and Buy-Box strategy for German marketplaces. If you sell on idealo, Amazon.de or your own shop, you need to know where your price sits against every other merchant on the same product. Pull your catalog's EANs through this idealo scraper on a schedule, read min_total_price and the per-seller offers, and feed your repricing engine the live competitive floor for Germany and Austria.

Brand and MAP monitoring. Brands enforcing minimum advertised pricing across the DACH region can watch every merchant offer for their products on idealo in one pass. The shop and total_price fields make it straightforward to flag any seller listing below an agreed threshold, with shipping already included in the comparison.

Market and assortment research. Analysts sizing a category can submit a basket of EANs and capture the spread between cheapest and most expensive offers (min_total_price to max_total_price), the depth of competition (offer_count), and availability across both the German and Austrian markets, useful inputs for launch pricing and channel decisions.

Product data enrichment. Marketplaces and aggregators that already hold EANs can enrich their records with idealo's canonical product title, image and live price range, keyed cleanly on the barcode with no title-matching guesswork.

How it compares

Idealo Price Scraper (this actor)Typical free idealo scrapers
PricingPay-per-event, pay only for products actually foundFree actor, but you pay unpredictable Apify compute
InputEAN/GTIN, joins straight to your catalogOften URL- or keyword-based
Marketsidealo.de and idealo.atUsually idealo.de only
Match qualityEvery EAN is checked against the product page's own GTIN, so a near-miss is reported as a missTrusts the search redirect, so a similar product can be returned as yours
OutputOffers nested per product, min/max total price computedRaw rows, post-processing left to you

Free idealo scrapers exist and work for one-off runs, but they bill Apify compute, so cost scales with run time rather than with results. This actor trades a small per-result fee for output you can bill and forecast, and for a match you can trust: you are charged for a resolved product, not for the attempt.

Pricing

This actor is pay-per-event with two events: a small per-run actor start fee, and a result charge of $0.004 per product idealo actually returns (one dataset item). EANs with no idealo listing are reported in OUTPUT.notFound and are not charged. Apify automatically applies subscription-plan discounts (for example, Business and higher plans receive a 75% discount on the result price). All pricing is pay-per-event, so you only pay for results you receive, no per-compute-unit charges.

Limits and gotchas

  • Only Germany and Austria are supported. idealo discontinued its UK, France, Spain and Italy marketplaces in 2020. The actor exposes only de and at because those are the only idealo sites that return live data.
  • Lookup is by EAN/GTIN, not by free-text search or product URL. If you do not have the barcode, resolve it first.
  • A product not listed on idealo is not an error. Its EAN is returned in OUTPUT.notFound rather than the dataset, and is not charged.
  • Prices are a point-in-time snapshot. idealo offers change throughout the day; schedule repeat runs if you need a price history.
  • Free Apify plans are capped at 10 results per run. Upgrade your Apify plan or split work across runs to go beyond that. Paying plans are uncapped.
  • Currency is EUR for both markets.
  • Brand is sometimes null, idealo does not expose a brand field on every product.

FAQ

Can I scrape idealo prices without an idealo API key? Yes. idealo has no public offers API; this actor handles access for you and returns structured JSON. You supply only EANs.

Why is ean_verified false on a product that clearly matched? Roughly half of idealo's products publish no GTIN on the page, so there is nothing to confirm the match against. That is missing confirmation, not a wrong match: the product was still resolved from your EAN by idealo's own index. Where a page does publish a GTIN and it differs from yours, the item comes back with found: false instead.

Does it cover idealo.at (Austria) as well as idealo.de? Yes, set country to at for the Austrian marketplace or de for Germany. Each market is priced independently by its merchants, so the same EAN can return different offers.

Why do idealo.fr, idealo.co.uk, idealo.es and idealo.it not work? idealo closed those international marketplaces in 2020 and operates only in Germany and Austria today, so there is no live data to return for them.

How do I get the cheapest idealo price for a product? Read min_total_price on each item. It is idealo's own lowest total for the product across every offer it lists, and it matches the cheapest entry in the offers array.

Can I look up many products in one run? Up to 5 EANs per run. The actor de-duplicates them and looks them up concurrently. Anything beyond the fifth is left unprocessed and listed by name in the run's errors record, so you know exactly what to send next. For a bigger catalogue, schedule repeated runs.