读取任务状态与商品结果
查看 Idealo 商品搜索与商家报价 API 的全部接口 →传入关键词、商品 ID、条码或链接查询刚返回的 job_id。这里不提供可长期复用的示例任务 ID:结果在完成后一小时保留期结束后过期。文档中的生命周期为 pending,随后进入 completed 或 failed;等待期间 results 为空。请间隔轮询,例如从约五秒开始,并配合退避、截止时间和总调用次数预算。一次查询至少需要创建与取回各一次调用;增加轮询只会增加网络请求,并不保证任务更早完成。 实际已完成响应包含 error、job_id、status、source、operation、country、created_at、done、total、summary 和 results。summary 含 found、not_found、error 与 classifications;每条结果含 query、status 和 result。ID、条码查询的 found 结果提供商品身份、价格摘要、offers 和 fetched_at;关键词查询则返回商品摘要,offers=[]。单关键词任务出现过 done=1、total=1,但有 36 条 found 商品记录,因此这两个计数不是不同商品条目的数量。 顶层 error:false 与 status:completed 不代表商品已找到。已验证的无意义关键词任务完成时,done=1、total=1、summary.found=0、summary.not_found=1、summary.error=0,并返回一条 status:not_found、result:null。条目 error 与整个任务 failed 是不同的文档结果,必须同时检查任务状态和每条结果状态。条目提供 errorCode 时,如遇 invalid_query,应修正输入而非盲目重试;其他错误也要限制重试次数。 请在过期前保存可用快照,连同请求国家、query、operation 及商品 fetched_at。created_at 是任务创建时间,不是商品观测时间。null 不能替换成零、false 或空字符串。这个接口读取的是临时任务输出,不提供历史价格档案。文档声明未知或过期 ID 会返回 Job not found,但该错误分支尚未经实际调用验证。
API 功能
在线 API 演示
未找到可用的 API Key,请前往控制台创建后刷新本页。 控制台 →
/api/project/idealo/get-job API 响应 (JSON)
{} curl -X GET 'https://api.opendata-api.com/api/project/idealo/get-job?key=<API_KEY>&job_id=<job_id>'
查询结果
使用场景
- 有界轮询工作器:持久化活动任务 ID,安排间隔取回,在终态或应用截止时间到达后停止。
- 采集流程阶段协调:仅在商品发现获得经过审核的 found 结果后,启动选定 ID 的报价补全。
- 未命中观测台账:保留终态 not_found,不把缺失商品转换成零价库存。
- 带时间的价格存储:过期前收集可用商品观测,自行积累历史数据,不假设存在历史档案接口。
常见问题
任务 completed,商品仍可能是未找到吗?
可能。实际无意义关键词任务的 error=false、status=completed,但唯一条目是 not_found、result:null,且 summary.not_found=1。读取商品或价格前必须检查每条结果状态;任务完成不保证匹配到商品。
应该多久轮询一次,任务 ID 能保存多久?
可以从约五秒的间隔开始,配合退避、截止时间和总调用次数预算,不要紧密循环。文档规定结果在完成后一小时过期,须在该窗口内取回并保存终态输出。保存过的示例 ID 不能当作长期可复用的检测样本。
为什么 done 和 total 都是 1,却有很多条结果?
这两个计数描述单个提交值的处理进度。一个关键词可以命中多条商品:已验证的 iphone 16 任务中,done=1、total=1,但 summary.found=36。不要把 total 理解成商品数或商家数。
取回任务结果就能获得历史价格吗?
不能,它只提供该次查询的临时输出。需要反复采集、审核并保存国家、商品身份和商品 fetched_at,才能自行建立历史记录。created_at 应单独保留为任务创建时间;null 字段也应原样保留,不要填入臆造值。
怎样处理条目错误和找不到任务 ID?
文档说明,已完成任务内也可能有条目 error,而任务 failed 是另一种结果。条目报告 invalid_query 时应修正输入,不要反复原样提交;其他错误也需限制重试。未知或过期任务 ID 按文档返回 Job not found。该分支及 failed 任务的响应内容尚未实际验证。