AEO Toolkit
DataForAEO · by Advance Labs

The data layer for AI search

How often AI assistants read your pages, what they answer, whom they cite, and how much demand there is for a keyword. Measured where it can be, labelled where it is modelled, as one API.

Request
POST /api/collect/ai-bots
Authorization: Bearer aeoc_…

{ "events": [{
    "ua":   "…; ChatGPT-User/1.0; +https://openai.com/bot",
    "path": "/pricing",
    "ip":   "104.210.139.200"
}] }
Response
202 Accepted
{ "stored": 1, "ignored": 0 }

→ app_ai_bot_hits
{ "day": "2026-11-12", "path": "/pricing",
  "bot": "ChatGPT-User", "kind": "user",
  "verification": "verified", "hits": 1 }

01 · In figures

15
AI agents classified
lib/ai-bots/classify.ts
6
of them fetch because a person asked
kind = user
3
vendors checked by published IP range
lib/ai-bots/verify.ts
3
AI engines asked every week
lib/visibility/engines.ts
26 wk
keyword history on day one
Bing GetKeywordStats
0
IP addresses stored
schema-app-collector.sql

02 · Datasets

Five datasets, one key

Each line says what it answers, where the data comes from, and whether you can use it today.

CMeasured AI demand

Live

How often AI assistants read a page because a person asked them something, per page per day.

A collector on participating sites; each hit checked against the vendor’s published IP ranges.

day · path · bot · kind · verification · hits

EAI keyword volume

Building

Weekly Bing search volume for a keyword, and an estimate of AI-assistant demand for it.

Bing Webmaster keyword stats (measured) × intent share (modelled, labelled as an estimate).

keyword · market · week · bing · ai_estimate

AAI answers and citations

Building

What each engine answers for a prompt, which brands it names, which URLs it cites and at what rank.

Live calls to 3 engines, the same pipeline as the weekly AEO Toolkit tracker.

prompt · engine · model · brands · citations[rank, url]

BCitation index

Building

Which domains and pages get cited for a topic, and how that share moves week to week.

Every answer above, combined across workspaces. Published only as aggregates over 5 or more.

topic · domain · share · rank distribution · week

DAI referrals

Planned

Visits that arrive from chatgpt.com, perplexity.ai, gemini, copilot and claude.ai. Paired with C, the click-through rate from AI answers.

GA4, through the site owner’s own connection.

week · referrer · sessions · landing page

03 · Method

Measured, verified, or labelled

When someone asks ChatGPT, Claude or Perplexity a question and the assistant reads a page to answer it, the site serves a request from ChatGPT-User, Claude-User or Perplexity-User. Each one is a person’s question landing on that page. We count them, separately from search-index refreshes and training crawls.

A User-Agent is a claim, so the IP behind it is checked against the vendor’s published ranges. Every count carries verified, unverified or unknown, and every modelled number carries the word estimate.

advancelabs.dev · first hours of collection · 2026-11-12

BotKindHits
PerplexityBotsearch10
Amazonbotsearch8
ChatGPT-Useruser3
OAI-SearchBotsearch2
GPTBottraining1
Bytespidertraining1
Meta-ExternalAgenttraining1

One site, a few hours, collected before IP checks went live, so every row is unknown. Shown as a sample of the shape, not a market figure.

04 · Collector

Free for your site

A few lines in your Next.js proxy or a Cloudflare Worker. It sends only AI-bot requests, after the response, so pages never wait. You see your own pages’ AI demand in the AEO Toolkit dashboard, and the anonymous aggregate feeds the index.

proxy.js (Next.js)
export function proxy(req, event) {
  const ua = req.headers.get('user-agent') ?? '';
  if (!AI_BOTS.test(ua)) return;
  const events = [{
    ua,
    path: req.nextUrl.pathname,
    ip: req.headers.get('x-real-ip'),
  }];
  event.waitUntil(fetch(COLLECT_URL, {
    method: 'POST', headers,
    body: JSON.stringify({ events }),
  }));
}

05 · Questions

Is AI search volume measured or modelled?

Both, and every number says which. Bot fetches (C) are measured: each one is a request a site served. Keyword AI volume (E) is modelled from Bing volume and is labelled an estimate. No AI company publishes query volume, so anyone selling it as measured is estimating too.

How do you know a hit is really ChatGPT?

A User-Agent can be faked, so each hit from OpenAI, Anthropic or Perplexity is checked against the IP ranges those 3 vendors publish, and counted as verified, unverified or unknown. Bots whose vendors publish no list stay unknown.

What does the collector store?

Daily counts per page, bot, kind and verification. No IP addresses, no query strings, no cookies and no human traffic: the site-side snippet only sends requests whose User-Agent names an AI bot.

Is DataForAEO affiliated with DataForSEO?

No. DataForAEO is built and run by Advance Labs Inc. (London, Ontario) on the AEO Toolkit platform. It is not affiliated with, endorsed by or connected to DataForSEO OÜ.

What does it cost?

API access will be pay per request, prepaid, with a ceiling you set. Installing the collector on your own site is free, because every site that runs it makes the dataset better. Prices are not published yet; request access and we will send them.

DataForAEO is a product of Advance Labs Inc., 92-971 Adelaide St S, London, Ontario N6E 2H3, Canada.