Les questions à ChatGPT acceptent désormais des photos
ChatGPT
Joignez jusqu’à 4 photos à une question ChatGPT depuis l’API ou le Playground, et recevez la réponse que ChatGPT rédige à leur sujet, avec ses sources et ses recherches.
Ce que vous obtenez
payload.images : jusqu’à 4 photos envoyées avec la première question d’une tâche ChatGPT, sous forme d’URL d’image publiques ou de data URL.
La réponse arrive avec les mêmes champs que toute réponse ChatGPT : text, markdown, sources, searchQueries, ainsi que les produits et les lieux affichés par ChatGPT.
Dans le Playground, le bouton photo du champ de message joint des photos à une question ChatGPT, et une photo collée ou déposée dans le champ s’y ajoute aussi. Les photos s’affichent au-dessus de votre message dans la conversation.
Les followUps de la même requête continuent de poser des questions sur les photos dans la même conversation.
Fonctionnement
Les photos partent avec la première question d’une nouvelle conversation ChatGPT, comme lorsqu’un utilisateur les ajoute avec le bouton photo de chatgpt.com. ChatGPT regarde les photos, cherche sur le web quand la question le demande et répond avec ses sources. Dans l’exemple ci-dessous, ChatGPT a reconnu un set de café filtre sur la photo, a cherché « where to buy ceramic pour over coffee dripper white Hario V60 » et a recommandé le HARIO V60 Ceramic Coffee Dripper de HARIO USA ($30.50), le Kalita Style 102 Ceramic Coffee Dripper de Kalita USA ($20.00) et le HARIO V60 Coffee Pour Over Kit de Williams Sonoma ($56.95).
Chaque photo est lue une fois avant d’interroger ChatGPT : une data URL est décodée, une URL est téléchargée depuis son hôte public, jusqu’à 10 Mo par photo, en JPEG, PNG, WebP ou GIF. Si une photo échoue au téléchargement ou à l’ouverture, la tâche se termine avec BAD_PAYLOAD, et une tâche en échec est gratuite.
Une data URL voyage dans la requête, qui accepte jusqu’à 1 Mio : les grandes photos partent donc en URL. Le Playground envoie les photos en data URL et réduit les plus grandes, si bien que 4 photos tiennent dans un message.
Une question avec photos part du pays de payload.country et se poursuit avec followUps. Avec payload.location, un countryHK ou CN, ou continueFrom, la requête renvoie 400 VALIDATION_ERROR, et avec include.html activé, elle renvoie 422 EVIDENCE_UNSUPPORTED.
Cas d’usage
Montrez à ChatGPT une photo de votre produit, demandez où l’acheter, et voyez quelles boutiques et quels prix il recommande et si votre boutique en fait partie.
Interrogez-le sur une photo de votre emballage ou de celui d’un concurrent, et lisez quelle marque ChatGPT nomme et quelles pages il cite.
Interrogez-le sur un menu, une étiquette ou une capture de votre page, et comparez ce que ChatGPT y lit avec ce que vous avez publié.
Pour commencer
Ouvrez le Playground, restez sur Moteurs de réponse et gardez ChatGPT comme moteur dans le champ de message.
Sélectionnez le bouton photo (Joindre des photos) et choisissez jusqu’à 4 photos, ou collez-les ou déposez-les dans le champ de message.
Tapez votre question et sélectionnez Envoyer. Les photos s’affichent au-dessus de votre message, et la réponse arrive avec ses sources.
Passez la réponse en cURL et sélectionnez Copier le cURL pour lancer la même requête, photos comprises, depuis votre terminal.
Envoyer la requête
Envoyez la requête avec votre clé API dans l’en-tête 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"]
}
}'
Champs de la requête
taskTypestringObligatoire
Le moteur à interroger, par exemple CHATGPT ou GOOGLE.
payload.promptstringObligatoire
La question, rédigée comme un utilisateur la tape dans le chat. Jusqu’à 100 000 caractères.
payload.imagesarray
1 à 4 photos envoyées avec la première question, en URL http(s) publiques ou en data URL data:image/…;base64,. JPEG, PNG, WebP ou GIF, jusqu’à 10 Mo chacune. Les followUps continuent de poser des questions à leur sujet. Pour CHATGPT.
payload.countrystring
Code pays à deux lettres du marché d’où part la question, par exemple US, KR ou JP. Par défaut US.
payload.followUpsarray
Jusqu’à 4 tours de plus dans la même conversation ChatGPT après la première réponse. Chaque élément est {"prompt": "…"} pour poser une question, ou {"select": {…}} pour appuyer sur un bouton du formulaire de la réponse précédente. Pour CHATGPT.
webhook.urlstring
Une adresse HTTPS de votre serveur. La tâche terminée y est envoyée dès qu’elle se termine.
Réponse
Voici une tâche terminée, raccourcie pour la lecture.
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, puis COMPLETED avec la réponse ou FAILED avec error.
credits.creditsChargedinteger
Crédits facturés pour la tâche terminée. Une tâche en échec facture 0.
response.textstring
La réponse en texte brut.
response.sourcesarray
Les pages citées par la réponse, dans l’ordre du moteur, avec position, url et label.
response.searchQueriesarray
Les recherches web lancées par le moteur pour rédiger la réponse.
Recevoir le résultat
La requête renvoie aussitôt la tâche avec statusQUEUED. Interrogez GET /v1/async/task/{id} jusqu’à ce que status vaille COMPLETED ou FAILED, ou ajoutez webhook.url pour recevoir la tâche terminée sur votre serveur, avec les mêmes task, credits et response. Les résultats restent disponibles 24 heures après la fin de la tâche.
payload.images a été envoyé à un moteur autre que CHATGPT, est vide, contient plus de 4 photos ou une valeur autre qu’une URL http(s) ou une data URL d’image, ou accompagne payload.location, un countryHK ou CN, ou continueFrom. details indique le champ.
EVIDENCE_UNSUPPORTEDHTTP 422
include.html est activé pour une question avec payload.images.
PAYLOAD_TOO_LARGEHTTP 413
Le corps dépasse 1 Mio, ou 8 Mio pour un lot.
MISSING_API_KEYHTTP 401
L’en-tête Authorization manque, ou sa clé est inconnue, expirée ou révoquée.
INSUFFICIENT_CREDITSHTTP 402
Le solde est inférieur au prix de la tâche. Ajoutez des crédits ou changez de plan, puis renvoyez-la.
Tarif
Chaque réponse coûte 1 crédit, le prix d’une tâche ChatGPT, avec ou sans photos. Chaque réponse de relance ajoute 1 crédit. Une tâche terminée avec BAD_PAYLOAD est gratuite.
Interrogez l’onglet Shopping de Google aux États-Unis avec Commerce Search, puis lisez un produit avec Commerce Product pour obtenir chaque boutique listée par Google, avec son prix, son stock et sa page produit.
Envoyez l’URL d’une page à GEO Score et recevez la part de la page que ChatGPT search conserve, ce que ChatGPT reçoit quand il ouvre la page, ainsi que la cause et la correction de chaque élément manquant.