Idealo.de - Prices, Offers, Specs & Reviews avatar

Idealo.de - Prices, Offers, Specs & Reviews

Pricing

from $0.90 / 1,000 product results

Go to Apify Store
Idealo.de - Prices, Offers, Specs & Reviews

Idealo.de - Prices, Offers, Specs & Reviews

Scrape Idealo.de products with identity details, GTIN, price ranges, specifications, images, rating breakdowns and customer reviews. Get the complete merchant offer list, including prices, seller details, and offer pros and cons. Search by keyword or paste product URLs.

Pricing

from $0.90 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

1

Bookmarked

10

Total users

1

Monthly active users

14 hours ago

Last modified

Share

Idealo Scraper: Price Comparisons, Merchant Offers & Reviews

Idealo Scraper turns idealo.de, Germany's largest price-comparison site, into structured product data. Search by keyword or paste your own idealo.de links, and get each product's price range, full merchant offer list, technical specs, images and customer reviews, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • Two ways to find products. Search by keyword, or paste your own idealo.de search-result, category or product links. No need to build URLs by hand.
  • A real price range, not one merchant's discount. idealo.de compares merchants rather than selling directly, so a product with full detail fetched carries the low and high price actually offered right now, plus the number of merchants listing it.
  • Full merchant offer comparison on demand. Switch on detail fetching and get every listed merchant's price, shipping cost and total for a product, not just the cheapest one.
  • The category's own spec table. Technical specifications come back exactly as idealo.de exposes them for that product's category, not a fixed set of fields.
  • Customer reviews with a rating breakdown. Overall rating, review count, the star-by-star histogram, and the individual reviews themselves.
  • Handles pagination automatically. Point it at a whole category or a saved search and it walks the result pages for you, recognizing product links and listing links on its own.
  • Clear failures, not silent gaps. If the site refuses every request, the run stops with a message telling you to retry, instead of quietly returning an empty dataset that looks like a real "no results" answer.

Use Cases

  • Price monitoring and repricing: track a product's lowest offer, highest offer and merchant count over time to react to competitors.
  • Comparison shopping and content sites: pull specs, images and price ranges to power your own product pages or comparison widgets.
  • Market and assortment research: collect category or keyword results in bulk to see which merchants and brands show up for a given search term.
  • Review and sentiment analysis: gather ratings and review text per product to spot quality issues or trending complaints.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

Every record is pushed as one flat JSON object. For a search or category link, with full detail fetching off, only the lean search-result fields are populated (id, url, title, lowPrice, previewImage, offerCount); the full merchant offers list, specs, reviews, description and complete image gallery all require detail fetching to be switched on. A pasted product link always fetches and returns the full record, regardless of the detail-fetching setting. idealo.de is a price-comparison site: it shows a range across merchant offers rather than one merchant's own "was" price, so this actor does not emit a strikethrough or list-price field; lowPrice, highPrice and the offers list are the accurate representation of what idealo.de actually shows.

FieldExample
id"512345"
urlidealo.de link to the product
title"Sample Product 128GB Black"
brand"Sample Brand"
category"Sample Category/Sample Subcategory"
gtin"0000000000000"
lowPrice / highPrice199.00 / 249.90
currency"EUR"
offerCount7
rating / reviewCount4.3 / 128
reviewBreakdown{"5": 80, "4": 30, "3": 10, "2": 5, "1": 3}
previewImagepreview image link
imagesfull image gallery (detail mode; lean mode carries only the preview image)
descriptionthe product's own description text, when idealo.de shows one
specsthe full spec table for that category, as label/value pairs (detail mode)
offers[].merchant / offers[].price"Sample Shop" / 199.00 (detail mode)
offers[].shipping / offers[].total"kostenloser Versand" / 199.00 (detail mode)
offers[].pros / offers[].cons[] / [] (not currently populated)
offers[].urlmerchant redirect link (detail mode)
reviews[].author / reviews[].date"Jane D." / "01.01.2026" (detail mode)
reviews[].text / reviews[].ratingthe reviewer's own text / 5.0 (detail mode)

How to Use

  1. Pick a mode: Direct URLs (paste your own idealo.de search-result, category or product links) or Search by keyword.
  2. Fill in the field for that mode, urls or searchQuery, and switch on Fetch full product detail if you need merchant offers, specs, the full gallery or reviews.
  3. Set Maximum items and Maximum pages to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search by keyword:

{
"mode": "search",
"searchQuery": "iphone 15",
"fetchDetails": true,
"maxItems": 20
}

A category page, with full detail:

{
"mode": "url",
"urls": ["https://www.idealo.de/preisvergleich/ProductCategory/5292.html"],
"fetchDetails": true,
"maxItems": 20
}

A single product page (always returns full detail):

{
"mode": "url",
"urls": ["https://www.idealo.de/preisvergleich/OffersOfProduct/512345_-sample-product.html"]
}

A wider keyword search across several result pages:

