Comparez une réponse IA terminée avec ses sources citées. Le résultat est une carte compacte : les paragraphes de
chaque page source inclus dans le résultat, les parties de la réponse auxquelles ils correspondent, une explication
pour chaque lien et de courts résumés construits à partir de ces liens.
Il s’agit d’une analyse de correspondance a posteriori d’une réponse existante : elle ne prouve pas qu’une source a
amené le modèle à générer une phrase, et elle ne note pas la qualité d’une page. Considérez-la comme un élément à
examiner, pas comme un verdict.
Interrogez GET /v1/async/task/:id ou fournissez webhook.url à la soumission ; la tâche indique
taskType: "SOURCE_INFLUENCE". Ne soumettez pas cette analyse via POST /v1/async/task : utilisez l’endpoint dédié.
POST /v1/research et le type de tâche CITATION_ATTRIBUTION sont les noms d’avant septembre 2026 et fonctionnent
toujours comme alias obsolètes.
Analyser une tâche déjà exécutée
Si la réponse provient de cette API, envoyez son id de tâche au lieu de copier la réponse et les citations du résultat :
La tâche doit vous appartenir, être COMPLETED et encore lisible via GET /v1/async/task/:id. Son Markdown de
réponse (le texte si le moteur n’a pas renvoyé de Markdown) devient answer, et ses URL citées deviennent
citations dans l’ordre du moteur : les 100 premières, avec au plus 10 fils de discussion. Les emplacements de fiches
produit et vidéo (liens googleusercontent.com) et les liens de recherche Google sont ignorés, faute de page à lire.
Le prompt, le country et le moteur de la tâche sont utilisés sauf si vous les envoyez. Envoyer taskId avec
answer ou citations est rejeté avec 400, tout comme une tâche inachevée ou sans texte de réponse ni URL citée.
Un id de tâche inconnu ou expiré renvoie 404.
Payload
L’option analysis est retirée.
Les versions précédentes acceptaient analysis: {version: 1, …}. Les insights font désormais partie de chaque
résultat : ce champ est donc rejeté avec 400 au lieu d’être ignoré. Retirez-le des intégrations existantes. Le contenu
des tâches existantes reste lisible ; les enregistrements stockés ne sont pas migrés.
Résultat
answer
La réponse que vous avez soumise, inchangée. answerRanges sont des offsets dans exactement cette chaîne : unités de
code UTF-16 JavaScript, start inclus, end exclu. Découpez-la telle quelle, avec answer.slice(start, end), au
lieu de redécouper le texte. Chaque plage désigne une unité sémantique complète de votre réponse : une phrase, un
élément de liste ou une cellule de tableau. Ses bornes se réfèrent au texte d’origine.
sources[] : une entrée par citation envoyée
id : identifiant opaque, unique dans le résultat.
url : l’URL de citation que vous avez fournie.
paragraphs[] : les paragraphes de cette page inclus dans le résultat. Chacun a un id (unique dans tout le
résultat) et le text du paragraphe. Un paragraphe peut être inclus sans aucun lien.
error : présent uniquement si la page n’a pas pu être lue. paragraphs est alors vide, et la chaîne donne une
courte raison pour cette source.
links[] : une relation par paragraphe
paragraphId : le paragraphe concerné par ce lien. Il pointe toujours vers un paragraphe qui existe dans sources[].
answerRanges[] : les parties de la réponse auxquelles correspond ce paragraphe, en paires start/end dans les
mêmes offsets UTF-16. Un lien peut porter plusieurs plages ; le même texte de réponse n’est pas répété entre elles.
Chaque plage est une unité complète de la réponse (phrase, élément de liste ou cellule de tableau).
explanation : une courte phrase décrivant la correspondance, c’est-à-dire ce que le paragraphe affirme sur cette partie de la réponse.
insights[]
De courts résumés de ce que les liens de ce résultat révèlent ensemble. linkIds nomme les liens à partir desquels
chaque résumé a été construit, et ne peut nommer que des liens présents dans links[] : un insight n’affirme jamais une
relation absente de la réponse. Sans lien, il n’y a rien à résumer.
Bien lire le résultat
- L’absence de lien n’est pas un verdict. Un paragraphe sans lien n’a simplement pas correspondu à une plage de la
réponse, et une partie de la réponse sans plage signifie qu’aucun paragraphe n’y a été relié. Ni l’un ni l’autre ne
dit que la page est hors sujet, inutilisée ou peu fiable.
- Une page non lue reste incertaine. Si
sources[].error est défini, cette citation a été exclue de l’analyse ;
ne traitez pas son absence de liens comme un constat négatif. Relancez-la ou fournissez son body si elle compte.
- Correspondance, pas causalité. Le résultat décrit comment une réponse existante et le texte d’une page existante
se recoupent après coup. Il ne mesure pas l’influence sur la génération, ne classe pas les pages entre elles, ne note
pas la page et n’indique pas comment la réponse a été produite.
- Les ids sont internes. Ne conservez pas les identifiants
p…/l… comme clés stables d’une exécution à l’autre ;
ils ne valent qu’au sein d’un résultat.
Exécution et limites
- La taille n’est pas un motif d’échec. Tout ce que le contrat de requête accepte, une
answer jusqu’à 200 000
caractères avec jusqu’à 100 citations, est analysé. Les réponses longues, les grands ensembles de sources et les pages
très longues sont traités en découpant le travail, pas en rejetant la tâche.
- La profondeur suit la réponse, pas la page. Une page longue ne produit pas plus de liens que la réponse ne peut en
justifier : l’analyse se concentre sur les passages les plus susceptibles de correspondre à la réponse, et chaque
source qui montre une correspondance est représentée. Sur une grande page, ou sur une page qui répète la même
affirmation dans la navigation, les listes et les avis, attendez-vous aux passages les plus forts plutôt qu’à chaque occurrence.
- Le balisage n’est pas une preuve. Les plans de site, index de liens et galeries d’images ne produisent aucun lien ;
une page constituée uniquement de ces éléments est signalée sans paragraphe plutôt qu’avec des correspondances inventées.
- Une source illisible est signalée dans
sources[].error sans faire échouer la tâche si une autre source est lisible.
La tâche échoue quand aucune source n’a pu être lue, en cas d’échec de l’analyse, de timeout ou d’erreur de
configuration du service.
- Les requêtes sont facturées à l’usage, comme le reste de l’API. La réponse de soumission indique la réservation
temporaire de crédits ; le montant final est réglé quand la tâche atteint un état final.