Idealo Price History & Deal Intelligence avatar

Idealo Price History & Deal Intelligence

Pricing

from $12.00 / 1,000 dataset items

Go to Apify Store
Idealo Price History & Deal Intelligence

Idealo Price History & Deal Intelligence

Track idealo prices over time. Get up to a year of daily prices per product across 6 markets (DE, AT, UK, FR, IT, ES) plus all-time-low flags, % off the period high, volatility, drop counts and cross-border comparison. Feed repricing, deal alerts and MAP checks. Pay per result.

Pricing

from $12.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Most price scrapers tell you what something costs today. This one tells you what it has cost every day for the past year — and what that means.

Give it product URLs, product IDs or search terms and get back, per product: up to 365 daily price points, the period low and high with their dates, how far below its peak the price sits right now, volatility, how many times it dropped, the biggest single drop, an at-a-period-low flag, idealo's own bargain indicator, today's cheapest shop, and the same product's price in the other idealo markets.

Covers six markets: Germany, Austria, the United Kingdom, France, Italy and Spain.

Who uses this

You are…You get
Pricing / repricing teamThe real price floor and ceiling per SKU, not a single noisy snapshot
Deal site / affiliateA filtered feed of products genuinely at a period low — not fake "was" prices
Brand / MAP complianceEvidence of when and how far a product fell below your price floor
Category buyer / merchandiserSeasonality and volatility per product before you commit stock
Cross-border sellerWhere in Europe the same product is systematically cheaper
Analyst / researcherClean daily price time series for inflation, elasticity and trend work

Why history beats a snapshot

A single scrape cannot tell a real discount from a manufactured one. A product listed at €559 might be at its cheapest ever — or €40 above where it sat all summer. This Actor returns pct_below_period_high, is_period_low, min_price_date and the full series, so "is this actually a good price?" becomes a column you can sort on.

Output fields

FieldTypeDescription
product_id, title, url, imagestringProduct identity — the ID is shared across all 6 markets
market, country, currency, periodstringWhich market and window the series covers
data_points, days_trackedintegerSize of the returned series
period_start_date, period_end_datestringFirst and last observation dates
current_pricenumberMost recent price in the series
min_price, min_price_datemixedPeriod low and when it happened
max_price, max_price_datemixedPeriod high and when it happened
avg_price, median_pricenumberCentral tendency across the period
price_change_abs, price_change_pctnumberMovement from the start of the period to now
pct_below_period_highnumberThe real discount right now
pct_above_period_lownumberHow much you'd overpay versus the cheapest it has been
is_period_low, is_period_highbooleanSortable deal flags
volatility_pctnumberStd-dev as a percentage of the mean
price_changes, drops, risesintegerHow actively the price moves
biggest_drop_abs, biggest_drop_pctnumberLargest single-step fall in the period
trend_30d_pctnumberShort-term direction over the last 30 observations
is_bargain, bargain_detailsmixedIdealo's own bargain indicator
best_shop_name, best_price, best_total_price, best_offer_urlmixedToday's cheapest merchant
offer_count, shop_countintegerLive competition on the product
cross_market_prices[], cheapest_market, cheapest_market_price, cross_market_saving_pctmixedCross-border comparison
price_series[]arrayThe raw [{date, price}] history, oldest first
scraped_atstringUTC timestamp

High-value use cases

  1. Automated deal feed — set onlyDeals or minDropFromHighPct: 20 and schedule hourly; every row is a product genuinely near its floor.
  2. Repricing guard rails — use min_price, median_price and volatility_pct per SKU to set price bands that survive competitor noise.
  3. MAP violation evidence — the dated series shows exactly when a product went below your minimum advertised price and by how much.
  4. Cross-border sourcing — compare markets and sort by cross_market_saving_pct to find products consistently cheaper in another country.
  5. Buying-season researchmin_price_date across a category reveals when a product class actually bottoms out, instead of guessing at Black Friday.

Input parameters

