Passer au contenu principal
Product Lookup vous montre un produit tel que les moteurs d’achat IA le présentent aux acheteurs. Envoyez un nom de produit et un marché, et querying.ai interroge chaque moteur à son sujet. Pour chaque moteur, vous savez si la réponse a montré le produit, quelles offres de marchands elle a affichées (marchand, catalogue, prix, stock, note et nombre d’avis) et quelles pages elle cite. Ajoutez jusqu’à cinq concurrents pour les comparer moteur par moteur, et jusqu’à trois prompts d’achat, comme best moisturizing eye cream, pour voir lesquels de ces produits chaque moteur montre à un acheteur. Une recherche vous indique par exemple :
  • si ChatGPT, Google AI Overviews, AI Mode ou Copilot montrent le produit quand on les interroge à son sujet ;
  • par quels marchands et quelles fiches de catalogue chaque moteur le montre, à quel prix, avec quelle note et combien d’avis ;
  • ce que le modèle qui répond dans ChatGPT a lu sur le produit ;
  • comment le produit se situe face à ses concurrents sur chaque moteur ;
  • lesquels de ces produits chaque moteur montre pour une recherche d’achat.

Soumettre une recherche

La recherche est découpée en questions : une question est posée à un moteur sur un produit ou un prompt. Chaque question est mise en file comme une tâche ordinaire, et la réponse de l’API les liste. Elle est réduite ici à trois des 23 questions :
  • lookup.id est votre idempotencyKey, ou un UUID choisi par le serveur si vous n’en envoyez pas. C’est avec lui que vous lisez la recherche.
  • Chaque entrée de asks[] porte son role (product, competitor ou prompt), le texte posé dans prompt ou query, et sa task. Une question refusée porte success: false et une error à la place de task. Voir Erreurs.
  • credits.creditsToCharge additionne les prix des questions renvoyées, bloqués sur votre solde jusqu’à la fin de chaque question. creditsCharged est ce qui leur a déjà été prélevé.
Lisez la recherche avec GET /v1/product-lookup/{id} jusqu’à ce que lookup.status vaille COMPLETED. Cette recherche a pris environ deux minutes ; une recherche se termine quand son moteur le plus lent répond. Avec webhook.url, la tâche de chaque question vous est envoyée quand elle se termine, avec la clé de la question dans task.idempotencyKey, qui commence par l’id de la recherche. Aucun webhook ne couvre la recherche entière : à chaque livraison, lisez la recherche et vérifiez lookup.status. Les schémas sont dans la référence de l’API : Product Lookup et Lire un Product Lookup.

Champs de la requête

Moteurs et questions

Le produit et chaque concurrent reçoivent les mêmes questions : « Sur demande » signifie que le moteur n’est interrogé que si vous l’indiquez dans engines. Sans engines, une recherche US interroge ChatGPT, AI Overviews, AI Mode et Copilot, soit 5 questions par produit. Une recherche KR interroge Naver AI Tab, ChatGPT et AI Mode, soit 4 questions par produit. Un prompt d’achat est posé une fois à chaque moteur : 4 questions avec les moteurs par défaut de US, 3 avec ceux de KR. La recherche ci-dessus a posé 3 × 5 + 2 × 4 = 23 questions. ChatGPT reçoit deux questions, car une seule montre une fiche produit pour environ la moitié des produits, et la même question répétée tombe souvent sur une autre moitié. Les autres moteurs par défaut sont ceux qui ont montré des produits lors d’un test sur 50 produits le 2026-10-20 : La ligne ChatGPT provient de 12 produits US et 10 produits KR, recherchés deux fois chacun. Gemini n’a montré aucune fiche produit en 115 questions sur les deux marchés.

Lire la recherche

Le résultat comporte cinq parties :
  • lookup : ce qui a été demandé, son status et les credits prélevés jusqu’ici.
  • summary et engines[] : les réponses sur le produit, tous moteurs confondus puis moteur par moteur.
  • competitors[] : les mêmes summary et engines[] pour chaque concurrent.
  • comparison[] : le produit et ses concurrents côte à côte, moteur par moteur.
  • prompts[] : ce que chaque moteur a répondu à chaque prompt d’achat.
lookup.status vaut QUEUED tant qu’aucune question n’a commencé et PROCESSING tant qu’une question n’est pas terminée. Il passe à COMPLETED quand toutes les questions sont terminées et qu’au moins une a abouti, et à FAILED quand toutes ont échoué. Les entrées se remplissent au fil des questions, vous pouvez donc lire une recherche avant qu’elle soit terminée. Voici lookup, summary et engines[] de la recherche ci-dessus, réduits à deux des quatre moteurs et à quelques entrées par liste :
Les quatre moteurs ont montré le produit. ChatGPT a montré une fiche issue du flux produits d’Ulta Beauty, et son modèle qui répond y a lu une note de 4,5 pour 105 avis. ChatGPT a aussi écrit des cartes widget pour trois boutiques, dont Amazon. AI Mode a montré l’offre d’un marchand et une version en stick marquée variant, et a placé le gel contour des yeux de la marque dans otherListings.

summary

engines[]

