
Website Content Crawler
scrape.ly/store/querystone/website-content-crawlerAIDeveloper tools
1 monthly user

Scrape idealo price comparison: products, lowest prices, every shop offer with shipping, total, delivery, payment and shop rating, plus GTIN, specs and reviews. Search terms, GTINs, product IDs or URLs on idealo.de, .at, .co.uk, .fr, .it and .es. No login needed.
Get prices and shop offers from idealo, Europe's big price comparison site. For each product you get the lowest and highest price, every shop offer with shipping, total price, delivery time, payment methods and shop rating, plus GTIN/EAN, specs, reviews and images. Search by keyword, barcode, product ID or URL on idealo.de, .at, .co.uk, .fr, .it and .es. No login, no API key, and about 1,000 products with all their offers in 4 minutes.
iphone 15), GTINs/EANs, idealo product IDs, or paste idealo URLs.| Field | What it does |
|---|---|
searchTerms | Keywords to search on the selected site. |
startUrls | idealo product, category or search URLs from any of the six sites. |
gtins | Barcodes (8–14 digits); each returns the matching product. |
productIds | Numeric idealo product IDs such as 203247542. |
country | de, at, uk, fr, it or es (default de). |
maxResultsPerSearch | Products per search term, category or search URL (default 20). |
minPrice / maxPrice / sortBy | Filters and sort order for searches and categories. |
includeOffers | Add every shop offer, specs and GTIN (default on). |
maxOffersPerProduct | Cap on offers per product (default 50, 0 = all). |
maxItems | Optional cap on rows across all inputs. |
{
"searchTerms": ["iphone 15"],
"gtins": ["4009803341163"],
"startUrls": ["https://www.idealo.co.uk/compare/203235721/apple-iphone-15.html"],
"country": "de",
"maxResultsPerSearch": 20,
"includeOffers": true,
"maxOffersPerProduct": 50
}
One row per product. Each row holds the product data and an offers list. The Shop offers view in the dataset shows one line per offer.
| Field | Description |
|---|---|
title, brand, gtin, productId, url | Product identity and idealo page. |
priceMin, priceMax, priceAvg, currency | Price range over the offers. |
offersCount, offersScraped | Offers idealo lists, and offers saved in the row. |
bestTotalPrice, bestShop, bestOfferUrl | Cheapest offer including shipping. |
categoryPath, characteristics, specs | Category breadcrumb, key features, full spec sheet. |
rating, reviewCount, pros, cons | User rating (out of 5) and idealo's pros and cons. |
variants, images, energyClass, usedPriceFrom | Variants with GTINs, images, EU energy class, cheapest used offer. |
offers[] | shopName, platformName, price, shipping, total, deliveryText, deliveryProviders, freeReturn, paymentMethods, shopRating, shopReviewCount, condition, offerUrl and more. |
query, inputType, searchPosition, scrapedAt | Which input produced the row, and when. |
Example row from a test run (trimmed to two offers):
{
"query": "4009803341163",
"inputType": "gtin",
"productId": "4297866",
"title": "Revell Spray sand, matt (34134)",
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/4297866_-spray-sand-matt-34134-revell.html",
"country": "de",
"brand": "Revell",
"gtin": "4009803341163",
"categoryPath": ["Gaming & Spielen", "Modellbau", "Modellbausätze"],
"priceMin": 8.99,
"priceMax": 12.99,
"priceAvg": 10.89,
"currency": "EUR",
"offersCount": 8,
"offersScraped": 8,
"bestTotalPrice": 9.48,
"bestShop": "Amazon",
"specs": {"Produkttyp": "Modellbau-Farbe", "Teile": "1"},
"offers": [
{
"position": 1,
"title": "Revell 34116 Spray sand, matt 100ml",
"shopName": "modellbaucenter-bochum",
"platformName": "eBay",
"isMarketplace": true,
"condition": "new",
"price": 8.99,
"shipping": 5.95,
"total": 14.94,
"currency": "EUR",
"deliveryText": "Lieferung: bis Sa. 17.10.",
"paymentMethods": ["PayPal", "Visa", "Mastercard"],
"shopRating": 5.0,
"shopReviewCount": 92608,
"offerUrl": "https://www.idealo.de/relocator/relocate?categoryId=5632&offerKey=e562f036227d8e74ec992d35c949bdc7&pos=1&price=8.99&productid=4297866&sid=9701&type=offer"
},
{
"position": 2,
"title": "Revell 34116 - Modellbau Sprayfarben, matt Sand",
"shopName": "Amazon",
"isMarketplace": false,
"condition": "new",
"price": 9.48,
"shipping": 0.0,
"total": 9.48,
"currency": "EUR",
"freeReturn": "Rücksendung 14 Tage kostenfrei",
"paymentMethods": ["Rechnung", "Visa", "Mastercard", "American Express", "Lastschrift"],
"shopRating": 2.4,
"shopReviewCount": 1803
}
],
"scrapedAt": "2026-10-15T00:38:36Z"
}
You pay $3.00 per 1,000 products ($0.003 per row). All of a product's offers are in its one row, so 50 offers still count as one result. 1,000 products ≈ $3.00 in result fees. Platform usage (compute and proxy traffic) is billed on top at normal rates. The default residential proxy moves about 0.16–0.2 GB per 1,000 products with all offers ($2 per GB), so usage comes to about $0.40 per 1,000 products and 1,000 products cost about $3.40 in total. A 20-product run costs about $0.07. GTINs or IDs that idealo doesn't know are not charged.
Is it legal to scrape idealo? The scraper only reads public pages that anyone can open without an account. It collects product and shop data, not personal data. Check that your use fits idealo's terms and the laws that apply to you.
Do I need an idealo account or a proxy? No account. A residential proxy in the idealo site's country is on by default, because idealo's Akamai protection blocks datacenter IPs on product pages. You can still pick the datacenter proxy; the scraper then switches to residential IPs by itself when it gets blocked.
How many results can I get? Up to the maximum per search for each term, category or search URL. idealo itself shows a limited number of pages per search (a few thousand products), so for very large categories use several searches, price ranges or subcategories.
Why is a field empty? idealo doesn't show every field for every product. GTINs, ratings, specs and pros and cons are often missing on small or new listings. Offer rows without a shipping price had no shipping shown on idealo.
What about GTINs that aren't on idealo? They are listed in the run's status message and in the OUTPUT record, and they are not charged. A GTIN only returns a product when idealo links that exact barcode to it.
Can I schedule it or use the API? Yes. Schedule runs for daily price tracking, and start runs and read results through the REST API or webhooks.
usedPriceFrom shows the cheapest used price when idealo shows one.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchTermsarrayOptionalSearch terms
Keywords to search on the selected idealo site, e.g. iphone 15, airpods pro, dyson v15. Each term returns up to the maximum results per search.
startUrlsarrayOptionalidealo URLs
Product comparison pages (e.g. https://www.idealo.de/preisvergleich/OffersOfProduct/203247542_-iphone-15-128gb-schwarz-apple.html), category pages (e.g. https://www.idealo.de/preisvergleich/ProductCategory/19116.html) or search result URLs. Any idealo country works (.de, .at, .co.uk, .fr, .it, .es); the country comes from the URL.
gtinsarrayOptionalGTINs / EANs
Barcodes to look up (8 to 14 digits), e.g. 4009803341163. Each GTIN returns the matching idealo product with all shop offers.
productIdsarrayOptionalidealo product IDs
Numeric idealo product IDs, e.g. 203247542 (the number in a product URL).
countryenumOptionaldefault "de"Country site
idealo site used for search terms, GTINs and product IDs. URLs always use their own country.
maxResultsPerSearchintegerOptionaldefault 20Maximum results per search
Maximum products to save for each search term, category or search URL. Product, GTIN and ID inputs always return one row each.
Applied to search terms, category and search URLs.
minPriceintegerOptionalMinimum price
Only products from this price (in the site's currency).
maxPriceintegerOptionalMaximum price
Only products up to this price (in the site's currency).
sortByenumOptionaldefault "relevance"Sort by
Order of search and category results.
includeOffersbooleanOptionaldefault trueInclude all shop offers
Open each product page and add every shop offer (shop, price, shipping, total, delivery, payment methods, shop rating), specs, GTIN, pros and cons. Turn off for fast search-tile results only.
maxOffersPerProductintegerOptionaldefault 50Maximum offers per product
Cap on shop offers saved per product. 0 means all offers.
maxItemsintegerOptionalMaximum results in total
Optional cap on rows across all inputs. Empty means no cap beyond the per-search maximum.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Residential proxies (in the idealo site's country) are the default: idealo's Akamai protection blocks datacenter IPs on product pages. Datacenter is still selectable; the scraper then switches to residential IPs by itself when it gets blocked.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| imageUrl | any | Image |
| title | any | Product |
| brand | any | Brand |
| priceMin | any | Lowest price |
| priceMax | any | Highest price |
| currency | any | Currency |
| offersCount | any | Offers |
| bestShop | any | Cheapest shop (incl. shipping) |
| bestTotalPrice | any | Cheapest total |
| rating | any | Rating (of 5) |
| reviewCount | any | Reviews |
| gtin | any | GTIN / EAN |
| productId | any | idealo ID |
| country | any | Site |
| query | any | Input |
| url | any | idealo page |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Product | One idealo product with all of its shop offers. | $0.003 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/idealo-scraper').call({
"searchTerms": [
"iphone 15"
],
"maxResultsPerSearch": 20,
"maxOffersPerProduct": 50,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/idealo-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/idealo-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Shop offers for a product from its idealo link.
Search products with shop offers in Germany.
Products in a price range, cheapest first.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.