Idealo Price Data API avatar

Idealo Price Data API

Pricing

$5.00 / 1,000 results

Go to Apify Store
Idealo Price Data API

Idealo Price Data API

Real-time Idealo price data across 6 European markets. Look up any product by EAN/GTIN, ID, search term, or URL

Pricing

$5.00 / 1,000 results

Rating

0.0

(0)

Developer

PricePirate

PricePirate

Maintained by Community

Actor stats

2

Bookmarked

12

Total users

9

Monthly active users

8 days ago

Last modified

Share

Idealo Price Comparison Data API

Tap into Idealo, one of Europe's largest price-comparison portals, through a single clean Actor. Look up a product by barcode (GTIN/EAN), Idealo product ID, product URL, or search term to get the full list of merchant offers Idealo shows for it: prices, shipping, totals, delivery/availability, shop ratings and voucher flags — all in one unified JSON structure. You can also pull shop profiles (metadata, ratings, payment & shipping info, top products) by Idealo shop ID.

Built by PricePirate, a UCX Media product — full developer documentation lives at pricepirate.com/docs.

Perfect for price-comparison sites, repricing and margin tools, price monitoring and dynamic pricing engines, deal & coupon apps, browser extensions, dropshipping and product research, and AI shopping assistants targeting European markets.

✓ 5 Ways to Look Up Idealo Data

Choose whichever identifier you already have:

OperationValue formatReturns
search-by-gtinGTIN / EAN / UPC barcode, 8–14 digitsProduct with all merchant offers
search-by-idIdealo product ID (e.g. 207562448)Product with all merchant offers
search-by-urlIdealo product URLProduct with all merchant offers
search-by-termFree-text search term (e.g. iphone 16)Best-matching product listing (no per-merchant offers)
shop-infoNumeric Idealo shop IDShop profile + top products (Germany only)

search-by-term returns the top-matching listing — id, name, URL, images, rating, lowest price, and offer count — with an empty offers array. To pull the full per-merchant offer breakdown, follow up with search-by-id using the returned product id. More on the difference between listings and offers in the docs.

✓ 6-Country Coverage

Query localized pricing across Idealo's European marketplaces:

Germany (de, default), Austria (at), Spain (es), France (fr), Italy (it), United Kingdom (uk).

shop-info currently supports Germany (de) only.

✓ Complete Multi-Merchant Offer Data

For a barcode, ID, or URL lookup you get the full competitive landscape for the matched product:

  • Product: title, listing URL, matched ID, EAN, brand, description, image gallery, categories, review rating and review count
  • Price summary: lowest price, highest price, average price, total offer count
  • Per-merchant offers: shop name, shop URL, shop type (standalone vs. marketplace), marketplace name, price, shipping cost, total price (price + shipping — the number Idealo actually ranks by), currency, item condition, delivery/availability, voucher and free-return flags, and ranking position
  • Store trust signals: per-shop review rating and review count

✓ Bypass Idealo Bot Protection

We handle the hard part — rotating infrastructure and anti-bot evasion — so you get clean, structured data without managing proxies, headless browsers, or fighting blocks yourself. No job polling either: start the Actor with your values and read the finished results straight from the dataset.

💻 Input

{
"operation": "search-by-gtin",
"values": ["4009803341163", "4014835778306"],
"country": "de"
}
  • operation (required): one of search-by-gtin, search-by-id, search-by-term, search-by-url, shop-info. All values in a run share the same operation.
  • values (required): 1–25 strings, each one lookup — barcodes, product IDs, search terms, product URLs, or shop IDs, matching the selected operation. Duplicates and blank entries are dropped. Run the Actor multiple times for larger lists.
  • country (optional, default de): 2-letter marketplace code — de, at, es, fr, it, uk. URLs passed to search-by-url must belong to the same country.

💻 Output

One dataset item per input value:

{
"query": "4009803341163",
"operation": "search-by-gtin",
"country": "de",
"status": "found",
"result": {
"id": "207562448",
"name": "Example Product Name",
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/207562448",
"ean": "4009803341163",
"brand": "Example Brand",
"description": "Short spec summary from the listing",
"image_urls": ["https://cdn.idealo.com/…/product.jpg"],
"review_rating": 4,
"review_count": 312,
"categories": null,
"category_ids": null,
"price_min": 129.0,
"price_avg": 142.5,
"price_max": 159.0,
"offers_count": 8,
"offers": [
{
"sellerId": "Example Store",
"shop_name": "Example Store",
"shop_url": "http://www.example-store.de",
"shop_type": "standalone-shop",
"marketplace_name": null,
"shop_review_rating": 5,
"shop_review_count": 1240,
"position": "0",
"condition": "new",
"currency": "EUR",
"price": 129.0,
"shipping": 4.99,
"total": 133.99,
"voucher": false,
"free_return": null,
"availability_code": "short",
"availability_text": "Lieferung in 1-2 Werktagen"
}
],
"source": "idealo",
"country": "de",
"fetched_at": "2026-07-17T12:00:03.000Z"
}
}

