☰
MARqenticDOCS
⌕Start free
Tools
⌄

AI answer tools

Brand mentions and citations across AI answer engines.

3 tools are implemented in this family. The definitions below come from the service’s actual tool catalog.

Authenticate, inspect the schema, then request an estimate using dry_run where supported. Research can spend workspace credits.

Run prompts on AI engines

aeo_run_ai_answers

Runs prompts on AI engines and reports which brands each answer mentions and which sources it cites: "does ChatGPT recommend us for X", "which sources do AI engines cite for X", a visibility baseline across engines. Slow: returns a task_id at once; read the result with get_task. For prompts people ask use aeo_search_prompts; for Google's blue links use seo_get_serp; for crawler access use aeo_get_site_readiness. chatgpt and gemini are what their consumer apps show a person (the app picks the model); claude and perplexity come from their model APIs with web search on; ai_overview and ai_mode are Google's AI answers. Answers are live and vary run to run. When done, get_task returns rows[] (one per prompt and engine): prompt, engine, model, answer (null = the engine showed no AI answer), mentions[] (brand, mentioned, position among the brands named, cited), citations[] (position, url, domain, title), search_results[] (pages retrieved, with cited; chatgpt only, else null), search_queries[] (web searches run; null when the engine does not report them), named_brands[] (brands ChatGPT tagged, including others'; chatgpt only, else null; it can miss brands, so read the answer). errors[] lists cells that failed. Results are kept 30 days. Cost: Per prompt per engine: claude 15, perplexity 6, chatgpt, gemini, ai_overview and ai_mode 2 each. One prompt on the five default engines = 27 credits. A failed cell is not charged. Never cached.

REST endpoint

POST /api/aeo/tools/aeo_run_ai_answers

Product-credit cost

Per prompt per engine: claude 15, perplexity 6, chatgpt, gemini, ai_overview and ai_mode 2 each. One prompt on the five default engines = 27 credits. A failed cell is not charged. Never cached.

Input JSON schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "prompts": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 500
      },
      "description": "Required. Questions as a person would type them, at most 10, each up to 500 characters."
    },
    "engines": {
      "default": [
        "chatgpt",
        "claude",
        "gemini",
        "perplexity",
        "ai_overview"
      ],
      "description": "Any of chatgpt, claude, gemini, perplexity, ai_overview, ai_mode. Default the first five.",
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "chatgpt",
          "claude",
          "gemini",
          "perplexity",
          "ai_overview",
          "ai_mode"
        ]
      }
    },
    "brands": {
      "default": [],
      "description": "Brand names or domains to detect in every answer. At most 10.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "location": {
      "default": "United States",
      "description": "Location name or code. Default United States.",
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ]
    },
    "language": {
      "default": "en",
      "description": "ISO 639-1 language code. Default en.",
      "type": "string",
      "pattern": "^[A-Za-z]{2,3}(-[A-Za-z]{2,4})?$"
    },
    "idempotency_key": {
      "description": "Retry-safe key: the same key returns the same task.",
      "type": "string",
      "minLength": 8,
      "maxLength": 128
    },
    "max_credits": {
      "description": "Refuse the call with BudgetExceeded if the estimate is higher.",
      "type": "number",
      "minimum": 0
    },
    "dry_run": {
      "default": false,
      "description": "Return only meta with the estimate. Costs nothing.",
      "type": "boolean"
    }
  },
  "required": [
    "prompts"
  ]
}

Find prompts asked of AI engines

aeo_search_prompts

Prompts people ask ChatGPT or Google's AI Overview about a topic or brand, from the provider's index of observed answers. These are prompts, not keywords: for Google keywords use seo_search_keywords; for what engines answer now use aeo_run_ai_answers. Returns rows[]: prompt, ai_search_volume (a People Also Ask proxy, not query logs), engines[], mentions_brand (domain input: the domain is cited; keyword input: the keyword is in the answer), cited_domains[], retrieved_domains[] (read but not cited; chatgpt only), search_queries[] (chatgpt only), named_brands[] (chatgpt only), answer_preview, first_seen, last_seen. Cost: 31 + 31 per 100 rows. Default 50 rows = 47 credits. Cached 7 days.

REST endpoint

POST /api/aeo/tools/aeo_search_prompts

Product-credit cost

31 + 31 per 100 rows. Default 50 rows = 47 credits. Cached 7 days.

Input JSON schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "keyword": {
      "description": "A topic or brand name. Give exactly one of keyword or domain.",
      "type": "string",
      "minLength": 1,
      "maxLength": 250
    },
    "domain": {
      "description": "A domain cited or mentioned in answers. Give exactly one of keyword or domain.",
      "type": "string",
      "minLength": 1,
      "maxLength": 253
    },
    "engine": {
      "default": "chatgpt",
      "type": "string",
      "enum": [
        "chatgpt",
        "ai_overview"
      ]
    },
    "location": {
      "default": "United States",
      "description": "Location name or code. Default United States.",
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ]
    },
    "language": {
      "default": "en",
      "description": "ISO 639-1 language code. Default en.",
      "type": "string",
      "pattern": "^[A-Za-z]{2,3}(-[A-Za-z]{2,4})?$"
    },
    "limit": {
      "default": 50,
      "description": "Max rows. Default 50, cap 500.",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "The next page: meta.cursor from the previous result.",
      "type": "string"
    },
    "max_credits": {
      "description": "Refuse the call with BudgetExceeded if the estimate is higher.",
      "type": "number",
      "minimum": 0
    },
    "dry_run": {
      "default": false,
      "description": "Return only meta with the estimate. Costs nothing.",
      "type": "boolean"
    },
    "idempotency_key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,100}$"
    }
  }
}

Check a site's AI crawler readiness

aeo_get_site_readiness

Whether a site is set up for AI answer engines: robots.txt access for every known AI crawler (search, user fetch, training), CDN or WAF rules that turn answer crawlers away before robots.txt, content in the raw HTML without JavaScript, noindex and snippet limits, freshness dates, redirects, sitemap, title and description, structured data and llms.txt. About 17 live fetches of the site's origin; no crawl and no LLM call. For what engines answer use aeo_run_ai_answers; for a full audit use seo_run_technical_crawl. Returns checks[] (check, ok, tier, detail, source; failing first), robots_txt (ai_bots[], sitemaps, content_signal), edge (probes[] per answer-crawler user agent), homepage and sample_page (status, word_count, js_shell, canonical, robots, schema, dates; sample_page is the first content URL in the sitemap, else null), markdown, redirects[], sitemap, llms_txt, llms_full_txt. Tiers: blocks_citations (an engine documents it blocks answers), evidence_backed (measured), hygiene, policy (a legitimate choice; never fails), unproven (reported; absence never fails). Cost: 0 credits, rate limited. Cached 1 hour.

REST endpoint

POST /api/aeo/tools/aeo_get_site_readiness

Product-credit cost

0 credits, rate limited. Cached 1 hour.

Input JSON schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "target": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "description": "Required. A domain or URL. All fetches go to its origin."
    },
    "idempotency_key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{8,100}$"
    }
  },
  "required": [
    "target"
  ]
}