Idealo scraper API: search results and product pages as JSON
Send any Idealo page URL with recipe=idealo and get rating, review_count, url and 8 more fields as JSON. No selectors to write, no proxies to pick.
- 2 page types
- 11 fields
- 25 credits a page · $2.49 per 1,000
- Working · 100% in 7 days
5,000 free credits for 7 days, no card.
curl -G 'https://api.ujeebu.com/scrape' \
-H "ApiKey: $UJEEBU_API_KEY" \
--data-urlencode 'url=https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=staubsauger' \
--data-urlencode 'recipe=idealo/listing'
{
"result": {
"products": [
{
"rating": "4.5 von 5",
"review_count": "24"
}
]
},
"success": true
}
What you get from Idealo
The fields of each page type and a real sample from our last validation, shortened.
Search and listing pages recipe=idealo/listing 25 credits a page
| Field | Type | Example |
|---|---|---|
products | list of 3+ items | |
products[].url | URL | https://www.idealo.de/preisvergleich/OffersOfProduct/211849574_-v12... |
products[].image | image URL | https://cdn.idealo.com/folder/Product/211849/5/211849574/s1_produkt... |
products[].rating | text | 4.5 von 5 |
products[].review_count | number (as text) | 24 |
Sample answer, validated 2026-11-14
{
"products": [
{
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/211849574_-v12-detect-slim-absolute-2026-dyson.html",
"image": "https://cdn.idealo.com/folder/Product/211849/5/211849574/s1_produktbild_mittelgross/dyson-v12-detect-slim-absolute-2026.jpg",
"rating": "4.5 von 5",
"review_count": "24"
},
{
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/205576294_-guard-s1-sunsetgelb-12558440-miele.html",
"image": "https://cdn.idealo.com/folder/Product/205576/2/205576294/s1_produktbild_mittelgross/miele-guard-s1-sunsetgelb-12558440.jpg",
"rating": "4.5 von 5",
"review_count": "33"
}
]
}
Product pages recipe=idealo/detail 25 credits a page
| Field | Type | Example |
|---|---|---|
product.availability | text | InStock |
product.brand | text | Samsung |
product.condition | text | NewCondition |
product.currency | text | EUR |
product.image | image URL | https://cdn.idealo.com/folder/Product/210696/2/210696210/s1_produkt... |
product.name | text | Samsung Galaxy Book Edge 15 |
product.price | number | 739 |
product.sku | number (as text) | 8806099213657 |
product.url | URL | https://www.idealo.de/preisvergleich/OffersOfProduct/210696210_-gal... |
Sample answer, validated 2026-11-14
{
"product": {
"availability": "InStock",
"brand": "Samsung",
"condition": "NewCondition",
"currency": "EUR",
"image": "https://cdn.idealo.com/folder/Product/210696/2/210696210/s1_produktbild_gross/samsung-galaxy-book-edge-15-np750xqb-ka4de.jpg",
"name": "Samsung Galaxy Book Edge 15",
"price": 739,
"sku": "8806099213657",
"url": "https://www.idealo.de/preisvergleich/OffersOfProduct/210696210_-galaxy-book-edge-15-np750xqb-ka4de-samsung.html"
}
}
One call
Send the page URL and the recipe name to the Scrape API. The recipe brings the extract rules and the settings that work on Idealo (JavaScript rendering and the premium proxy (DE)).
curl -G 'https://api.ujeebu.com/scrape' \
-H "ApiKey: $UJEEBU_API_KEY" \
--data-urlencode 'url=https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=staubsauger' \
--data-urlencode 'recipe=idealo/listing'
import os, requests
r = requests.get(
"https://api.ujeebu.com/scrape",
params={"url": "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=staubsauger", "recipe": "idealo/listing"},
headers={"ApiKey": os.environ["UJEEBU_API_KEY"]},
timeout=120,
)
for item in r.json()["result"]["products"][:3]:
print(item["rating"], item["review_count"])
# Example output:
# 4.5 von 5 24
# 4.5 von 5 33
const params = new URLSearchParams({
url: "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=staubsauger",
recipe: "idealo/listing",
});
const res = await fetch(`https://api.ujeebu.com/scrape?${params}`, {
headers: { ApiKey: process.env.UJEEBU_API_KEY },
});
const { result } = await res.json();
for (const item of result.products.slice(0, 3)) {
console.log(item.rating, item.review_count);
}
// Example output:
// 4.5 von 5 24
// 4.5 von 5 33
The answer is {"result": {...}} with the headers Ujb-Recipe and Ujb-Credits. Other page types: recipe=idealo/detail, or recipe=idealo and the API picks the page type from the URL. Your own parameters always win over the recipe.
Search Idealo with parameters
One call, no URL: send recipe=idealo/search with the parameters below. We build the Idealo search URL and answer the listing JSON, at the same credits as the page call.
| Parameter | Type | Values |
|---|---|---|
query required | string | Search words, as typed in the Idealo search box. |
One call (query=kopfhoerer)
curl -G 'https://api.ujeebu.com/scrape' \
-H 'ApiKey: YOUR_API_KEY' \
-d 'recipe=idealo/search' \
-d 'query=kopfhoerer'
import os, requests
r = requests.get(
"https://api.ujeebu.com/scrape",
params={"recipe": "idealo/search", "query": "kopfhoerer"},
headers={"ApiKey": os.environ["UJEEBU_API_KEY"]},
timeout=120,
)
for item in r.json()["result"]["products"][:3]:
print(item["rating"], item["review_count"])
# Example output:
# 4.5 von 5 24
# 4.5 von 5 33
const params = new URLSearchParams({
recipe: "idealo/search",
query: "kopfhoerer",
});
const res = await fetch(`https://api.ujeebu.com/scrape?${params}`, {
headers: { ApiKey: process.env.UJEEBU_API_KEY },
});
const { result } = await res.json();
for (const item of result.products.slice(0, 3)) {
console.log(item.rating, item.review_count);
}
// Example output:
// 4.5 von 5 24
// 4.5 von 5 33
The answer carries the built URL in the Ujb-Url header; a missing or invalid parameter answers 400 naming it (free). Have the URL already? Send it with recipe=idealo/listing. Search with parameters in the docs
What people build with Idealo data
Price monitoring
Track the price and availability of the products you follow, and alert on changes.
Learn moreCatalog and assortment tracking
Follow which products appear for a search or a category, and in which position.
Learn moreRatings and reviews tracking
Watch how ratings and review counts move over time for your products and competitors.
Learn more
Price
Same price as the page call, no fee for the recipe. Only successful responses are billed; blocked, timed-out and failed requests are free.
| Page type | Credits a page | Per 1,000, Starter | Per 1,000, Pro |
|---|---|---|---|
| Search results, Product page | 25 | $4.08 | $2.49 |
FAQ
What does the Idealo recipe return?
JSON with 11 fields from search results (recipe=idealo/listing) and product page (recipe=idealo/detail), for example rating, review_count, url, image. The answer is {"result": {...}} with the fields shown on this page.
How much does it cost to scrape Idealo?
25 credits a page ($2.49 per 1,000 on Pro, $4.08 on Starter). Same price as the page call, no fee for the recipe. Only successful responses are billed; blocked, timed-out and failed requests are free.
Do I need proxies or a headless browser?
No. The recipe brings the settings that work on Idealo: JavaScript rendering and the premium proxy (DE). Send only the URL and recipe=idealo/listing.
What happens when Idealo changes its pages?
We check Idealo every day and re-validate the recipe on real pages every week, then fix it when the site changes. Until a fix is live, the API answers 404 "the recipe has no working version" instead of empty data, and that call is free.
Can I search Idealo with parameters?
Yes, in one call: send recipe=idealo/search with query and no URL. We build the Idealo search URL (returned in the Ujb-Url header), apply recipe=idealo/listing and answer its JSON, at the same credits as the page call. A missing or invalid parameter answers 400 naming it, and that call is free.
Related recipes
AmazonSearch results · 5 credits
EtsySearch results · 30 credits
AliExpressSearch results · 5 credits
TargetProduct page · 5 credits- AlibabaSearch results · 15 credits
FlipkartSearch results, Product page · 25 credits
Logos and names belong to their owners. Ujeebu is not affiliated with Idealo.
Get Idealo data as JSON today.
5,000 free credits for 7 days. No card.