Idealo APIidealo.de ↗
Access idealo.de product search, seller offers, price history in EUR, technical specs, user reviews, and expert test reports via a single REST API.
What is the Idealo API?
The idealo.de API covers 6 endpoints that expose product search, multi-seller offer listings, historical price data, technical specifications, user reviews, and expert test reports from Germany's largest price-comparison platform. Starting with search_products, you can retrieve product IDs and slugs required by every other endpoint, then pull structured data ranging from daily EUR price points to grouped specification tables.
curl -X GET 'https://api.parse.bot/scraper/208e18ac-1ca1-4d2c-8c68-7c8d51b70a69/search_products?query=iPhone+15' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace idealo-de-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.idealo_scraper_api import Idealo, Product, PriceHistoryPeriod, PriceHistory, Offer, Review, ExpertTest, ProductDetail
idealo = Idealo()
# Search for products
for product in idealo.products.search(query="Samsung Galaxy S24"):
print(product.title, product.product_id, product.slug)
# Get seller offers for the product
for offer in product.offers():
print(offer.title, offer.price, offer.shipping)
# Get price history over 6 months
history = product.price_history(period=PriceHistoryPeriod.SIX_MONTHS)
print(history.start_date, history.statistics.lowest_price, history.statistics.highest_price)
# Get detailed specifications
detail = product.details()
print(detail.product_id, detail.specifications)
# Get user reviews
for review in product.reviews():
print(review.author, review.date, review.text)
# Get expert test reports
for test in product.tests():
print(test.source, test.grade, test.summary)
break
Search for products by keyword using Idealo's suggest API. Returns up to 10 matching products with their IDs and URL slugs for use in other endpoints. Products without a product_id (e.g. search query suggestions) are included but cannot be used with detail endpoints.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g. 'iPhone 15', 'Samsung Galaxy S24'). |
{
"type": "object",
"fields": {
"products": "array of product objects with title, full_title, category, url, product_id, and slug"
},
"sample": {
"data": {
"products": [
{
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/203235721_-iphone-15-apple.html",
"slug": "iphone-15-apple",
"title": "Apple iPhone 15",
"category": "in Handys & Smartphones",
"full_title": "Apple iPhone 15 - in Handys & Smartphones",
"product_id": "203235721"
}
]
},
"status": "success"
}
}About the Idealo API
Product Search and Offer Data
The search_products endpoint accepts a keyword query and returns up to 10 matching products, each with a product_id, slug, title, full_title, category, and url. These two identifiers — product_id and slug — are required inputs for all five downstream endpoints. get_product_offers uses them to return every listed seller offer for that product, including price, shipping, shop_name, shop_id, and an offer_key, giving a complete snapshot of the current competitive landscape for any given item.
Price History and Statistics
get_product_price_history returns daily price points keyed by date (x) with the price stored as an integer in euro cents (y). Divide by 100 to convert to EUR. The optional period parameter accepts '3M', '6M', or '1Y'. Alongside the time series, the response includes a statistics object with avgPrice, lowestPrice, and highestPrice (all in cents), plus associated day counts. The startDate field marks the ISO date where the selected period begins.
Specifications, Reviews, and Expert Tests
get_product_details returns a specifications object whose keys are category names (e.g., Display, Hardware, Software) and whose values are flat key-value maps of spec attributes. get_product_reviews provides user-submitted reviews with author, date (DD.MM.YY format), and text. For editorial coverage, get_product_tests surfaces expert test reports from professional publications, each with a source, grade, and summary — useful for assessing third-party product evaluations alongside crowd-sourced user opinions.
The Idealo API is a managed, monitored endpoint for idealo.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when idealo.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official idealo.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track daily EUR price movements for electronics using
get_product_price_historyand alert when prices drop below thelowestPricestatistic. - Build a seller comparison table by pulling all
offersfromget_product_offers, including shipping costs and shop names. - Aggregate user sentiment by extracting review
textfields fromget_product_reviewsfor NLP analysis. - Populate a product comparison page with grouped technical specs from the
specificationsobject returned byget_product_details. - Surface professional verdicts alongside user ratings by combining
gradeandsummaryfields fromget_product_tests. - Resolve product IDs for a catalog by running batch keyword queries through
search_productsand storing returned slugs. - Monitor whether a specific shop consistently offers the lowest price by analyzing
shop_nameacross historical offer snapshots.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does idealo.de have an official developer API?+
What does `get_product_price_history` return, and how should I interpret the price values?+
x field (date string), a y field (price as an integer in euro cents), and a date array. Divide any price value by 100 to get the EUR equivalent. The statistics object in the same response contains avgPrice, lowestPrice, and highestPrice, also in cents.Does the API return product images or availability/stock status?+
Is search pagination supported in `search_products`?+
page or offset parameter to retrieve additional results beyond that set. You can fork this API on Parse and revise it to add pagination support if broader result coverage is needed.Does the API cover idealo sites for countries other than Germany?+
siteId field in price history responses reflects the German site identifier. Localized idealo sites for Austria, France, Italy, Spain, or the UK are not covered by the current endpoints. You can fork this API on Parse and revise it to target a different idealo country domain.