For shop-info, result contains the shop profile instead:

{
"query": "123456",
"operation": "shop-info",
"country": "de",
"status": "found",
"result": {
"shop": {
"id": "123456",
"name": "Example Store",
"url": "http://www.example-store.de",
"logo_url": "https://cdn.idealo.com/…/logo.png",
"description": "…",
"address": { "street": "…", "zip": "…", "city": "…", "country": "DE" },
"review_rating": 4.6,
"review_count": 1240,
"payment_methods": ["PayPal", "Kreditkarte"],
"shipping_methods": ["DHL"],
"shipping_costs": {
"inland": "4,99 €",
"foreign": null,
"free_from": "50,00 €",
"min_order_value": null
},
"legal_urls": { "terms": "…", "imprint": "…" },
"top_categories": ["Haushalt"]
},
"top_products": [
{
"id": "207562448",
"title": "Example Product",
"category": "Haushalt",
"url": "https://www.idealo.de/…",
"image": "https://cdn.idealo.com/…",
"price": 129.0,
"delivery_price": null,
"currency": "EUR",
"offers_count": 8,
"review_rating": 4,
"review_count": 312,
"test_note": null,
"available": true
}
],
"source": "idealo",
"country": "de",
"fetched_at": "2026-07-17T12:00:03.000Z"
}
}

💻 Statuses & Errors

status is found, not_found, or error.

not_found means the product is not listed on Idealo. For search-by-gtin and search-by-id it can also mean there is no dedicated product overview page — the page listing all offers for that specific product. The product may still appear on a product search page, but search results are not reliable enough for EAN matching, so they are not used. The upside: when a lookup does return found, the EAN match against the product overview page is almost 100% reliable.

Error items have result: null and carry a stable errorCode:

  • blocked — Idealo could not be fetched for this value right now
  • timeout — the lookup did not finish within the per-query deadline
  • invalid_input — the value does not match the selected operation
  • internal_error — an unexpected upstream failure
  • charge_limit_reached — skipped because the run's maximum charge was hit
  • free_limit_reached — the free plan's lifetime result allowance is used up

Error items are never charged.

💰 Pricing

You pay per successful query result: each query that completes with found or not_found is charged once. Failed queries — errors and timeouts — are always free. A run succeeds if at least one query completes and fails only when nothing came back (in which case nothing was charged).

Example: a batch contains 20 queries; 10 come back found, 5 come back not_found, and 5 time out. You are charged for the 15 successful results — the 5 timeouts are free.

There are no separate Apify platform usage charges — you only pay for successful requests.

Free Apify plans are capped at 50 results in total. The cap is per Apify account and counts every query that came back found or not_found, across all runs. It does not reset — once the 50 are spent, further queries return free_limit_reached instead of a result. Errors and timeouts never count toward it, the same way they are never charged. Upgrade your Apify plan to remove the cap.

When a run hits the cap, the capped queries are written to the dataset as free_limit_reached error items whose error names how much of the allowance is used (for example

Free tier limit reached: 50 of 50 results used. Upgrade your Apify plan to continue.
), and the run's status message says the same. If the cap was already spent when the run started, so nothing at all came back, the run fails with that message rather than a generic failure. Nothing is charged either way.

⏱ Timing

All values in a run are looked up in parallel, and each result is written to the dataset the moment its lookup finishes. The average job takes 1–2 minutes. Each query is given at most 900 seconds before it is reported as a timeout error (uncharged).

⏱ Timeouts

Each query is given at most 900 seconds before it is reported as a timeout error. While most jobs take 1–2 minutes, some take longer: the Actor tries multiple scraping methods per query to maximize the final success rate, and a query only gives up after every method has been exhausted.

If you see many timeouts, try the following:

  • Use smaller batches of requests per run
  • Spread requests throughout the day instead of sending them all at once
  • Avoid busy times — usually around 7–9 am UTC, when Idealo's bot protection is most strict

Failed or timed-out requests are never billed.

📚 Documentation & Guides

Full documentation is hosted at pricepirate.com/docs:

📬 Contact & Support

For custom solutions or higher limits, reach out via pricepirate.com or contact us directly: support@pricepirate.com.

Need a deeper build — custom pricing automation, data pipelines, or a tailored e-commerce integration? That's what we do at UCX Media, the software studio behind PricePirate.