It is measuring whether, where, and how often ChatGPT mentions your brand in answers to the prompts your buyers ask, and whether it cites your website as a source. Because answers vary by location and run, trackers repeat each prompt from fixed locations on a schedule.
ChatGPT Rank Tracking: How to Track Where Your Brand Appears in ChatGPT, by Country
ChatGPT rank tracking means measuring whether your brand appears in ChatGPT's answers to the questions your buyers ask, where it appears in the list, and which sources ChatGPT cites. Unlike a Google ranking, there is no fixed position: answers change with the user's location, the device, and from one run to the next. So a useful tracker sends the same prompts from the same places on a schedule, and scores each answer the same way.
Massive's AI chat endpoint does the sending: it returns ChatGPT's completion, its sources, and the search queries it ran, from a real device in the country and city you choose (Massive Docs). This guide shows how to build a ChatGPT rank tracker on it, with code we tested.
Key Takeaways
- Track three numbers per prompt and location: mention rate, position (order of first mention among competitors), and citation of your domain in the sources.
- Massive's
/aiendpoint takes apromptup to 2,047 characters, pluscountry,subdivision,city, anddevice. It returns thecompletionandsourcesas HTML, and, for ChatGPT, afanoutsarray of the searches the model ran. - Set
expiration=0when you want a fresh answer. The default is a cached completion up to 1 day old. - Location matters. In a June 2026 Massive study of 270 localized queries across five countries, Gemini refused gambling questions from UK and German locations while answering them elsewhere.
- Repetition matters too. SparkToro found less than a 1 in 100 chance that an AI returns the same list of brands in two responses, so track shares of runs, not single answers.
- The same endpoint also supports
geminiandperplexitymodels, so one tracker can cover several assistants.
What is ChatGPT rank tracking?
It is the AI-answer version of rank tracking in search. You pick the prompts that matter, such as "best CRM for a 10-person sales team," and record how ChatGPT answers them over time. Most teams track three things:
The fanouts array adds a fourth signal. It lists the search queries ChatGPT ran before answering, so it shows which searches your content needs to win. Our feature spotlight on the AI chat endpoint explains fanouts in more detail.
Why does ChatGPT rank tracking need a location?
Because ChatGPT answers differ by where the user is. We tested this on our public playground and wrote it up in Does ChatGPT give different answers by country?. In a separate June 2026 study, we sent 270 localized queries to ChatGPT, Gemini, and Microsoft Copilot from five countries. Gemini refused gambling questions from UK and German locations while answering them elsewhere (Massive).
If your tracker runs from one server in one data center, it measures one location, and possibly not one your buyers are in. Massive sends each prompt through a real consumer device in the location you set. If country is left unset, the docs say a random country is used, so set it on every request you want to compare over time.
A fair question is whether an API answer matches the app. In a separate test across 30 brand categories, /ai with model=gemini produced a brand ranking statistically indistinguishable from the signed-in Gemini app on 26 of 30 topics (Massive). That test used Gemini. We have not run the same comparison for ChatGPT yet, so spot-check the app for your most important prompts.
How do you track ChatGPT rankings with Massive's AI chat endpoint?
Send a GET request to /ai on the Web Render host with your API token. The parameters below come from the AI chat docs:
Here is the request as a small Python function. It asks for a fresh answer from a given country and, optionally, a city:
The 200-second timeout is deliberate. Live completions "take an average of several seconds," but the docs allow up to 3 minutes per call for retries. The JSON response includes completion, sources, ads, and, for ChatGPT, fanouts, along with the country and city used.
How do you score each answer?
The completion arrives as rendered HTML, so convert it to text and look for each brand. The functions below return each brand's position by first mention, and check whether a domain appears in the sources:
For a prompt like "best running shoes for flat feet," rank(answer, ["Brooks", "ASICS", "Saucony", "Nike"]) returns {"Brooks": 1, "ASICS": 2, "Saucony": 3, "Nike": None} when the answer names the first three in that order and skips Nike.
We tested the scoring functions and the request function against a fixture built from the documented response keys. The tests cover case differences, a plural that must not match ("Hokas" is not "Hoka"), a missing completion, subdomains in sources, and a look-alike domain that must not count. All five tests passed. Brands with common-word names need care: add a product name or a domain check so "Apple" the fruit doesn't count.
How do you design the prompt and location matrix?
A tracker is a grid: prompts down one side, locations across the top, repeated on a schedule.
- Write 20 to 50 prompts your buyers actually ask. Mix category questions ("best X for Y"), comparisons ("X vs Y"), and problem questions ("how do I fix Z"). Avoid prompts that name your brand, since those measure recall, not discovery.
- Pick the locations that match your market. Use
countryfor national views andcitywhere local results matter. - Fix a competitor list per prompt. Position only means something against the same set of names each run.
- Repeat each cell. Answers vary between runs: SparkToro found less than a 1 in 100 chance that ChatGPT or Google's AI gives the same brand list twice (SparkToro). Run each prompt and location 3 to 5 times per check and report the share of runs. 50 prompts, 5 locations, and 5 runs come to 1,250 requests per weekly check.
- Store everything. Save the raw completion, sources, and fanouts with a timestamp. You will want to re-score old answers when you add a competitor.
For large grids, send requests with mode=async and a callback URL or Amazon SQS queue. Each async request returns an id; when the callback fires, fetch the completion with GET /ai?id=<id> and score it. A retrieving or failed status means try again later or skip that run. Each request uses credits; see the Web Render pricing page for current rates.
What we saw when we called the endpoint without a token
On October 26, 2026, we sent GET /ai and GET /ai/devices without a token. Both returned 401 Unauthorized with the message "Authorization header must be provided." That is the first error a new integration sees, and it means the header is missing, not that the prompt failed. Once the token is set, the docs say to expect an occasional 503 while the endpoint autoscales, which "should resolve within a minute."
Should you build a ChatGPT rank tracker or buy one?
Buy one if you want dashboards and reporting now. Many AI visibility and answer engine optimization (AEO) platforms exist, and Massive's AI chat endpoint is infrastructure that such platforms can build on. Build one if you need control over the prompts, locations, devices, and raw data, or want AI rank data inside your own warehouse next to search data. Our guide to why AEO is the new SEO covers the strategy side, and the free AEO visibility score gives a quick first read without code.
The bottom line
- ChatGPT rank tracking has no fixed position to read, so track mention rate, position, and citation across repeated runs.
- Set the location on every request. Answers move with it.
- Massive's AI chat endpoint returns the completion, sources, and fanouts from any country or city, so the tracker logic stays a few dozen lines of code.
Sources
- SparkToro, "New Research: AIs are highly inconsistent when recommending brands or products; marketers should take care when tracking AI visibility", January 28, 2026
- Massive Docs, "AI chat", "AI API reference", and "Pricing"
- Massive, "AI Brand Visibility: AI Plays Favorites, It Won't Trash You", June 2026 study (first-party research)
- Massive, "Are API-Based AI Calls a Good Proxy for What Your Users Actually See?" (first-party research)
- Massive, "Does ChatGPT Give Different Answers by Country?" (first-party test)
- Massive, no-token request test of
/aiand/ai/devices, and fixture tests of the code in this post, October 26, 2026 (first-party test)
Frequently Asked Questions
Yes. Massive's AI chat endpoint takes country, subdivision, and city parameters and sends the prompt from a real device in that location. Set the location on every request you plan to compare over time.
Weekly works for most teams, with 3 to 5 runs per prompt and location each time. Answers vary between runs, so a share of runs is more reliable than any single answer.
Fanouts are the search queries ChatGPT ran to build its answer. Massive's endpoint returns them as an array for ChatGPT. They show which searches your content needs to rank for to be used as a source.
Yes. Set model=gemini or model=perplexity on the same endpoint. You get the completion and sources for each, but fanouts are available for ChatGPT only.
