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#
| Name | Description | |
|---|---|---|
domain | required | hostname to look up, e.g. example.com — or a competitor's |
limit | optional | prompts to return, 1–50 (default 10) |
platform | optional | chat_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.
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.
{
"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.
| Status | Code | When |
|---|---|---|
| 400 | invalid_domain | domain is not a hostname |
| 400 | invalid_platform | platform is not chat_gpt or google |
| 502 | upstream_failed | the data source did not answer — nothing is charged |
| 503 | not_configured | this 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.
citable_cited_prompts(domain, limit?, platform?) $0.25Source & latency#
| Data source | Typical latency |
|---|---|
| DataForSEO LLM Mentions index | ~1–2 s |
Note