Query Fan-Out API: expand and rank the sub-queries behind AI answers

The Fan-Out API returns the sub-questions an AI engine derives from a prompt before it answers, with how often each one occurs across every stored response. Each fan-out comes with its share of the total and whether the brand appeared in the answers that used it, so a team can see which questions it already covers.

Updated

  • ChatGPT
  • Perplexity
  • Google AI Mode
  • Claude
  • Microsoft Copilot
  • Grok

Playground

One seed prompt expands into 8 fan-outs, and the brand covers 3 of them

The Fan-Out API groups the sub-questions behind every stored answer and ranks them by occurrence. For the sample prompt on ChatGPT, client approval workflows top the list with 284 occurrences, and the brand appears in answers to 3 of the 8 questions. Raise the minimum occurrence to trim the tail, or switch the model to see how each engine expands the same prompt.

POST /v1/fan-outs/top

model

Unique fan-outs
8
Avg per response
4.7
Brand covered
3 / 8
curl -X POST https://api.apiforgeo.com/v1/fan-outs/top \
  -H "Authorization: Bearer $API_FOR_GEO_KEY" \
  -H "x-project-id: $PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "queryText": "best project management tool for creative agencies",
    "models": [
      "chatgpt"
    ]
  }'
200 OK · 84 ms · 8 rows
Fan-out questionOccurrencesShareBrand present
which project management tools have client approval workflows 284 21% yes
how much does project management software cost per seat 231 17.1% yes
best pm tool for agencies with under 20 people 198 14.6% no
does it integrate with design and proofing tools 176 13% yes
project management software with built-in time tracking 154 11.4% no
loopwork vs cadence for creative teams 141 10.4% no
can clients comment without a paid seat 96 7.1% no
which tools support retainer and utilisation reporting 74 5.5% no
Fields returned per fan-out by POST /v1/fan-outs/top
FieldTypeDescription
textstringThe fan-out question, as the engine phrased it.
occurrencesintHow many in-scope responses generated this fan-out.
sharefloatOccurrences ÷ total fan-outs in scope.
brandPresentbooleanWhether the brand was mentioned in answers containing this fan-out.
queryIds[]arrayThe tracked prompts that produced it, to join back to prompt tracking.
Totals returned for the scope by POST /v1/fan-outs/overview
FieldTypeDescription
totalFanOutsintTotal fan-outs in scope.
uniqueFanOutsintDistinct fan-out questions in scope.
avgPerResponsefloatAverage fan-outs generated per AI response.

Per prompt

The per-prompt variant returns the 4 fan-outs behind one tracked prompt

The Fan-Out API also reads one tracked prompt at a time through POST /v1/fan-outs/by-query/{queryId}. The id in the path names the prompt, which suits a prompt detail page or a content brief built around a single question. The response carries the same fields as the full list, for that prompt only.

POST /v1/fan-outs/by-query/{queryId}

curl -X POST https://api.apiforgeo.com/v1/fan-outs/by-query/q_7d20e4b1 \
  -H "Authorization: Bearer $API_FOR_GEO_KEY" \
  -H "x-project-id: $PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "models": [
      "chatgpt"
    ]
  }'

200 OK

{
  "scope": {
    "queryId": "q_7d20e4b1",
    "models": [
      "chatgpt"
    ]
  },
  "results": [
    {
      "text": "which client portal tools allow comments without a seat",
      "occurrences": 96,
      "share": 31.1,
      "brandPresent": false
    },
    {
      "text": "how do client portals handle file approvals",
      "occurrences": 88,
      "share": 28.5,
      "brandPresent": true
    },
    {
      "text": "client portal project software for agencies",
      "occurrences": 71,
      "share": 23,
      "brandPresent": true
    },
    {
      "text": "can clients see project timelines in the portal",
      "occurrences": 54,
      "share": 17.5,
      "brandPresent": false
    }
  ]
}
Fields returned per fan-out for one prompt
FieldTypeDescription
textstringThe fan-out question, as the engine phrased it.
occurrencesintHow many responses to this prompt generated it.
sharefloatOccurrences ÷ all fan-outs of this prompt.
brandPresentbooleanWhether the brand was mentioned in answers containing this fan-out.

Get started

Four setup steps put the first fan-outs in your project

The Fan-Out API reads questions captured during normal executions, so it needs no job of its own. Once the project exists, its key is generated in the app and its prompts are imported, the first execution fills the fan-out tables, and reading them is not billed.

  1. Step 1

    Create a project

    Create an organisation and a project, one project per brand or per client.

  2. Step 2

    Generate a key

    Generate an API key in the app; keys are managed there, never through the API.

  3. Step 3

    Import your prompts

    Import your prompts and tags with a single POST /v1/queries.

  4. Step 4

    Run and read

    Trigger an execution, poll the job, then read any analytics endpoint.

Comparison

Only 1 of 4 approaches returns fan-outs ranked and ready to use

The Fan-Out API returns the follow-up questions as ranked data, with occurrences and brand presence. An AI scraping API returns the final answer without them, a GEO dashboard tool rarely exposes them, and an in-house build has to capture and count them per engine, then keep up whenever an engine changes how it composes answers.

3 of the 15 capabilities on the full comparison
Capability API for GEOAI scraping APIGEO dashboard toolIn-house build
Fan-out follow-up questions YesNoRareBuild it
Raw answer text YesYesSometimesBuild it
Ongoing maintenance when engines change OursPartly theirsTheirsYours

Pricing

Query Fan-Out API pricing runs from $0.013 to $0.007 per credit

The Fan-Out API adds no charge of its own: fan-outs are captured while prompts run, and reading them is not billed. The credits are the executions themselves, one per prompt, per model, per locale, priced by the month's total volume with no commitment needed to reach a lower tier.

0 – 50k / month
$0.013
per credit
50k – 250k / month
$0.011
per credit
250k – 1M / month
$0.009
per credit
1M+ / month
$0.007
per credit

Price per credit, set by the month's total volume.

200 prompts × 3 models × 30 runs = 18,000 credits a month, $234 at $0.013

FAQ

Fan-out data, answered

What does the ranked list return?

The Fan-Out API returns each sub-question as the engine phrased it, with its occurrences, its share of all fan-outs in scope, whether the brand appeared alongside it and the tracked prompts that produced it. The overview call adds the totals for the scope: total fan-outs, unique fan-outs and the average per response.

How stable are fan-outs between runs?

The Fan-Out API counts occurrences across every stored response because single expansions vary from one run to the next. The most frequent questions change slowly while the rare ones churn, so a monthly brief built on the twenty most frequent questions stays valid.

Do fan-outs cost extra credits?

The Fan-Out API bills nothing beyond the executions themselves. Fan-outs are captured as part of each enriched run, and every read of the ranked list, the overview or a single prompt's variant is unmetered, so exploring the data does not change the monthly bill.

Can I turn a fan-out into a tracked prompt?

The Fan-Out API returns the queryIds behind each fan-out, so a frequent question can join the prompt set with one POST /v1/queries. Tracking it from then on measures visibility on the question the engine actually asked itself, next to the prompt it came from.

Can I resell fan-out data?

The Fan-Out API allows resale and white-label use, like every endpoint family. The payload carries no branding and each client can sit in an isolated project, so an agency can ship fan-out briefs under its own name or a platform can show the ranked questions inside its product.

Expand your prompts into the questions AI engines ask