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

One phrase, multiple listing candidates A single submitted term can produce many found rows; the verified iphone 16 search returned 36 listings rather than one product per input.
Discovery-level price and review fields Use listing IDs, names, images, price_min, offers_count and available review fields for a candidate-selection screen without assuming every metadata field is populated.
Explicit listing-versus-offer boundary An empty offers array is expected for keyword results even when offers_count is positive; individual shop rows require a selected-ID lookup.
Verified asynchronous no-match outcome The observed nonexistent phrase produced a completed job with not_found and result:null, distinguishing an accepted search from a successful match.

Live API Demo

POST /api/project/idealo/search-by-term

Request cost is temporarily unavailable. No price is assumed.

View pricing

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>"}'
📢
Need Help?
If you encounter API issues or need other API requirements, please contact us.
Contact Us

Use Cases

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.

Related operations

Guides

View Subscription Plans →