AI visibilityGET$0.05/engine
/v1/ai-visibility
Which AI answer engines cite a domain for a prompt — and who they cite instead. Official APIs, never UI scraping.
Priced per engine: $0.05 for each engine you ask, so one engine is $0.05 and all four are $0.20 — the 402 quotes the exact amount for the engines passed.
Asks ChatGPT, Claude, Gemini and Perplexity the prompt through their official APIs with web search on, then parses the citations. For each engine you get whether it cited the domain, its 1-based position in that engine's citation list, and the full deduped list of who was cited — the competitors an agent should study.
The prompt is yours. Citable never writes prompts for you: if you do not know what to ask, /v1/cited-prompts returns the questions the index has already seen a domain cited for.
Parameters#
| Name | Description | |
|---|---|---|
prompt | required | the question a buyer would ask (3–400 chars) |
domain | required | hostname to look for in the citations, e.g. example.com (subdomains match) |
engines | optional | optional comma list of perplexity,gemini,openai,anthropic (default: all configured — GET /api lists them under engines_configured) |
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/ai-visibility?prompt=best+pay-per-call+seo+api&domain=citable.run
Response#
200 with the JSON below (trimmed) and the settlement signature in the PAYMENT-RESPONSE header. Every paid response also carries price and cluster.
{
"prompt": "best pay-per-call seo api",
"domain": "citable.run",
"mentioned": false,
"engines": [
{ "engine": "perplexity", "ok": true, "mentioned": false, "position": null,
"cited": [ { "url": "https://yepapi.com/…", "domain": "yepapi.com" }, { "url": "https://serpwatch.io/…", "domain": "serpwatch.io" }, "…" ] },
{ "engine": "gemini", "ok": true, "mentioned": false, "position": null, "cited": [ "…" ] },
{ "engine": "openai", "ok": true, "mentioned": false, "position": null, "cited": [ "…" ] },
{ "engine": "anthropic", "ok": true, "mentioned": false, "position": null, "cited": [ "…" ] }
],
"summary": { "engines_run": 4, "engines_ok": 4, "engines_citing": 0 },
"note": "One run per engine; answers vary between runs. Citations come from each engine's official API, which can differ from its web UI.",
"price": "$0.20",
"cluster": "mainnet"
}Errors#
Any non-200 cancels the payment — errors are free.
| Status | Code | When |
|---|---|---|
| 400 | invalid_prompt | prompt missing, under 3 or over 400 chars |
| 400 | invalid_domain | domain is not a hostname |
| 400 | invalid_engines | an engine name outside the four |
| 502 | upstream_failed | no engine answered — nothing is charged |
| 503 | not_configured | no engine is configured on this deployment |
MCP tool#
The same call from Claude, Codex or Cursor once citable-mcp is installed. Arguments mirror the parameters above.
citable_ai_visibility(prompt, domain, engines?) $0.05/engineSource & latency#
| Data source | Typical latency |
|---|---|
| Official engine APIs (direct keys or DataForSEO's LLM-responses proxy) | ~10–15 s for four engines |
Note
Note
Pairs with#
The real questions AI engines already cite a domain for
Classic on-page SEO plus AI citability, scored 0–100 with a fix for every non-passing check.
On-page audit + AI visibility across all engines + top cited pages, in one call. $0.30 instead of $0.43 separately.