按关键词搜索商品条目
查看 Idealo 商品搜索与商家报价 API 的全部接口 →每次提交一个关键词短语。在 body 字段填写序列化 JSON 文本,例如 {"country":"de","values":["iphone 16"]}。country 只能为 de 或 at,values 必须是仅含一个字符串的数组。直接调用网关时,应把这段 JSON 文本作为公开参数 body 的字符串值发送,不要将 country 和 values 拆成外层参数。德国查询已经实际验证;奥地利仅由请求结构声明支持,尚未测试。 观测到的创建响应含 error:false 和 job_id,只说明查询已受理,既没有商品数据,也不代表已找到商品。请用返回的 job_id 调用 get-job,等任务进入终态后再处理结果。已完成的德国 iphone 16 查询返回了 36 条 found 商品记录,每条包含 query、status 和 result。商品字段包括 id、name、url、image_urls、description、review_rating、review_count、category_ids、price_min、offers_count、country 和 fetched_at;部分元数据及 price_avg、price_max 为 null。数量与价格只描述该次观测,不是固定返回规模。 第一条商品 204736899 的 offers_count 为 512,但 offers=[]。关键词搜索不返回各商家的报价明细。核对候选商品规格后,再将选定的国家与商品 ID 交给 search-by-id。另行验证过报价明细的是 128GB 黑色款 204771161,并非第一条商品。一个无意义关键词同样被受理为任务,最终完成时返回一条 not_found、result:null,且 summary.found=0。不要把未找到商品当成价格为零。
API 功能
在线 API 演示
未找到可用的 API Key,请前往控制台创建后刷新本页。 控制台 →
/api/project/idealo/search-by-term API 响应 (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>"}' 查询结果
使用场景
- 购物发现页:先展示候选商品名称、最低价与图片,再由用户选定具体规格。
- 按需报价补全队列:只为少量相关商品 ID 请求商家详情,不必补全每条关键词结果。
- 商品布局调研:保存带日期的关键词查询记录,将条目数视为该次观测值,而非独立 SKU 总量。
- 目录审核工作台:将候选 ID 与描述和内部商品档案比对,审核通过后再加入监控清单。
常见问题
为什么 offers_count 大于零,offers 却是空数组?
关键词搜索返回商品摘要,而非逐店报价。实际验证的第一条商品显示 offers_count=512、offers=[]。请选定商品,将其 id 与相同的 country 提交给 search-by-id,再取回新任务的终态结果,读取商家报价明细。
values 可以同时放多个关键词吗?
不可以。values 数组必须恰好包含一个字符串。一个短语可以匹配多个商品,但这不代表支持多关键词批量请求。不同短语需要分别创建任务。
搜索结果中的哪个商品已通过 ID 查询验证?
搜索结果包含 204771161,即 Apple iPhone 16 128GB 黑色款;对同一 ID 的查询返回了 20 条详细报价。第一条搜索商品则是另一个 ID:204736899。请保留选定的国家与准确 ID,不要仅凭相似商品名关联结果。
创建任务时 error=false,就表示搜到商品了吗?
不是。故意使用不存在的短语时,也返回了 error=false 和 job_id,但终态结果是 not_found、result:null。需要检查已完成任务中每条记录的状态与 summary,不能只看创建响应。
先搜索商品,再补全报价,至少需要几次调用?
商品发现至少需要两次网络调用:创建一次任务、取回一次结果。每个选定商品 ID 至少再增加一组创建和取回调用。例如一次搜索后补全三个 ID,至少需要八次调用;任务仍在等待时还需额外轮询。这只是请求次数计算,不是费用报价或完成时长承诺。