Docs menu

AI visibilityGET$0.25

/v1/cited-prompts

The real questions AI engines already cite a domain for — with the answer snippet and the exact URL cited.

Observed prompts, never generated ones. This is the discovery step before /v1/ai-visibility: read what the index has seen a domain cited for, pick the prompts that matter, then run those. Point domain at a competitor and you get the prompts they win and you do not.

The index stores one row per observed answer, so a popular question recurs with different dates. Rows are collapsed per question and platform — the loudest row's content, a date window spanning every observation, and observations counting the merges. totalPrompts counts index rows, so it is larger than prompts.length.

Parameters#

NameDescription
domainrequiredhostname to look up, e.g. example.com — or a competitor's
limitoptionalprompts to return, 1–50 (default 10)
platformoptionalchat_gpt or google (default: both)

Request#

Plain GET. Without a payment header the response is a 402 carrying the price; an x402 client pays and retries on its own — see the quickstart.

request
GET https://citable.run/v1/cited-prompts?domain=profound.com&limit=10

Response#

200 with the JSON below (trimmed) and the settlement signature in the PAYMENT-RESPONSE header. Every paid response also carries price and cluster.

200 · application/json
{
  "domain": "profound.com",
  "prompts": [
    { "question": "profound",
      "answer": "**Profound** is an adjective that means very great, deep, or intense …",
      "platform": "google",
      "aiSearchVolume": 1300,
      "citedUrl": "https://www.profound.com/",
      "citedRank": 5,
      "firstSeen": "2025-11-28 23:57:09 +00:00",
      "lastSeen": "2026-08-17 19:15:17 +00:00",
      "webSearchBased": true,
      "observations": 4,
      "brandEntities": [],
      "fanOutQueries": [] },
    { "question": "profound office nyc",
      "answer": "Profound's primary New York City office is located at …",
      "platform": "google",
      "aiSearchVolume": 40,
      "citedUrl": "https://www.profound.com/Start/ContactUs.aspx",
      "citedRank": 4,
      "firstSeen": "2026-08-14 13:17:21 +00:00",
      "lastSeen": "2026-08-14 13:17:21 +00:00",
      "webSearchBased": true,
      "observations": 1,
      "brandEntities": [],
      "fanOutQueries": [] }
  ],
  "totalPrompts": 7,
  "coverage": { "platforms": ["chat_gpt", "google"], "note": "ChatGPT rows are United States / English only; brandEntities and fanOutQueries are ChatGPT-only fields" },
  "source": "dataforseo_llm_mentions",
  "price": "$0.25",
  "cluster": "mainnet"
}

Errors#

Any non-200 cancels the payment — errors are free.

StatusCodeWhen
400invalid_domaindomain is not a hostname
400invalid_platformplatform is not chat_gpt or google
502upstream_failedthe data source did not answer — nothing is charged
503not_configuredthis deployment has no credentials for the source — nothing is charged

MCP tool#

The same call from Claude, Codex or Cursor once citable-mcp is installed. Arguments mirror the parameters above.

mcp
citable_cited_prompts(domain, limit?, platform?)   $0.25

Source & latency#

Data sourceTypical latency
DataForSEO LLM Mentions index~1–2 s

Note

A domain whose name is also a common word collects homonym prompts (this sample shows it). The output is only as clean as the brand name is distinctive.

Pairs with#