
Conheça o Commerce Product
Envie a URL de uma página de produto da Amazon, Walmart, Sephora, Olive Young, Rakuten, Zalando ou de outras 11 lojas e receba preço, estoque, imagens da galeria e da descrição, especificações e opções no mesmo formato.

Uma chamada pergunta ao ChatGPT, Gemini, Google, Copilot e, na Coreia, ao Naver sobre sua loja, e devolve o registro de cada mecanismo, a base de mapas de onde ele vem e cada dado que difere do seu.
POST /v1/place-lookup recebe uma loja, com nome e endereço ou ponto no mapa, além de telefone, site e IDs de lugar se você os tiver, e pergunta por ela a CHATGPT, GEMINI, GOOGLE, BING_COPILOT e, para lojas em KR, NAVER_AI_TAB.GET /v1/place-lookup/{id} devolve o record da loja em cada mecanismo: sua source, como google_maps, naver_place ou yelp, seu placeId e página, e o nome, endereço, telefone, site e nota que o mecanismo mostra.issues aponta o que está errado num registro: phone_mismatch, website_mismatch, location_mismatch, other_business_record ou um registro marcado como fechado.summary lista os mecanismos que mostraram a loja e as differences entre seus registros, e credits mostra quanto a consulta já cobrou.Cada mecanismo recebe duas perguntas, como Show Canlis on a map e a mesma com o endereço, e cada uma roda como uma tarefa comum desse mecanismo. Para lojas em KR, as perguntas são em coreano e a segunda pergunta ao ChatGPT em inglês. Entre os lugares das respostas, o que coincide com a loja por ID de lugar, telefone, site, ponto, endereço e nome é o registro da loja, e match lista os dados que coincidem. A consulta é avaliada de novo com as respostas salvas a cada leitura, e a maioria termina em até dois minutos.
Envie a requisição com a sua chave de API no cabeçalho Authorization.
curl -X POST https://api.querying.ai/v1/place-lookup \
-H "Authorization: Bearer $QUERYING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"place": {
"name": "Canlis",
"address": "2576 Aurora Ave N, Seattle, WA 98109",
"location": { "latitude": 47.6430534, "longitude": -122.3467361 },
"phone": "(206) 283-3313",
"website": "https://canlis.com/"
},
"country": "US",
"idempotencyKey": "canlis-2026-10"
}'place.namestringObrigatórioplace.addressstringplace.location ou dos dois.place.locationobjectlatitude e longitude. Com ele, cada registro traz a distância até a loja, e um pino a mais de 300 m é apontado.place.phonestringplace.websitestringhttp ou https. O site de cada registro é comparado com ele por site.place.googlePlaceIdstringplace.naverPlaceIdstringmap.naver.com ou place.naver.com. Um registro com esse ID é a loja.place.yelpUrlstringyelp.com/biz/… da loja. Um registro dessa página do Yelp é a loja.countrystringObrigatórioUS ou KR.enginesarrayCHATGPT, GEMINI, GOOGLE, BING_COPILOT e, para KR, NAVER_AI_TAB. Padrão: os cinco para KR e os quatro primeiros nos demais países.idempotencyKeystringA resposta, resumida para facilitar a leitura.
{
"success": true,
"lookup": { "id": "canlis-2026-10" },
"tasks": [
{
"engine": "CHATGPT",
"ask": 1,
"success": true,
"task": {
"id": "…",
"taskType": "CHATGPT",
"status": "QUEUED",
"priority": 1,
"createdAt": "…",
"idempotencyKey": "canlis-2026-10:CHATGPT:1"
}
},
{ "engine": "CHATGPT", "ask": 2, "…": "…" },
{ "engine": "GEMINI", "ask": 1, "…": "…" }
]
}lookup.idstringGET /v1/place-lookup/{id}.tasksarrayengine, ask, success e a task na fila, status: "PENDING" enquanto espera espaço, ou error com o código. O idempotencyKey da tarefa junta o id da consulta, o mecanismo e o número da pergunta, como em canlis-2026-10:CHATGPT:1.Leia a consulta pelo ID a cada 5 a 10 segundos até lookup.status ser COMPLETED. Ela fica disponível por 24 horas depois que as perguntas terminam.
curl "https://api.querying.ai/v1/place-lookup/$LOOKUP_ID" \
-H "Authorization: Bearer $QUERYING_API_KEY"A consulta do Canlis fica assim, resumida. O ChatGPT mostrou o registro do Yelp do restaurante, o Gemini e o Copilot o mesmo registro do Google Maps, e a página de resultados do Google respondeu sem lugares, por isso found é false.
{
"success": true,
"lookup": {
"id": "canlis-2026-10",
"status": "COMPLETED",
"country": "US",
"engines": [
{
"engine": "CHATGPT",
"status": "COMPLETED",
"found": true,
"via": [{ "…": "…" }],
"record": {
"name": "Canlis",
"source": "yelp",
"provider": "yelp-feed",
"phone": "+1 206-283-3313",
"website": "https://canlis.com/",
"rating": 4,
"reviewCount": 1935,
"match": {
"same": true,
"by": ["phone", "website", "location", "address", "name"],
"nameScore": 1,
"distanceMeters": 5
},
"…": "…"
}
},
{
"engine": "GEMINI",
"status": "COMPLETED",
"found": true,
"via": [{ "…": "…" }],
"record": {
"name": "Canlis",
"source": "google_maps",
"placeId": "ChIJRXCfNwUVkFQRxraD8U-dANE",
"phone": "+1 206-283-3313",
"rating": 4.6,
"reviewCount": 2892,
"…": "…"
}
},
{
"engine": "GOOGLE",
"status": "COMPLETED",
"found": false,
"…": "…"
},
{
"engine": "BING_COPILOT",
"status": "COMPLETED",
"found": true,
"…": "…"
}
],
"summary": {
"foundIn": ["CHATGPT", "GEMINI", "BING_COPILOT"],
"notFoundIn": ["GOOGLE"],
"failed": [],
"pending": [],
"differences": []
},
"credits": 10
}
}lookup.statusstringPROCESSING até todos os mecanismos terminarem, depois COMPLETED.lookup.engines[].foundbooleantrue assim que uma resposta mostra a loja, false quando as duas perguntas terminaram sem ela e null enquanto uma pergunta roda ou se as duas falharam.lookup.engines[].recordobjectlookup.engines[].record.sourcestringgoogle_maps, naver_place, yelp, tripadvisor ou unknown. placeId e url são o ID e a página dele nessa base.lookup.engines[].record.matchobjectby lista os dados que coincidem, nameScore é a semelhança do nome de 0 a 1 e distanceMeters, a distância desde place.location.lookup.engines[].issuesarrayphone_mismatch, website_mismatch, location_mismatch, other_business_record, closed_permanently ou closed_temporarily.lookup.summaryobjectfoundIn, notFoundIn, failed e pending, e differences: cada nome, telefone, site ou pino que difere entre mecanismos, com os mecanismos de cada valor.lookup.creditsnumberSe todas as perguntas forem recusadas, a resposta é a primeira recusa, como 402 ou 403. Se algumas forem aceitas, a chamada responde 200 e cada pergunta recusada traz seu error. Enquanto as tarefas simultâneas do seu plano estão ocupadas, as perguntas restantes ficam em PENDING e começam sozinhas à medida que as tarefas em andamento terminam, então no plano gratuito, que roda 2 tarefas por vez, uma única requisição executa a consulta inteira.
VALIDATION_ERRORHTTP 400details indica o campo.INSUFFICIENT_CREDITSHTTP 402KEY_SCOPE_DENIEDHTTP 403RESOURCE_ALREADY_EXISTSHTTP 409idempotencyKey já identifica uma consulta de outra loja, outro país ou outra lista de mecanismos. Um idempotencyKey novo inicia uma nova consulta.Uma consulta aos mecanismos padrão do país custa 10 créditos: 1 por pergunta nas 10 perguntas de KR e 1,25 em cada uma das 8 de outros países. Uma consulta com menos mecanismos paga as perguntas que envia, e uma pergunta com falha custa 0. Os preços dos planos estão em https://querying.ai/pricing .

Envie a URL de uma página de produto da Amazon, Walmart, Sephora, Olive Young, Rakuten, Zalando ou de outras 11 lojas e receba preço, estoque, imagens da galeria e da descrição, especificações e opções no mesmo formato.

Pesquise na Amazon, Walmart, Coupang, Olive Young, Rakuten, Flipkart, Zalando e em mais 13 lojas de cinco países, e receba o ranking de produtos de cada uma com preços, avaliações e número de resenhas no mesmo formato.
Receba atualizações do produto por e-mail.