Passer au contenu principal
Utilisez Place Lookup pour vérifier comment les moteurs d’IA affichent un établissement, une succursale ou une clinique. Chaque moteur affiche des lieux issus d’une base cartographique. Gemini, Copilot et la page de résultats de Google affichent des fiches Google Maps, Naver AI Tab des fiches Naver Place, et ChatGPT des fiches issues de sources comme Yelp, Tripadvisor et Google Maps. Une recherche vous indique quelle fiche chaque moteur a utilisée et ce qui y est faux, pour savoir quelle fiche corriger.

Soumettre une recherche

La recherche pose deux questions à chaque moteur. Chaque question est une tâche ordinaire de ce moteur, et la réponse les liste :
Lisez la recherche avec GET /v1/place-lookup/{id} jusqu’à ce que lookup.status vaille COMPLETED. La plupart des recherches se terminent en moins de deux minutes : interrogez toutes les 5 à 10 secondes. Une recherche n’envoie pas de webhook. Le schéma de la requête est dans la référence API.

Champs de la requête

Les autres champs, webhook compris, renvoient 400 VALIDATION_ERROR.

Comment une recherche interroge

Chaque moteur reçoit deux questions. ChatGPT, Gemini et Copilot doivent afficher l’établissement sur une carte, la seconde fois avec son adresse. Sur la page de résultats de Google, la recherche porte sur l’emplacement de l’établissement, puis sur son nom depuis sa propre position. Naver AI Tab est interrogé sur l’emplacement de l’établissement, puis sur son nom. Pour KR, les questions sont en coréen, et la seconde question de ChatGPT est Show {name} on a map en anglais, car ChatGPT affiche plus souvent la carte d’un établissement coréen quand on l’interroge en anglais. Sans place.address, un moteur dont la seconde question ajoute l’adresse pose deux fois la première. Sans place.location, la seconde recherche Google ajoute l’adresse hors de KR. via[] dans le résultat montre chaque question telle qu’elle a été envoyée.

Lire le résultat

La recherche Canlis se lit ainsi, réduite aux champs principaux :
ChatGPT a affiché la fiche Yelp du restaurant. Gemini et Copilot ont affiché la même fiche Google Maps, avec le même Place ID. La page de résultats de Google n’a affiché aucun lieu pour les deux questions, donc son found vaut false.

engines[]

record

issues

Un numéro que toutes les succursales d’une chaîne affichent, comme un numéro gratuit, n’est pas comparé.

summary et credits

lookup.status vaut PROCESSING jusqu’à la fin de tous les moteurs, puis COMPLETED. Le résultat est évalué à partir des réponses enregistrées à chaque lecture, et une recherche reste lisible 24 heures après la fin de ses tâches.

Renvoyer une recherche

Chaque question est une tâche dont la clé est {lookup id}:{engine}:{ask}, par exemple canlis-2026-10:GEMINI:2. Renvoyez la même requête avec la même idempotencyKey : la recherche renvoie les tâches qu’elle a et envoie les questions qui n’ont pas encore de tâche, comme celles refusées faute de crédits. Le même id avec un autre établissement, pays ou liste de moteurs renvoie 409 RESOURCE_ALREADY_EXISTS et ne crée rien. Pour relancer la recherche plus tard, utilisez une nouvelle idempotencyKey.

Concurrence du plan

Chaque question compte comme une tâche dans la limite de concurrence de votre plan. Une recherche lance les questions pour lesquelles votre plan a de la place, et les autres attendent dans tasks[] avec status: "PENDING" :
Une question en attente démarre d’elle-même à mesure que vos tâches en cours se terminent, en moins d’une minute ou à la prochaine lecture de la recherche : une seule requête mène donc toute la recherche. Avec le plan Free, qui permet 2 tâches simultanées, une recherche exécute deux questions à la fois et prend quelques minutes. Les plans payants commencent à 50 tâches simultanées : une recherche entière démarre d’un coup tant que votre compte a de la place. Les questions attendent aussi quand la file d’un moteur est pleine ou que la clé a atteint sa limite quotidienne de crédits. Le prix d’une question est bloqué quand elle démarre. Si la clé qui a envoyé la recherche est révoquée ou expire avant, les questions en attente se terminent en FAILED avec API_KEY_INACTIVE et coûtent 0. Voir Crédits et limites.

Erreurs et facturation

Une recherche sur les moteurs par défaut du pays coûte 10 crédits. Chaque question paie sa part : 1 crédit pour chacune des 10 questions en KR, et 1,25 pour chacune des 8 ailleurs. Une recherche sur moins de moteurs paie les questions qu’elle envoie. Le prix de chaque question est bloqué à l’envoi et facturé quand elle se termine, et une question en échec coûte 0. Voir Crédits et limites.

Refus à l’envoi

Quand toutes les questions sont refusées, le premier refus est la réponse, avec son propre statut, par exemple 402 INSUFFICIENT_CREDITS ou 403 KEY_SCOPE_DENIED, et rien n’est créé. Quand certaines sont admises, la réponse est 200 et chaque question refusée porte son error dans tasks[] :

Lire une recherche

GET /v1/place-lookup/{id} renvoie 404 RESOURCE_NOT_FOUND pour un id que votre compte n’a pas utilisé, et pour une recherche dont les tâches ont dépassé la fenêtre de 24 heures. Une question en échec affiche status: "FAILED" dans via[] et une error qui commence par son code, par exemple ENGINE_NO_RESULT. Ces codes sont ceux des tâches du moteur, et une question en attente qui se termine avant de démarrer porte API_KEY_INACTIVE ou INSUFFICIENT_CREDITS. Voir Erreurs.

Étapes suivantes

ChatGPT

Les cartes de lieux que ChatGPT affiche, dans map.

Lots et grilles

Posez une même question depuis chaque point d’une grille autour d’un établissement.