{
"mode": "search",
"searchQuery": "waschmaschine",
"maxPages": 3,
"maxItems": 100
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/idealo-de-price-comparison-scraper").call(
run_input={"mode": "search", "searchQuery": "iphone 15", "fetchDetails": True, "maxItems": 20}
)
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["title"], product["lowPrice"], product["offerCount"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/idealo-de-price-comparison-scraper').call({
mode: 'search',
searchQuery: 'iphone 15',
fetchDetails: true,
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

How multiple URLs and pages combine

Each entry in URLs is handled on its own. A product link is fetched once as a single product, with its full detail always included. A search-result or category link is treated as a paginated listing: if the link already carries a page number, that page becomes the starting point, and the actor reads up to Maximum pages pages in total counting that starting page (leave it empty or 0 to walk every page). All entries share one Maximum items cap and the run stops as soon as it's reached.

No stored state between runs

This actor does not remember a previous run: each run scrapes independently from the inputs you give it. To collect only new or changed products on a schedule, run it periodically from the Schedules tab and compare each run's dataset against the previous one yourself, for example by id.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each product, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringurlsearch (find products by keyword) or url (use your own links). Fields belonging to the other mode are ignored.
searchQuerystringnone (prefill: "iphone 15")Keyword to search for. Search mode only.
urlsarraynone (prefill: sample category URL)Your own idealo.de search-result, category or product links. URL mode only; if left empty in URL mode, the actor falls back to the built-in sample category URL.
fetchDetailsbooleantrueFetch the full product detail page: merchant offers, specs, full image gallery, description and reviews. Applies only to search-result and category links; off returns only their lean search-result fields. A pasted product link always returns full detail regardless of this setting.
maxItemsinteger10Stop after this many products across the whole run.
maxPagesintegernone (empty or 0 walks every result page)Maximum number of result pages to read per search or category entry.
proxyConfigurationobjectnone (prefill: Residential, Germany)Only the country you set is used (Germany if left empty); the actor picks the connection tier itself.
mcpConnectorsarraynoneOptional: send a summary of each product to apps you authorized under Integrations.
notionParentPageUrlstringnoneNotion connector only: page under which item pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run. Does not affect the dataset.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"id": "512345",
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/512345_-sample-product.html",
"title": "Sample Product 128GB Black",
"brand": "Sample Brand",
"category": "Sample Category/Sample Subcategory",
"gtin": "0000000000000",
"lowPrice": 199.00,
"highPrice": 249.90,
"currency": "EUR",
"offerCount": 7,
"rating": 4.3,
"reviewCount": 128,
"reviewBreakdown": { "5": 80, "4": 30, "3": 10, "2": 5, "1": 3 },
"previewImage": "https://cdn.example.com/512345.jpg",
"images": ["https://cdn.example.com/512345.jpg"],
"description": "The product's own description text appears here when present.",
"specs": { "Sample Spec Label": "Sample value" },
"offers": [
{
"merchant": "Sample Shop",
"price": 199.00,
"priceFormatted": "199,00 €",
"shipping": "kostenloser Versand",
"total": 199.00,
"totalFormatted": "199,00 €",
"pros": [],
"cons": [],
"url": "https://www.idealo.de/relocator/relocate?sample"
}
],
"reviews": [
{
"author": "Jane D.",
"date": "01.01.2026",
"title": null,
"text": "The reviewer's own text appears here.",
"rating": 5.0
}
]
}

Plan Requirement

The default connection country is Germany. If a page is refused on every retry, the actor switches the rest of the run to a stronger connection tier, billed at a higher rate on your own Apify plan. On this site that is common, so keep Maximum items tight while testing.

FAQ

How much does it cost?

You pay per product returned, plus a separate detail-enrichment charge for every product that gets full detail: search and category results when Fetch full product detail is switched on, and pasted product links always, since those already return full detail regardless of that setting. There is also a one-time charge when the run starts. The Pricing tab shows the current rates. Use Maximum items to cap the cost of any run.

This actor collects only publicly available product and price information. You are responsible for how you use it: follow idealo.de's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product prices and specs are generally facts, but images and review text may be subject to third-party rights.

Can I run it on a schedule to catch new or changed products?

Yes, from the Schedules tab, but each run scrapes independently and does not remember what an earlier run returned. To find only new or changed products, compare consecutive runs' datasets yourself, for example by id.

mode decides which fields are used: URL mode reads only urls and ignores searchQuery, and search mode reads only searchQuery and ignores urls. If URL mode is selected and urls is left empty, the actor falls back to its built-in sample category link rather than failing the run.

Why did my run fail instead of returning an empty dataset?

If idealo.de refuses every request, the run stops with a clear message so a genuinely empty search (a keyword that matches nothing) is never confused with the site being unreachable. If any page could still be read, you get what was found; only a run that never reached the site raises an error. Retry it again in a few minutes.

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 a summary of each product into Notion, Linear or Airtable.

🔗 Want more e-commerce data?

Pair this actor with these related scrapers from the same team:

👗 OTTO.de Scraper
Scrape OTTO.de products by search or URL. Extract prices, discounts, variants...
🔌 MediaMarkt Germany Scraper
Scrape MediaMarkt.de products by keyword or URL. Extract current and original prices...
🛒 OBI.de Scraper
Scrape OBI (obi.de) DIY/home-improvement products: current + strike-through original...
🛒 HORNBACH Products, Prices & Reviews Scraper
Scrape HORNBACH (hornbach.de) DIY, building & garden products: current + strike-through...
🥦 Kaufland.de Scraper
Scrape Kaufland.de, Germany's hypermarket and online marketplace: keyword/category/brand...
🚗 mobile.de
From $0.8/1K. Scrape mobile.de vehicle listings with 30+ structured fields including...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.