idealo.de API: Compare prices on idealo
Finds the best-matching product on idealo for the chosen country (DE, AT, UK, FR, IT, ES) and lists its cheapest shop offers, including shipping where shown.
Unofficial. Not affiliated with or endorsed by idealo.de.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Country optional
country Country name or two-letter code, for example Germany or DE.
DE
Default
Germany.- Product, required
product Product name to compare, for example Sony WH-1000XM5.
Sony WH-1000XM5
- Max Offers optional
max_offers Maximum number of cheapest offers to return, for example 20.
50
Whole number from 1 to 50. Default
20.
Input as JSON
{ "country": "DE", "product": "Sony WH-1000XM5", "max_offers": 50}Output
{ "offers": [ { "price": 189, "shop_name": "Amazon", "offer_link": "https://www.idealo.de/relocator/relocate?categoryId=2520&offerKey=325a69d53fac0738735c0d42da62821a&pos=1&price=189.00&productid=201949755&sid=4640&type=offer" , "shop_rating": "2,3", "total_price": 189, "delivery_time": "Auf Lager", "shipping_cost": 0, "shop_rating_count": 1797 }, { "price": 189, "shop_name": "joybuy.de", "offer_link": "https://www.idealo.de/relocator/relocate?categoryId=2520&offerKey=3430badbdeed36644523c6aac77a6adc&pos=2&price=189.00&productid=201949755&sid=335764&type=offer" , "shop_rating": "2,7", "total_price": 189, "delivery_time": "Lieferung am selben Tag oder am nächsten Tag", "shipping_cost": 0, "shop_rating_count": 145 }, { "price": 189, "shop_name": "joybuy.de", "offer_link": "https://www.idealo.de/relocator/relocate?categoryId=2520&offerKey=647e4634560b011f6a6a3530ee9daad4&pos=3&price=189.00&productid=201949755&sid=335764&type=offer" , "shop_rating": "2,7", "total_price": 189, "delivery_time": "Lieferung am selben Tag oder am nächsten Tag", "shipping_cost": 0, "shop_rating_count": 145 } ], "currency": "EUR", "price_trend": null, "lowest_price": 189, "product_name": "Sony WH-1000XM5", "number_of_offers": 97, "idealo_product_link": "https://www.idealo.de/preisvergleich/OffersOfProduct/201949755_-wh-1000xm5-sony.html" }Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"idealo.de/compare_prices","input":{"country":"DE","product":"Sony WH-1000XM5","max_offers":50}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "idealo.de/compare_prices" , "input": { "country": "DE", "product": "Sony WH-1000XM5", "max_offers": 50 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "idealo.de/compare_prices" , "input": { "country": "DE", "product": "Sony WH-1000XM5", "max_offers": 50 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run idealo.de/compare_prices# with {"country":"DE","product":"Sony WH-1000XM5","max_offers":50}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "product" ], "properties": { "country": { "type": "string", "default": "Germany", "description": "Country name or two-letter code, for example Germany or DE." }, "product": { "type": "string", "description": "Product name to compare, for example Sony WH-1000XM5." }, "max_offers": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum number of cheapest offers to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "product_name", "idealo_product_link", "lowest_price", "currency", "number_of_offers", "price_trend", "offers" ], "properties": { "offers": { "type": "array", "items": { "type": "object", "required": [ "shop_name", "price", "shipping_cost", "total_price", "delivery_time", "shop_rating", "shop_rating_count", "offer_link" ], "properties": { "price": { "type": [ "number", "null" ] }, "shop_name": { "type": [ "string", "null" ] }, "offer_link": { "type": [ "string", "null" ] }, "shop_rating": { "type": [ "string", "null" ] }, "total_price": { "type": [ "number", "null" ] }, "delivery_time": { "type": [ "string", "null" ] }, "shipping_cost": { "type": [ "number", "null" ] }, "shop_rating_count": { "type": [ "integer", "null" ] } }, "additionalProperties": false } }, "currency": { "enum": [ "EUR", "GBP" ], "type": "string" }, "price_trend": { "type": [ "string", "null" ] }, "lowest_price": { "type": [ "number", "null" ] }, "product_name": { "type": "string" }, "number_of_offers": { "type": "integer" }, "idealo_product_link": { "type": "string" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
idealo.de/compare_prices- Returns
- product name, idealo link, lowest price, currency, offer count, offers (shop, price, shipping, total, delivery, rating, link)
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method idealo.de/compare_prices with the inputs above.
Ask your agent
- Where can I buy the Apple AirPods Pro 2 cheapest in Germany right now? Show me the top 10 shops with shipping costs included.
- Compare prices for a Dyson V15 Detect across French online shops on idealo and list the 5 cheapest offers with delivery times.
- I'm in Austria and want a Nintendo Switch OLED. Which retailers have the lowest total price including shipping, and how are they rated?
- Check idealo UK for the cheapest offers on a Samsung Galaxy S24 Ultra 256GB, up to 30 shops please.
- Find the lowest price for a De'Longhi Magnifica S ECAM22.110 in Spain and give me links to the 15 cheapest sellers.
See more
Compares a product's prices across shops on PriceRunner in the United Kingdom, Sweden or Denmark: finds the best-matching product, lists its default new-condition national shop offers sorted by total price, and adds the three-month low when available.
pricerunner.com/compare_pricesSearches IKEA products in a chosen country and returns current prices, details, photos and reviews in IKEA's result order.
ikea.com/search_productsCompares the Apple Store price of one product configuration across up to 15 countries, converted with the latest European Central Bank reference rates.
apple.com/compare_country_pricesSearches clothes and shoes in one Zalando country shop, with optional gender, brand, deal and sort filters. Prices and discounts are those shown on the product cards; size-dependent prices may be starting prices.
zalando.com/search_productsGet one AliExpress product’s prices, variants, reviews, shipping to a chosen country, seller and specifications from its link or the best-selling name match. Sold counts may be rounded, and shipping options are those shown for the displayed variant.
aliexpress.com/get_productGets an Amazon product's current listed price and lifetime price statistics from CamelCamelCamel (Amazon and third-party new), with dated Amazon low/high points and a comparison to the average. Takes a product name, an Amazon or CamelCamelCamel link, or an ASIN, for eight Amazon stores.
camelcamelcamel.com/get_price_historyFinds current official-store prices, the all-time low and live bundles for a PC game in the selected country.
isthereanydeal.com/get_best_priceSearches AliExpress listings by product words, shipping destination, price range and sort order. Unpriced promotional cards are omitted; free shipping is marked only when the listing explicitly says so.
aliexpress.com/search_products