Skip to main content
Send a topic and get back the questions people would ask an AI assistant about it, ranked by how many people search for that need each month, and the set of them a GEO monitor should track, in the order to add them. Use it to choose a monitor’s prompts and to see which competitor brands draw demand in the same space.
The call returns a queued task. Poll GET /v1/async/task/:id, or supply webhook.url when submitting; the task reports taskType: "PROMPT_RESEARCH" and usually completes in 30–60 seconds. Do not submit it through POST /v1/async/task; use this endpoint.

Payload

Result

From a 선크림 run, trimmed to a few entries:

prompts[], highest demand first

  • prompt — the question, in the market’s language, as a person would ask an AI assistant. It never names a brand: a prompt that names one would find that brand in every answer.
  • topic — the broader subtopic the need belongs to. Prompts on one subtopic share the label; topics[] sums them.
  • persona — who is asking, when the searches name an audience, condition or situation (men, parents of babies, oily skin); null otherwise.
  • intent — informational (how, what, why), commercial (choosing, comparing, recommending) or transactional (price, where to buy).
  • funnelStage — awareness (learning about the need or category), consideration (comparing options), purchase (price, where to buy) or post_purchase (using what they bought).
  • brandMentions — whether a good answer to the prompt names brands, products or providers: likely (it recommends, ranks or compares options), sometimes (it explains, usually with example products) or rarely (it explains a concept, method or usage without products).
  • fit — only when you send brandDescription: core (the description says your brand offers what the prompt asks for), related (anything the description does not mention) or none (the description rules it out, such as another audience or product).
  • monthlySearchVolume — monthly searches for the need behind the prompt.
  • demandShare — this prompt’s share of the demand behind every usable prompt found, from 0 to 1.

monitorSet

The prompts a monitor should track, in the order to add them, chosen from every usable prompt found, including those past limit. The set favors prompts many people ask whose answers give a monitor something to measure, spread across topics and personas. Each entry has the fields of a prompts[] entry plus rank, starting at 1. coverage says how much of the research the set holds:
  • demandShare — the chosen prompts’ share of the searches behind every usable prompt found, from 0 to 1.
  • topics, personas — how many of the topics and personas found the set covers, as covered out of total.
How the set behaves:
  • A prompt with fit none is never picked, so the set can hold fewer than monitorSize prompts.
  • monitorSize only cuts one order: the first 12 prompts of a 20-prompt set are the 12-prompt set, so growing a monitor keeps the prompts it already tracks.
  • A monitor runs at most 200 prompt × engine tasks at a time. Send monitorEngines with the engines your monitor will run, and a monitorSize that would not fit is rejected when you submit: with five engines, monitorSize can be at most 40.
To favor the prompts your brand answers, describe your brand:
The description is judged as written, so a one-line description leaves most prompts related. To keep a subtopic out of the set, exclude is more reliable.

topics[] and personas[]

Demand summed by topic and by persona over every usable prompt found, including those past limit, highest first. Each entry has monthlySearchVolume, demandShare and promptCount. Prompts without a persona are left out of personas[].

brands[]

Brands, manufacturers and product lines people search for in this space, with their monthly searches. Their demand stays out of prompts because prompts do not name brands.

Other fields

  • seedMonthlySearchVolume — monthly searches for the seed itself; null when there is no count for it.
  • promptsFound — usable prompts before limit was applied.
  • demandSource — the period the numbers cover, and fetchedAt. KR: last_30_days. US: monthly_average_last_12_months, so a seasonal term reads lower at its peak than that month’s searches.

Reading the result correctly

  • Search demand is not AI conversation volume. The numbers count monthly searches in the market. They show how many people look for a need; no public count exists of how often the same need is asked of AI assistants. Use them to rank prompts, not as a forecast of AI traffic.
  • The wording is generated; the numbers are not. Each prompt is written for its need, and the same seed can be grouped differently on another run: the top of the list is usually stable and the tail varies.
  • Rare searches are left out. Searches made fewer than 10 times a month carry no reported demand and add nothing to a prompt.
  • Shares compare needs within one seed. demandShare tells you how the search demand around this seed divides between needs, topics and personas. It is not a share of AI conversations, and shares from different seeds do not add up.

Errors and billing

  • 12 credits per completed task. A failed task releases its hold.
  • 422 VALIDATION_ERROR — a field is out of range, brandAliases or brandDescription came without brand, or monitorSize × the number of monitorEngines exceeds 200.
  • 422 REGION_UNSUPPORTED — country is not KR or US.
  • A failed task’s error starts with its code. NO_SEARCH_DEMAND means no search demand was found for the seed or anything related to it; try a broader or more common term. NO_RELATED_SEARCHES means the seed itself is searched but nothing related to it is; try a more specific phrase people search for. The same seed fails the same way again. KEYWORD_DATA_UNAVAILABLE, ANALYSIS_FAILED and ANALYSIS_TIMEOUT are temporary; retry shortly.