AnswerLine Sign in Start free

GEO · ChatGPT · Fundamentals

Query fan-out: the searches ChatGPT runs before it answers

When ChatGPT searches the web for an answer, it rarely searches the prompt as typed. It runs several rewritten searches, a fan-out, and its cited sources come from what those searches return. Across a set of prompts, the fan-out shows which queries feed the answers in your category.

Request it

{
  "prompt": "What is the best CRM for a small agency?",
  "country": "US",
  "include": { "searchQueries": true }
}

Send it to POST /v1/monitor/chatgpt or as a CHATGPT task. include.searchQueries shares an add-on with rawResponse, ads and shopping: enabling any of them adds the same cost once (pricing).

The fan-out comes back as result.searchQueries, an array of strings. Two details of the contract matter:

Aggregate across a prompt set

Count each normalized search once per answer that ran it:

from collections import Counter

def fan_out_report(results: list) -> list:
    """Searches with the number of answers that ran them, most frequent first."""
    counts = Counter()
    for result in results:
        counts.update({" ".join(q.lower().split()) for q in result.get("searchQueries", [])})
    return counts.most_common()

results are result objects: from synchronous responses, or response.result of completed tasks.

Turn it into work

Try it on your own prompts

500 free credits a month, no card. One POST returns the answer, sources and citations as JSON.

Keep reading