Une entrée par moteur interrogé :

Champs d’une offre

Une offre est la fiche du produit chez un marchand, telle que le moteur la détient. Elle ne porte que les champs fournis par le moteur. source indique de quel catalogue vient une offre :

Cartes widget de ChatGPT

ChatGPT répond souvent à une recherche d’achat par des cartes qui indiquent chacune une boutique et un prix lus sur la page de la boutique, sans fiche de catalogue derrière. Product Lookup lit chaque carte comme une offre chatgpt_widget, après les fiches de la réponse, et la compte pour found.
  • merchant est la boutique nommée par la carte, ou le domaine de son lien d’achat. description est la ligne de description de la carte.
  • Une carte n’a ni rating, ni reviewCount, ni available, ni ids, ni modelSees. Avec une fourchette de prix comme $40–$62, price est absent.
  • Une carte qui n’a ni lien d’achat ni ligne vendeur n’est pas lue.
  • Une carte qui reprend la boutique et le prix d’une fiche ou d’une carte précédente du produit est écartée. Deux boutiques sont considérées comme identiques quand leurs noms ou les sites liés correspondent, ou que l’un commence par l’autre, comme Ulta, Ulta Beauty et ulta.com.
Pour ne lire que les fiches de catalogue, laissez de côté les offres dont la source vaut chatgpt_widget.

Comparer avec les concurrents

Une question sur un produit montre rarement le produit d’une autre marque ; aucune ne l’a fait lors du test sur 50 produits. C’est donc vous qui nommez les concurrents, et chacun reçoit les questions du produit. Chaque entrée de competitors[] contient le product, le summary et les engines[] du concurrent, à lire comme ceux du produit. comparison[] aligne le produit et ses concurrents, une ligne par produit et une entrée par moteur. D’après la recherche ci-dessus, réduite à Copilot, avec ChatGPT en plus pour le produit :
Les trois produits ont été trouvés sur les quatre moteurs. Sur Copilot, l’offre du produit qui a le plus d’avis en compte 2 942, contre 85 773 et 117 193 pour les deux concurrents. Sur les huit réponses aux prompts d’achat, CeraVe Eye Repair Cream est apparu dans cinq, le produit et Clinique All About Eyes dans deux chacun.

Prompts d’achat

Chaque entrée de prompts[] contient le prompt et une entrée par moteur dans engines[] : La réponse à un prompt d’achat montre des produits de nombreuses marques. Une fiche ne compte donc comme l’un des produits de la recherche que si elle contient la marque, c’est-à-dire le premier mot du nom du produit. Un nom dans le texte compte de la même façon qu’un moniteur GEO compte une mention de marque, avec le nom complet du produit comme terme. D’après la recherche ci-dessus, AI Overviews et Copilot répondant à best moisturizing eye cream, avec les offres réduites aux produits de la recherche :
AI Overviews a nommé le produit dans son texte, mais n’a montré que des fiches des deux concurrents. Copilot a montré le produit chez trois marchands. La correspondance repose sur les noms : une version dont le nom ajoute un mot, comme Clinique All About Eyes Rich, compte comme le produit concerné.

Renvoyer une recherche

Chaque question a sa propre clé, construite à partir de l’id de la recherche :
  • Les questions du produit : <id>:<engine>:<ask>, comme eye-bomb-us:CHATGPT:buy. Les questions de ChatGPT sont buy et price, celle des autres moteurs est name.
  • Les questions du n-ième concurrent ajoutent :c<n>, comme eye-bomb-us:CHATGPT:buy:c1.
  • Les questions du n-ième prompt : <id>:<engine>:p<n>, comme eye-bomb-us:AIMODE:p1.
Si vous renvoyez une recherche avec le même idempotencyKey, l’API rend les questions existantes et n’ajoute que celles qui manquent, et seules les questions ajoutées vous sont facturées. Servez-vous-en pour terminer une recherche dont des questions ont été refusées pour manque de crédits ou limite de concurrence, ou pour ajouter un concurrent ou un prompt en fin de liste. Un concurrent ou un prompt que vous omettez reste dans la recherche. Un renvoi qui change le produit ou le pays, ou qui place un autre concurrent ou un autre prompt à une position déjà occupée, renvoie 409 RESOURCE_ALREADY_EXISTS et n’écrit rien. Une question qui a échoué est rendue telle quelle par un renvoi. Pour obtenir de nouvelles réponses des moteurs, envoyez la recherche avec un nouvel idempotencyKey.

Prix

Une recherche coûte 10 crédits par produit, le produit comme chaque concurrent, et 5 crédits par prompt d’achat, quels que soient les moteurs interrogés.
  • La recherche ci-dessus coûte 3 × 10 + 2 × 5 = 40 crédits. La plus grande recherche, un produit avec 5 concurrents et 3 prompts, coûte 75 crédits.
  • Les crédits d’un produit ou d’un prompt sont répartis entre ses questions. Avec les moteurs par défaut de US, une question de produit coûte 2 crédits et une question de prompt 1,25. Avec ceux de KR, une question de produit coûte 2,5 crédits et les trois questions d’un prompt 1,67, 1,67 et 1,66. Interroger moins de moteurs ne baisse pas le prix : avec ChatGPT seul, chacune des deux questions d’un produit coûte 5 crédits.
  • Chaque question est bloquée à la soumission et prélevée quand elle aboutit, comme toute tâche. Une question qui échoue n’est pas facturée.
  • Au prix des plans, un produit coûte 0,025 $ sur Basic et 0,010 $ sur Max.
