Build or buy AI visibility tracking, with real numbers

The actual API call, what it returns, what a question costs, and the five maintenance problems you inherit. Then the honest case for building it yourself.

7 min readAdarsh Mishra

On this page

The short answer

If you need Google AI Overviews, for one site, and you can write a scheduled job, build it. The provider gives away 5,000 requests a month, which is more than a solo site will ever use, and the call itself is thirty lines of code.

Buy instead when any of these is true: you need ChatGPT or Perplexity as well, you have more than about three sites to watch, you need history and alerting you don't want to maintain, or you need a report a client can read.

We sell one of these tools, so read the build section first and decide before you get to the part where we pitch.

The build, in one API call

Bright Data's SERP API takes a Google search URL and returns parsed JSON. Two query parameters do the work: brd_json=1 asks for structured JSON instead of HTML, and brd_ai_overview=2 asks it to work harder to surface the AI Overview. Both are documented in the SERP API introduction.

const url =
  `https://www.google.com/search?q=${encodeURIComponent(question)}` +
  `&gl=us&hl=en&brd_json=1&brd_ai_overview=2`

const res = await fetch('https://api.brightdata.com/request', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.BRIGHTDATA_API_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ zone: process.env.BRIGHTDATA_ZONE, url, format: 'raw' }),
  signal: AbortSignal.timeout(45_000),
})

const data = await res.json()
const cited = (data.ai_overview?.references ?? []).map(
  (r) => new URL(r.href).hostname.replace(/^www\./, '')
)

What comes back, when Google served an overview:

  • ai_overview.texts[], the answer Google wrote, in fragments you join.
  • ai_overview.references[], each with href, title and source. These are the real citation URLs, which is the entire point.
  • organic[], the normal ten blue links, useful for checking whether ranking and citation agree. They often don't, and how Google AI Overviews choose citations covers why.

When Google served no overview, ai_overview is simply absent. That is not an error and you have to decide what it means, which is the first of the problems below.

What it costs

Volume Requests per month Provider cost
20 questions, weekly 80 $0 (inside the free allowance)
25 questions, daily 750 $0 (inside the free allowance)
100 questions, daily 3,000 $0 (inside the free allowance)
200 questions, daily 6,000 $1.50 for the 1,000 over

Bright Data publishes $1.50 per 1,000 requests and 5,000 requests a month free on the AI Overview product page. For a solo site, the data is free. Read that row honestly before paying anyone, including us: the raw material behind a $29 to $99 monthly plan is, at your volume, a free tier.

So the build decision is not about data cost. It is entirely about what you inherit.

The six things you inherit

1. Deciding what an empty answer means. Bright Data's docs put AI Overview presence at roughly 15 to 20 percent of queries, though we measured four of four on commercial buyer questions in our own testing, which is a sample of four. Either way your dataset has holes. A question with no overview is not a miss: there was nothing to be cited in. If you score it as a zero, your visibility number drops whenever Google changes its mind about showing an overview, and you will spend a week chasing a change you didn't cause.

2. Writing questions people actually ask. This takes longer than the API. Our first version stored keyword permutations, things like "seo tools ai" and "free seo tools ai", and asked Google those. Nobody asks an assistant a keyword. Real questions are buyer-shaped: "what is the best X for a small team", "is X worth it", "X alternatives". Rewriting that generator took longer than every line of API code in this post.

3. Reference titles carry Google's UI text. The title field on a reference often has interface chrome appended, and it's localised to whatever exit IP the request used. We have seen "Open in new tab" in English, Vietnamese and Spanish arrive inside titles. If you display those raw, your report looks broken. You will write a string-trimming rule and you will refine it more than once.

4. A schedule that does not fire. Our background collector wrote rows at 14:47 one day and never again, while tasks we had already paid for piled up at the provider. Nobody noticed for a while, because a job that silently stops looks exactly like a category where nothing changed. Anything that must happen needs a second path: a provider callback, an event trigger, or a bounded check at the moment someone opens the page. Writes need to be idempotent upserts so the two paths cannot fight.

5. Storage that survives a retry. Every retry, every double-fire of a cron, every manual re-run writes again. You need a unique key and an upsert from the first commit, not after you notice duplicates in a chart.

