提交查询
GET /v1/place-lookup/{id} 读取查询,直到 lookup.status 为 COMPLETED。大多数查询在两分钟内完成,因此每 5 到 10 秒轮询一次。查询不发送 webhook。请求 schema 见 API 参考。
请求字段
其他字段(包括
webhook)返回 400 VALIDATION_ERROR。
查询如何提问
每个引擎收到两个问题。ChatGPT、Gemini 和 Copilot 被要求在地图上显示门店,第二次附上地址。Google 搜索结果页先搜索门店位置,再从门店的图钉位置搜索门店名称。Naver AI Tab 先被问门店位置,再被问门店名称。KR 门店用韩语提问,但 ChatGPT 的第二个问题是英语的 Show {name} on a map,因为用英语提问时 ChatGPT 更常展示韩国门店的地点卡片。没有 place.address 时,第二个问题附加地址的引擎会把第一个问题再问一次。没有 place.location 时,在 KR 以外,Google 的第二次搜索会附上地址。结果中的 via[] 原样显示实际发送的每个问题。
读取结果
只保留主要字段时,Canlis 的查询结果如下:found 为 false。
engines[]
record
issues
连锁店所有分店共用的号码(例如免费热线)不参与比较。
summary 与 credits
所有引擎结束前
lookup.status 为 PROCESSING,之后为 COMPLETED。每次读取都会根据保存的回答重新判定结果,任务完成后 24 小时内可以读取查询。
重新发送查询
每个问题都是键为{lookup id}:{engine}:{ask} 的任务,例如 canlis-2026-10:GEMINI:2。用同一 idempotencyKey 重新发送同一请求时,查询返回已有的任务,并发送尚无任务的问题,例如因积分不足被拒绝的问题。以同一 id 发送不同的门店、国家或引擎列表会返回 409 RESOURCE_ALREADY_EXISTS,不会创建任何任务。以后要再次查询同一门店,请使用新的 idempotencyKey。
套餐并发
每个问题在套餐并发上限中计为一个任务。查询按套餐剩余的空位开始问题,其余问题在tasks[] 中以 status: "PENDING" 等待:
API_KEY_INACTIVE 变为 FAILED,花费 0 积分。参见积分与限制。
错误与计费
询问该国全部默认引擎的一次查询为 10 积分。每个问题按其份额计价:KR 的 10 个问题每个 1 积分,其他国家的 8 个问题每个 1.25 积分。只问部分引擎的查询按发送的问题计费。每个问题的价格在提交时冻结,完成时扣除;失败的问题为 0。参见积分与限制。
提交时被拒绝
所有问题都被拒绝时,第一个拒绝以其自身状态作为响应,例如
402 INSUFFICIENT_CREDITS 或 403 KEY_SCOPE_DENIED,且不会创建任何任务。部分问题被接收时,响应为 200,每个被拒绝的问题在 tasks[] 中带有 error:
读取查询
对于账户从未使用过的 id,以及任务已超过 24 小时窗口的查询,GET /v1/place-lookup/{id} 返回 404 RESOURCE_NOT_FOUND。失败的问题在 via[] 中显示 status: "FAILED" 和以代码开头的 error,例如 ENGINE_NO_RESULT。这些代码与该引擎任务的代码相同;在开始前就结束的等待问题带有 API_KEY_INACTIVE 或 INSUFFICIENT_CREDITS。参见错误。
后续步骤
ChatGPT
ChatGPT 展示的地点卡片,即
map。批次与网格
从门店周围网格的每个点提出同一条提示词。