Anexe até 4 fotos a uma pergunta ao ChatGPT pela API ou pelo Playground e receba a resposta que o ChatGPT escreve sobre elas, com fontes e buscas.
O que você recebe
payload.images: até 4 fotos enviadas com a primeira pergunta de uma tarefa do ChatGPT, como URLs públicas de imagem ou data URLs.
A resposta chega com os mesmos campos de qualquer resposta do ChatGPT: text, markdown, sources, searchQueries e os produtos e lugares que o ChatGPT mostrou.
No Playground, o botão de foto da caixa de mensagem anexa fotos a uma pergunta ao ChatGPT, e uma foto colada ou solta na caixa também entra. As fotos aparecem acima da sua mensagem na conversa.
Os followUps da mesma requisição continuam perguntando sobre as fotos na mesma conversa.
Como funciona
As fotos vão com a primeira pergunta de uma nova conversa do ChatGPT, do mesmo jeito que um usuário as adiciona com o botão de foto do chatgpt.com. O ChatGPT olha as fotos, busca na web quando a pergunta pede e responde com as fontes. No exemplo abaixo, o ChatGPT reconheceu na foto um kit de café coado, buscou “where to buy ceramic pour over coffee dripper white Hario V60” e recomendou o HARIO V60 Ceramic Coffee Dripper da HARIO USA ($30.50), o Kalita Style 102 Ceramic Coffee Dripper da Kalita USA ($20.00) e o HARIO V60 Coffee Pour Over Kit da Williams Sonoma ($56.95).
Cada foto é lida uma vez antes de perguntar ao ChatGPT: uma data URL é decodificada e uma URL é baixada do seu servidor público, até 10 MB por foto, em JPEG, PNG, WebP ou GIF. Se uma foto falhar ao baixar ou abrir, a tarefa termina com BAD_PAYLOAD, e uma tarefa que falhou é gratuita.
Uma data URL vai dentro da requisição, que aceita até 1 MiB, então fotos grandes vão como URL. O Playground envia as fotos como data URLs e reduz as grandes, de modo que 4 fotos cabem numa mensagem.
Uma pergunta com fotos é feita a partir do país de payload.country e continua com followUps. Com payload.location, um countryHK ou CN, ou continueFrom, a requisição devolve 400 VALIDATION_ERROR, e com include.html ativado devolve 422 EVIDENCE_UNSUPPORTED.
Onde ajuda
Mostre ao ChatGPT uma foto do seu produto, pergunte onde comprar e veja quais lojas e preços ele recomenda e se a sua loja está entre elas.
Pergunte sobre uma foto da sua embalagem ou da de um concorrente e leia qual marca o ChatGPT cita e quais páginas ele usa como fonte.
Pergunte sobre um cardápio, um rótulo ou uma captura da sua página e compare o que o ChatGPT lê nela com o que você publicou.
Como começar
Abra o Playground, fique em Mecanismos de resposta e mantenha o ChatGPT como mecanismo na caixa de mensagem.
Selecione o botão de foto (Anexar fotos) e escolha até 4 fotos, ou cole ou solte as fotos na caixa de mensagem.
Digite a pergunta e selecione Enviar. As fotos aparecem acima da sua mensagem, e a resposta chega com as fontes.
Mude a resposta para cURL e selecione Copiar cURL para rodar a mesma requisição, com as fotos, no seu terminal.
Envie a requisição
Envie a requisição com a sua chave de API no cabeçalho Authorization.
curl -X POST https://api.querying.ai/v1/async/task \
-H "Authorization: Bearer $QUERYING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taskType": "CHATGPT",
"payload": {
"prompt": "What is this, and where can I buy one?",
"country": "US",
"images": ["https://querying.ai/changelog/chatgpt-photos-example.jpg"]
}
}'
Campos da requisição
taskTypestringObrigatório
O motor que executa a tarefa, como CHATGPT ou GOOGLE.
payload.promptstringObrigatório
A pergunta, escrita como o usuário digita no chat. Até 100.000 caracteres.
payload.imagesarray
De 1 a 4 fotos enviadas com a primeira pergunta, como URLs http(s) públicas ou data URLs data:image/…;base64,. JPEG, PNG, WebP ou GIF, até 10 MB cada. Os followUps continuam perguntando sobre elas. Para CHATGPT.
payload.countrystring
Código de país de duas letras do mercado de onde a pergunta parte, como US, KR ou JP. Padrão US.
payload.followUpsarray
Até 4 turnos a mais na mesma conversa do ChatGPT depois da primeira resposta. Cada item é {"prompt": "…"} para fazer uma pergunta ou {"select": {…}} para apertar um botão do formulário da resposta anterior. Para CHATGPT.
webhook.urlstring
Um endereço HTTPS do seu servidor. A tarefa concluída é enviada para lá assim que termina.
Resposta
Uma tarefa concluída chega assim, resumida para facilitar a leitura.
JSON
{
"success": true,
"task": {
"id": "d4f322bc-4d27-4800-a6b4-f0cb9f66f4b0",
"taskType": "CHATGPT",
"status": "COMPLETED",
"createdAt": "2026-10-28T04:56:48.117Z"
},
"credits": { "creditsToCharge": 1, "creditsCharged": 1 },
"response": {
"text": "This is a **pour-over coffee brewing setup**. The white ceramic cone is a coffee dripper, and the glass pot underneath is a carafe. …\n\n## Where to buy a similar setup\n\n…\n\n**1. HARIO V60 Ceramic Coffee Dripper**\n\n## $30.50\n\nHARIO USA\n\nA classic white ceramic cone with spiral ridges, very similar to the one pictured. …",
"sources": [
{
"position": 1,
"url": "https://www.hario-usa.com/products/v60-coffee-pour-over-02-ceramic-kit",
"label": "V60 Ceramic Pour Over Coffee Set – Hario USA",
"attribution": "hario-usa.com"
}
],
"searchQueries": [
"where to buy ceramic pour over coffee dripper white Hario V60"
],
"model": "gpt-6"
}
}
task.statusstring
QUEUED, PROCESSING e, no fim, COMPLETED com a resposta ou FAILED com error.
credits.creditsChargedinteger
Créditos cobrados pela tarefa concluída. Uma tarefa que falhou cobra 0.
response.textstring
A resposta em texto puro.
response.sourcesarray
As páginas que a resposta cita, na ordem do motor, com position, url e label.
response.searchQueriesarray
As buscas na web que o motor fez para escrever a resposta.
Receba o resultado
A requisição devolve a tarefa na hora, com statusQUEUED. Consulte GET /v1/async/task/{id} até status virar COMPLETED ou FAILED, ou adicione webhook.url e a tarefa concluída chega ao seu servidor com os mesmos task, credits e response. Os resultados ficam disponíveis por 24 horas após o fim da tarefa.
payload.images foi enviado a um mecanismo diferente de CHATGPT, está vazio, traz mais de 4 fotos ou um valor que não é uma URL http(s) nem uma data URL de imagem, ou vem com payload.location, um countryHK ou CN, ou continueFrom. details indica o campo.
EVIDENCE_UNSUPPORTEDHTTP 422
include.html está ativado numa pergunta com payload.images.
PAYLOAD_TOO_LARGEHTTP 413
O corpo passa de 1 MiB, ou de 8 MiB num lote.
MISSING_API_KEYHTTP 401
Falta o cabeçalho Authorization, ou a chave é desconhecida, expirou ou foi revogada.
INSUFFICIENT_CREDITSHTTP 402
O saldo é menor que o preço da tarefa. Adicione créditos ou mude de plano e envie de novo.
Preço
Cada resposta custa 1 crédito, o preço de uma tarefa do ChatGPT, com ou sem fotos. Cada resposta de acompanhamento soma 1 crédito. Uma tarefa que termina com BAD_PAYLOAD é gratuita.
Pesquise a aba Shopping do Google nos EUA com o Commerce Search e leia qualquer produto com o Commerce Product para receber cada loja que o Google lista, com preço, estoque e página do produto.
Envie a URL de uma página ao GEO Score e receba quanto da página o ChatGPT search guarda, o que o ChatGPT recebe quando abre a página e a causa e a correção de cada parte que falta.