6. Pacing the requests. A single AI Overview fetch is slow, because the provider is loading a real Google results page behind a real exit IP. We set a 45 second timeout and run four questions at a time, which keeps a 25 question scan under a minute without hammering the endpoint. Fire all 25 at once and you'll collect timeouts; fire them one after another and a scan takes several minutes, which is long enough that someone closes the tab. One failed question also has to lose only itself, not the 24 you already paid for, so the error handling belongs inside the loop.

None of these is hard. All six are real, all six cost an afternoon or more, and all six will be yours forever.

Build it if this is you

  • One site, or two. The marginal cost of the second site is a config row.
  • You only need Google AI Overviews. Adding ChatGPT and Perplexity means separate APIs, separate response shapes, separate costs and separate failure modes. That is where the afternoon becomes a fortnight.
  • You already run scheduled jobs in production and have somewhere to put a table.
  • You want the raw citation URLs in your own database, to join against your own analytics. No tool will give you that as cleanly as your own schema.
  • You enjoy this. Genuinely. It is a satisfying weekend project with a working dashboard at the end.

If you're nodding at four of those five, build it. You were never going to buy a tool for this, and the honest thing for us to say is that a $19 subscription is worse value to you than one Saturday.

Buy it if this is you

  • ChatGPT, Perplexity, Copilot or Gemini are on your list. We cover none of them, and the tool comparison has six products that do, starting at $29 a month.
  • You have clients. Five sites means five schedules, five sets of questions and one person to blame when a weekly report doesn't arrive.
  • You need a report to send someone. Building the fetch is a day. Building a client-ready reporting layer is not a day.
  • Your time has a price and you can multiply. Ten hours of build plus an hour a month of maintenance, against $19 to $99 a month, is arithmetic you can do in your head.
  • Something must be watched over months. Continuity is the actual product. Anyone can take one reading.

What we sell, plainly

SEOBuilder asks seven answer engines: Google AI Overviews, Google AI Mode, ChatGPT, Perplexity, Gemini, Microsoft Copilot and Claude. We put buyer-intent questions in your category to each of them, record which domains every answer cited, and tell you whether you were among them and who was named instead. Claude answers through Anthropic's API rather than claude.ai, which is the same model and the same web search but not the consumer app. Solo is $19 a month, the free account gets one scan of ten questions with no card, and Lifetime is $499 once with a real cap of 10 seats.

What you are paying for is the five problems above, already solved, plus the history you don't have yet. What you are not paying for is data you could get free at your volume, and we would rather say that here than have you work it out after signing up.

If you want the method rather than either product, how to measure AI visibility walks through doing it by hand, and what SEO data actually costs has the measured per-call prices behind every tool in this category. Google's own AI features guidance is worth reading first either way, because it settles the question of whether this is a new discipline. It isn't.

Start with 20 questions, weekly, stored in a table with a unique key. That is inside the free allowance, it takes an afternoon, and after a month you will know whether the reading is worth paying anyone for.

Filed under

  • build vs buy
  • ai visibility
  • bright data
  • api
  • economics

Last updated 28 August 2026

Questions

How hard is it to build AI Overview tracking yourself?
The API call is about thirty lines. One POST to Bright Data with a Google search URL carrying brd_json=1 and brd_ai_overview=2 returns the AI Overview text and the sources it cites. The hard part is everything around it: writing questions a buyer would actually ask, storing history, and running the job on a schedule that really fires.
What does it cost to run your own AI visibility tracking?
Bright Data's SERP API lists $1.50 per 1,000 requests with 5,000 requests a month free. Twenty questions checked weekly is 80 requests a month, which sits inside the free allowance. At that volume the provider cost of building it yourself is zero.
When is buying a tool the better decision?
When you need engines other than Google, when you have several clients or sites, when someone else should own the pager for a job that must run weekly, or when you need a report you can hand to a client without building a reporting layer.
Does SEOBuilder track ChatGPT or Perplexity?
Yes. A scan asks seven answer engines the same buyer questions: Google AI Overviews, Google AI Mode, ChatGPT, Perplexity, Gemini, Microsoft Copilot and Claude. Claude answers through Anthropic's API rather than claude.ai.

Related reading

Check the page, not the hunch

Is your page ready to be the source?

SEOBuilder asks 7 answer engines the questions your buyers ask and reports which answers cite you, which cite a competitor, and which cite nobody. Free to start, no card.

Or ask about one page right now: the free AI visibility check, no account and no card.

Run your first scan