Scrape idealo offer tables across five countries
The full offer list for a product on idealo.de, .es, .it, .fr and .co.uk: shop, price, shipping, delivery time, availability. The heaviest recipe in the Cookbook by volume.
Measured on Crawlbase
97.0% success in August 2026 on the largest long-tail site we serve. Most of that volume runs through the Smart AI Proxy; the call below is the Crawling API form of the same request. 20.5% of successful calls used the JavaScript token; the offer table is in the HTML, so the rest got the same data at half the cost.
The call
# Offer table for one product on idealo.de curl "https://api.crawlbase.com/?token=YOUR_TOKEN&country=DE&url=https%3A%2F%2Fwww.idealo.de%2Fpreisvergleich%2FOffersOfProduct%2F203251234.html" # Same product on idealo.es: switch the domain and the exit country together curl "https://api.crawlbase.com/?token=YOUR_TOKEN&country=ES&url=https%3A%2F%2Fwww.idealo.es%2Fprecios%2F203251234.html"
from crawlbase import CrawlingAPI api = CrawlingAPI({'token': 'YOUR_TOKEN'}) r = api.get('https://www.idealo.de/preisvergleich/OffersOfProduct/203251234.html', {'country': 'DE'}) # offers are rows under .productOffers-listItem; shop, price, shipping, delivery per row
const { CrawlingAPI } = require('crawlbase'); const api = new CrawlingAPI({ token: 'YOUR_TOKEN' }); const r = await api.get('https://www.idealo.de/preisvergleich/OffersOfProduct/203251234.html', { country: 'DE' });
Parameters that matter
| Parameter | Set it to | Why |
|---|---|---|
country | match the domain: DE, ES, IT, FR, GB | idealo redirects a foreign exit to its own country site and you end up with the wrong offer table under the right URL. |
javascript | leave unset | Offer rows are server-rendered. The calls that used a browser paid twice for the same table. |
format | html | No dedicated scraper yet. The selectors below are the ones the accounts on this recipe read. |
Fields you get, per offer row
.productOffers-listItemTitle.productOffers-listItemOfferPrice.productOffers-listItemOfferShippingDetails.productOffers-listItemOfferDeliveryTimedata-availabilitya[href] (redirect)What breaks, and the fix
?page=. The first page is sorted by price including shipping; later pages keep that order.Run it on a schedule
Price monitoring at this scale belongs in the Crawler: push product URLs with a callback, and let the queue pace requests.
Questions
Does idealo need JavaScript?
No. Offer tables are in the HTML. Set country to the site's country and skip the browser.
Which idealo countries work?
Germany, Spain, Italy, France and the UK are measured. Austria works with country=AT but has too little traffic to report a rate.