ParameterTypeDefaultDescription
marketselectdede, at, uk, fr, it, es
productsarrayProduct URLs (any market) or bare numeric product IDs
searchTermsarrayResolve products by keyword, then pull each one's history
periodselect1Y1M, 3M, 6M, 1Y
compareMarketsarray[]Extra markets to compare the same product against
includeCurrentOfferbooleantrueAdd today's cheapest shop, price and offer count
includeSeriesbooleantrueInclude the raw daily [{date, price}] array
onlyDealsbooleanfalseEmit only products at a period low or flagged a bargain
minDropFromHighPctinteger0Only emit products at least this far below their peak
maxItemsinteger100Stop after this many products (0 = unlimited)
maxPagesPerTerminteger2Search pages walked per term when resolving products
proxyConfigurationobjectoffOptional — runs fine without a proxy

At least one of products or searchTerms is required.

Example input

{
"market": "de",
"products": ["203235721"],
"searchTerms": ["iphone 15"],
"period": "1Y",
"compareMarkets": ["it", "uk"],
"includeCurrentOffer": true,
"onlyDeals": false,
"maxItems": 25
}

Example output

{
"product_id": "203235721",
"title": "Apple iPhone 15",
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/203235721_-iphone-15-apple.html",
"market": "de",
"country": "Germany",
"currency": "EUR",
"period": "1Y",
"data_points": 335,
"period_start_date": "2025-09-01",
"period_end_date": "2026-09-01",
"current_price": 559.9,
"min_price": 499.0,
"min_price_date": "2025-11-28",
"max_price": 749.0,
"max_price_date": "2025-09-14",
"avg_price": 588.41,
"median_price": 579.9,
"price_change_abs": 30.0,
"price_change_pct": 5.66,
"pct_below_period_high": 25.25,
"pct_above_period_low": 12.2,
"is_period_low": false,
"is_period_high": false,
"volatility_pct": 8.14,
"price_changes": 122,
"drops": 63,
"rises": 59,
"biggest_drop_abs": 41.0,
"biggest_drop_pct": 6.72,
"trend_30d_pct": 1.82,
"is_bargain": false,
"best_shop_name": "Cyberport",
"best_price": 559.9,
"offer_count": 147,
"shop_count": 48,
"cross_market_prices": [
{
"market": "it",
"country": "Italy",
"currency": "EUR",
"current_price": 484.0,
"min_price": 449.0,
"data_points": 322
},
{
"market": "uk",
"country": "United Kingdom",
"currency": "GBP",
"current_price": 423.99,
"min_price": 399.0,
"data_points": 298
}
],
"cheapest_market": "uk",
"cheapest_market_price": 423.99,
"cross_market_saving_pct": -24.27,
"price_series": [{ "date": "2025-09-01", "price": 529.9 }],
"scraped_at": "2026-09-01T10:31:07Z"
}

Cross-market prices are reported in each market's own currency (currency per entry). The UK series is in GBP — convert before comparing it to a EUR market.

Scheduling & integrations

Schedule daily or hourly runs from the Apify Console to keep a rolling price archive of your catalogue. Export as JSON, CSV, Excel or XML, or push results by webhook into Google Sheets, Make, Zapier, Amazon S3 or your own API. Long runs checkpoint after every 20 products, so an interrupted run resumes instead of re-emitting rows you already paid for.

Use it from an AI assistant (MCP)

Callable through Apify's MCP server, so Claude, ChatGPT or any MCP-capable agent can run it directly:

https://mcp.apify.com/?actors=axlymxp/idealo-price-history-scraper

Ask "has the iPhone 15 ever been cheaper than it is today on idealo?" and your assistant will run the Actor and read the answer out of the dataset.

FAQ

Where does the history come from? Idealo tracks its own daily price index per product and market. The Actor reads that series directly, so you get real historical data on the first run — you do not have to build up a history yourself over months.

How far back does it go? Up to one year (1Y, roughly 335 daily points). Shorter windows (1M, 3M, 6M) return proportionally fewer points and run faster.

Does every product have history? No. Very new or very rare products may return an empty series. Those rows are skipped and logged rather than emitted as empty, so you are not charged for them.

Do I need a proxy? No. The Actor works without one. A proxy is supported for very large runs or rate-limited regions.

Can I compare markets in one run? Yes — set compareMarkets. Note that each market reports in its own currency; the UK series is GBP while the others are EUR.

How do I build a deal feed? Set onlyDeals: true (period low or idealo bargain flag) or minDropFromHighPct to a threshold like 20, add your search terms, and schedule it. Filtered-out products are not pushed, so you only pay for real hits.

Is this legal? The Actor collects publicly available product and price information. You are responsible for using the data in line with idealo's terms and applicable law.