Search Product Listings by Keyword
View all Idealo Product Search & Merchant Offers API endpoints →Submit exactly one free-text search phrase. In the body field, enter JSON text such as {"country":"de","values":["iphone 16"]}. country must be de or at, and values must be an array containing one string. Direct gateway clients send this JSON text as the string value of the public body parameter, not as separate country and values parameters. Germany was live-verified; Austria is declared by the request schema but was not tested. The observed creation response was {"error":false,"job_id":"..."}. It accepted the lookup; it did not contain product data or establish that a match exists. Use get-job with the returned job_id and wait for a terminal status. The completed German iphone 16 search returned 36 found listing rows. Each results row carried query, status and result; listing fields included id, name, url, image_urls, description, review_rating, review_count, category_ids, price_min, offers_count, country and fetched_at. Several metadata fields and price_avg/price_max were null. Counts and prices describe that observation, not a fixed result size. The first listing, 204736899, had offers_count=512 but offers=[]. Keyword discovery does not supply individual merchant offers. Review candidate variants, then submit selected country-and-ID pairs to search-by-id. The separately enriched listing 204771161 was the 128GB black variant, not the first listing. A nonsense phrase was also accepted as a job and later completed with one not_found row, result:null and summary.found=0. Do not turn a missing product into a zero price.
API Features
Live API Demo
🔒 Sign in to try it live
Log in to call this API with your own API key. New accounts get 100 free credits — no card required.
Log in / Sign upNo active API key found. Create one in your Dashboard, then reload this page. Dashboard →
/api/project/idealo/search-by-term API Response (JSON)
{} curl -X POST 'https://api.opendata-api.com/api/project/idealo/search-by-term?key=<API_KEY>' \
-H 'Content-Type: application/json' \
-d '{"body":"<body>"}' Query Result
Use Cases
- Shopping discovery screen: present candidate listing names, minimum prices and images before a user chooses a specific product variant.
- Selective enrichment queue: shortlist a few relevant IDs instead of requesting merchant details for every keyword match.
- Assortment research: save dated keyword-result observations while treating listing counts as source measurements, not a distinct-SKU census.
- Catalog review workspace: compare candidate IDs and descriptions against an internal product record before approving a watchlist mapping.
Frequently asked questions
Why is offers empty when offers_count is greater than zero?
Keyword search returns listing summaries, not merchant rows. The verified first listing reported offers_count=512 with offers=[]. Submit a selected listing's id and the same country to search-by-id, then retrieve that new job's terminal result for offer details.
Can values contain several keywords?
No. Send exactly one string in the values array. That one phrase can match multiple listings, but the request is not a multi-term batch. Use separate jobs for separate phrases.
Which search listing was verified through an ID lookup?
The search included 204771161, Apple iPhone 16 128GB black, and an ID lookup for that same listing returned 20 detailed offers. The first search listing was a different ID, 204736899. Preserve the selected country and exact ID rather than joining by a similar product name.
Does error=false at job creation mean the search found a product?
No. A deliberately nonexistent phrase also returned error=false and a job_id. Its terminal result was not_found with result:null. Inspect the completed job's item statuses and summary, not only the creation response.
How many calls does keyword discovery followed by offer enrichment need?
At least two network calls for discovery: one job creation and one result retrieval. Each selected ID adds at least another creation and retrieval pair. For example, one search followed by three selected IDs needs at least eight calls; pending jobs require additional polls. This is request-count arithmetic, not a price or completion-time guarantee.