idealo logo

Online shops · Live on Apify

Idealo Price Scraper: Shop Offers in 6 Countries

Type a product name or paste idealo links. You get the price of every shop for that product.

About $4.61 for 1,000 products$0.0045 per product + $0.0225 per run (start fee $0.018 + country site opened $0.0045). One run gives up to 200 products. Apify bills you, not us.One product in a run of its own: about $0.03.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

titleApple AirPods Pro 3
bestPrice193 EUR
offerCount57 shops

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: airpods pro in Search queries. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Idealo Price Scraper reads idealo price comparison pages and returns every shop offer for a product: shop, price, shipping, total price, delivery time, shop rating and shop link. It works on idealo.de, idealo.at, idealo.fr, idealo.it, idealo.es and idealo.co.uk.

  • Search mode: you type keywords. The Actor takes the products from the first results page of each search, in idealo's order, and reads each product page.
  • Products mode: you paste idealo product URLs or product IDs. The Actor reads exactly those products. URLs can come from different countries in one run.

Good for

  • Watch the price of your products in several countries every day.
  • See all shops that sell a product, with shipping and total price, not only the cheapest one.
  • Find a product's GTIN/EAN, brand and category from a keyword.

Not a good fit

  • Only the 6 idealo sites above. Other countries and other price comparison sites are not supported.
  • Search mode reads only the first results page of each search. Single-shop offers without an idealo price comparison page are skipped.
  • Up to 200 products and up to 200 offers per product in one run (20 offers per product by default).
  • Prices are what idealo shows at the time of the run. Shops can change prices at any time.
  • Used and refurbished offers are not in the offer list (idealo shows them separately).

Who uses it

Online shops

Watch your product prices against other shops every day.

Brands

Compare one product across several countries.

Catalog managers

Find GTIN, brand and category for products from a keyword.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Product with offers$0.0045 (from $0.0038 on paid Apify plans)One idealo product saved to the dataset with its first page of shop offers (up to 20). not_found and error rows are not charged as products.
Extra offer page$0.0015One more page of up to 20 shop offers for a product (offers 21-40, 41-60, ...). Only when maxOffersPerProduct is above 20 and the page added offers.
Search query$0.002One idealo search results page read, also when it lists no products.
Product not found$0.002One product ID or URL checked that idealo does not have (not_found row). Invalid inputs and source errors are free.
Country site opened$0.0045One idealo country site (idealo.de, .at, .fr, .it, .es or .co.uk) opened in the run, charged once per site after its first successful page read. Opening a site needs a real browser warm-up.
Start fee$0.009Charged once per run, one fee per GB of memory. This tool uses 2 GB by default, so $0.018 per run.

Examples

  • One product: about $0.03.
  • 1,000 products: about $4.61 (5 runs of up to 200).
  • Every day 100 products, for 30 days: about $14.17 a month.
  • 200 products once a week (4 runs a month): about $3.69 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 1,000 products.

Prices checked on 24 October 2026. See the current price on Apify.

Questions

Is this an official idealo tool?

No. It reads the public idealo pages.

Are used offers included?

No. Used and refurbished offers are not in the list.

Why do I get fewer offers than offerCount?

The tool saves 20 offers per product by default. You can raise it to 200.

Are prices up to date?

They are what idealo shows at run time. Shops can change prices at any time.

Do I need an idealo account or an API key?

No. The Actor reads the public idealo pages. No login, no API key.

Is the output the same as other idealo scrapers?

The prices, shops and product IDs are the same as on idealo, but field names are different (for example title, gtin and a nested offers list). If you move from another Actor, map the fields once.

Why are the rows not in the same order as my URLs?

In products mode the Actor reads all products of one idealo site, then the next site. This keeps the run fast and cheap. Use input to match rows with your list.

Details

Step by step on Apify
  1. Open the Input tab.
  2. Keep What to scrape = Search and the prefilled query airpods pro.
  3. Keep idealo site = idealo.de (Germany) and Max products = 10.
  4. Click Start.
  5. Open the Output tab. The Products view shows one row per product; the All offers view shows one row per shop offer.
