AI answer tools
What ChatGPT, Claude, Gemini, Perplexity and Google's AI answers say and cite, and whether a site is ready for them.
What AI engines say, and whether a site is ready for them. chatgpt and gemini are the answers their consumer apps show a person, read live from chatgpt.com and gemini.google.com. claude and perplexity are live answers from their model APIs with web search on. ai_overview and ai_mode are Google's AI answers. The data comes from DataForSEO. aeo_get_site_readiness reads the site itself and is free.
A prompt is a question people ask an engine. A mention is your brand in the answer text. A citation is a source the engine links.
For a baseline, run aeo_get_site_readiness, find the prompts that matter with aeo_search_prompts, then run them with aeo_run_ai_answers and the brands to look for. AI answers run as an async task and are never cached.
| Tool | What it does | Cost |
|---|---|---|
aeo_run_ai_answers | Run AI answers for a prompt | From 2 credits |
aeo_search_prompts | Search AI prompts | From 30 credits |
aeo_get_site_readiness | Get AI readiness for a site | Free |
#Run AI answers for a prompt
aeo_run_ai_answers
What AI engines answer for a prompt, with the brands they mention and the sources they cite. Slow: returns a task_id, then read the result with get_task.
Use when: "does ChatGPT recommend us for X", "who do AI engines cite for X", an AI visibility baseline for a brand across engines.
Not for: which prompts people ask, use aeo_search_prompts. Google's ten blue links, use seo_get_serp (ai_overview: true adds the overview to it at 1 credit). Whether a site is ready for AI crawlers, use aeo_get_site_readiness.
Returns: Task. task_id now; get_task returns prompts[], engines[], brands[], rows[] (prompt, engine, model, answer, mentions[] (brand, mentioned, position, cited), citations[] (position, url, domain, title), answered_at) and errors[] for cells that failed. answer null = the engine showed no AI answer. chatgpt and gemini are what their apps show a person, model chosen by the app; claude and perplexity come from their model APIs. Answers are live and non-deterministic; results are kept 30 days and never cached.
Cost: per prompt, 6 credits each for claude and perplexity, 2 each for chatgpt, gemini, ai_overview and ai_mode. Default 1 prompt on the five default engines = 18 credits. A cell that fails is not charged.
| Parameter | Default and notes |
|---|---|
prompts[] | Required, max 10, each max 500 characters |
engines[] | Default chatgpt, claude, gemini, perplexity, ai_overview; also ai_mode |
brands[] | Names or domains to detect, max 10 |
location | "United States" |
language | "en" |
Also takes max_credits, dry_run: see common parameters.
{
"prompts": [
"best crm for startups"
],
"brands": [
"HubSpot",
"pipedrive.com"
]
}#Search AI prompts
aeo_search_prompts
Prompts people ask an AI engine (ChatGPT or Google AI Overview) about a topic or brand, from the provider's index of observed answers. Not keywords.
Use when: "what do people ask ChatGPT about X", "which prompts mention our brand", building an AI visibility baseline.
Not for: Google keywords and volumes, use seo_search_keywords. What the AI engines answer right now, use aeo_run_ai_answers. Web pages to read, use web_search_pages.
Returns: List. rows[]: prompt, ai_search_volume (a People Also Ask proxy, not query logs), engines[], mentions_brand (a domain input is cited, a keyword input appears in the answer), cited_domains[], answer_preview, last_seen.
Cost: 30 + 30 per 100 rows. Default 50 rows = 45 credits. Cached 7 days.
| Parameter | Default and notes |
|---|---|
keyword or domain | One required |
engine | "chatgpt" | "ai_overview", default chatgpt |
location | "United States" |
language | "en" |
limit | 50, max 500 |
Also takes cursor, provider, max_credits, dry_run: see common parameters.
{
"domain": "example.com",
"limit": 50
}#Get AI readiness for a site
aeo_get_site_readiness
Whether a site is set up for AI answer engines, from about seventeen live fetches of its origin, free. Checks what the engines document as gating their answers: robots.txt access for every known AI crawler (search, user fetch, training), CDN or WAF rules that turn away the answer crawlers' user agents before robots.txt is read, content present in the raw HTML without JavaScript on the homepage and on one page sampled from the sitemap, noindex and snippet directives, then freshness signals, redirect chains, sitemap, title and description, structured data, and llms.txt.
Use when: "is our site ready for AI search", "do we block GPTBot", "are we blocking ChatGPT at Cloudflare", "do we have an llms.txt", before an AI visibility push.
Not for: what the engines answer, use aeo_run_ai_answers. A full technical audit, use seo_run_technical_crawl. One page's on-page tags, use seo_get_page.
Returns: Record. checks[] (check, ok, tier, detail, source) with failing checks first. tier says how much a check is worth: blocks_citations is documented by an engine, evidence_backed is measured, hygiene is standard practice, policy is a legitimate choice that never fails, unproven is reported but never fails on absence (llms.txt, schema presence). Plus robots_txt (ai_bots[] with kind and honours_robots, sitemaps, content_signal), edge (probes[] per answer crawler user agent), homepage (status, response_ms, word_count and js_shell from the raw HTML, canonical, robots_meta, x_robots_tag, schema_types, same_as, date_modified, last_modified_header), sample_page (the same rendering and date fields for the first content URL in the sitemap, null when there is none), markdown (whether the origin answers Accept: text/markdown with the content, which passes the JavaScript check), redirects[], sitemap, llms_txt (present, issues[]), llms_full_txt. No crawl, no LLM call.
Cost: 0 credits, rate limited. Cached 1 hour.
| Parameter | Default and notes |
|---|---|
target | Required, a domain or URL; fetches go to its origin |
Also takes max_credits, dry_run: see common parameters.
{
"target": "example.com"
}