Consultez Crédits et limites pour les blocages et les plans.

Bien lire les résultats

  • Une recherche est un instantané. Chaque moteur répond à une ou deux questions. Avant d’agir sur une seule différence, relancez la recherche avec un nouvel idempotencyKey.
  • Les fiches gardent leurs valeurs ; c’est la sélection qui change. Sur quatre exécutions d’une même recherche, la même fiche marchand a gardé son prix, sa note et son nombre d’avis pour 307 valeurs sur 316. Ce qui change d’une exécution à l’autre, ce sont les fiches qu’une réponse montre : found (surtout sur ChatGPT), les marchands, mostReviewed, priceRange et les shown et named des prompts peuvent donc différer.
  • Quelques minutes d’écart changent autant que quelques heures. Les réponses de ChatGPT, d’AI Mode et de Copilot ont autant différé à trois minutes d’écart qu’à onze heures. Réinterrogé dans les secondes qui suivent, AI Overviews peut renvoyer la même réponse : une répétition rapide n’y donne pas un nouvel échantillon.
  • Les totaux sont plus stables que les réponses isolées. Sur les quatre exécutions, les réponses aux prompts d’achat ont changé une à une, mais les produits apparus dans le plus de réponses sont arrivés en tête à chaque fois. Pour suivre des prompts dans le temps, utilisez un moniteur GEO.
  • found: false décrit ces réponses. Cela signifie que les questions de cette exécution n’ont pas montré le produit. Cela ne signifie pas que le catalogue du moteur ne l’a pas.
  • La correspondance repose sur les noms. Aucun moteur ne renvoie de GTIN. Un produit renommé ou traduit peut se retrouver dans otherListings, et une version que son nom ne distingue pas peut compter comme le produit. Vérifiez match quand une offre semble incorrecte.

Limites

  • L’entrée est un nom de produit. Les URL de pages produit et les GTIN ne sont pas pris en charge.
  • Les marchés sont US et KR.
  • Une recherche accepte jusqu’à 5 concurrents et 3 prompts d’achat. Avec les moteurs par défaut de US, la plus grande recherche pose 42 questions.
  • Les concurrents sont ceux que vous nommez. Une recherche ne les trouve pas pour vous ; les prompts d’achat montrent quels produits un moteur met devant les acheteurs.
  • Les fiches et les cartes widget de ChatGPT sont lues. Les boutiques et les prix qu’il écrit dans le texte ou les tableaux de la réponse ne le sont pas.
  • Chaque réponse apporte au plus 60 offres et 20 pages citées.
  • Une recherche peut être lue tant que les tâches de ses questions peuvent l’être, jusqu’à 24 heures après leur fin. Voir Tâches asynchrones.

Erreurs

Rejets à la soumission

Questions refusées

Chaque question est admise comme une tâche isolée ; elle peut donc être refusée à cause de votre solde (402 INSUFFICIENT_CREDITS), de la concurrence de votre plan (429 PLAN_CONCURRENCY_LIMIT), de la limite quotidienne de crédits d’une clé (429 KEY_DAILY_CREDIT_LIMIT) ou d’une clé limitée à d’autres moteurs. Une question refusée reste dans asks[] avec success: false et son error, et les autres questions continuent. Les questions sont admises une par une : la première question de chaque moteur sur chaque produit, et chaque prompt, passent avant toute deuxième question. Quand votre plan n’a de place que pour une partie des questions, celles qui sont admises couvrent donc autant de moteurs et de produits que possible. Si aucune des premières questions du produit n’est admise, aucune autre question n’est posée, et la réponse de l’API est le premier refus avec son statut, comme 402 INSUFFICIENT_CREDITS. Avec les 2 tâches simultanées du plan Free, une recherche US admet les premières questions du produit à ChatGPT et à AI Overviews ; renvoyez-la quand elles sont terminées pour ajouter le reste. La plus grande recherche US, 42 questions, tient dans les 50 tâches simultanées de Basic quand rien d’autre n’est en file. Les erreurs d’authentification sont les mêmes que pour toute requête. Voir Erreurs.

Questions en échec et lectures

  • Une question qui échoue a status: "FAILED" et une error dans via[], et n’est pas facturée. Un moteur dont toutes les questions ont échoué a status: "FAILED" et found: null, et figure dans summary.failed.
  • GET /v1/product-lookup/{id} renvoie 404 RESOURCE_NOT_FOUND pour un id sans recherche sur votre compte, y compris une recherche dont les tâches ont dépassé la période de lecture.

Étapes suivantes

Moniteurs GEO

Suivez des prompts d’achat sur les moteurs IA selon un calendrier.

Prompt Research

Trouvez les questions d’achat que les gens posent sur une catégorie.