Use cases
TaskInputYou getKey fieldsNext step
Track prices of my product listmode: products, productUrlsproduct rowbestPrice, offerCount, offers[].totalPriceSchedule + Google Sheets or webhook
Compare shops for one productproductUrls, maxOffersPerProduct: 100offersoffers[].shop, price, shipping, availabilityCSV / Excel export
Find products and EANs by keywordmode: search, queriesproduct rowtitle, gtin, brand, categoryAPI / JSON
Compare one product across countriesthe same product ID as URLs on several idealo sitesproduct row per sitedomain, currency, bestPriceAPI / JSON
Tips for better results
  • Paste product URLs for exact products. Search reads only the first results page.
  • Raise the offers per product from 20 if you need more shops.
  • Mix URLs from different countries in one run to compare markets.
Limits and good to know
  • Up to 20 search queries and 200 product URLs or IDs per run; at most 200 products saved
  • Up to 200 offers per product
  • Default timeout is 900 seconds; 200 products with 20 offers take about 5 minutes. With many offers per product (100+), raise the timeout in run options
  • Memory is fixed at 2 GB (a real Chrome browser is used)

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "status": "complete",
  "productId": "207671730",
  "title": "Apple AirPods Pro 3",
  "url": "https://www.idealo.de/preisvergleich/OffersOfProduct/207671730_-airpods-pro-3-apple.html",
  "domain": "de",
  "category": "Kopfhörer",
  "categoryId": "2520",
  "brand": "Apple",
  "gtin": "0195950543650",
  "currency": "EUR",
  "bestPrice": 193,
  "highestPrice": 281.95,
  "offerCount": 57,
  "offersReturned": 20,
  "rating": 4.6,
  "ratingCount": 10,
  "offers": [
    {
      "position": 1,
      "shop": "kaufland.de",
      "shopId": "26895",
      "marketplaceSeller": "pricerush",
      "price": 193,
      "shipping": 9.99,
      "totalPrice": 202.99,
      "currency": "EUR",
      "availability": "Lieferung: bis Sa. 17.10.",
      "shopRating": 4.5,
      "shopRatingCount": 56444
    }
  ],
  "searchQuery": "airpods pro",
  "searchPosition": 1,
  "input": null,
  "error": null,
  "source": "idealo"
}

Use it from code

Actor ID: cliqtomedia/idealo-price-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/idealo-price-scraper").call(run_input={
    "mode": "search",
    "queries": [
        "airpods pro"
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~idealo-price-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "queries": ["airpods pro"]}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/idealo-price-scraper")
result = tool.invoke({"run_input": {"mode": "search", "queries": ["airpods pro"]}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (24)
FieldTypeMeaning
statusstringcomplete: product and requested offers read; partial: product read but some offers or fields missing (see error); not_found: no such product; error: invalid input entry. complete and partial rows are charged as products; a not_found row is charged as a cheaper product-not-found check; error rows are free.
productIdstringidealo product ID, the same across countries.
titlestringProduct name.
urlstringProduct comparison page on idealo (or the input text for invalid entries).
domainstringidealo site the product was read from.
categorystringProduct category as named on that site.
categoryIdstringidealo category ID.
brandstringBrand.
gtinstringGTIN/EAN when idealo lists one.
imageUrlstringProduct image.
currencystringEUR or GBP.
bestPricenumberLowest offer price on idealo (without shipping).
highestPricenumberHighest offer price on idealo.
offerCountintegerTotal number of offers idealo lists for the product.
offersReturnedintegerNumber of offers in this row (up to maxOffersPerProduct).
ratingnumberProduct rating on idealo (1–5 scale as shown); null when unrated.
ratingCountintegerNumber of product ratings.
offersarrayShop offers in idealo default order.
searchQuerystringSearch query that found the product (search mode).
searchPositionintegerPosition among products on the first results page (search mode).
inputstringProduct URL or ID as given (products mode).
errorstringWhy the row is partial, not_found or error; null otherwise.
sourcestringAlways "idealo".
fetchedAtstringWhen the product page was read (ISO 8601).
Input settings (7)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
What to scrapemodestring"search"
Search queriesqueriesarray["airpods pro"]
Product URLs or IDsproductUrlsarray
idealo sitedomainstring"de"
Max productsmaxItemsinteger10
Max offers per productmaxOffersPerProductinteger20
ProxyproxyConfigurationobject{"useApifyProxy": false}

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure