AI Model Comparison API: visibility, rank and citations on 6 engines
The AI Model Comparison API scores the same prompt set engine by engine and returns one row per model: visibility, average ranking, citation rate, share of voice and the number of responses behind each figure. It shows which engine names a brand often and which one leaves it out.
Updated
- ChatGPT
- Perplexity
- Google AI Mode
- Claude
- Microsoft Copilot
- Grok
Playground
Loopwork's visibility ranges from 31.7% on Grok to 71.2% on ChatGPT
The AI Model Comparison API returns one row per model for the entity you pick. In this sample, Loopwork is named in 71.2% of ChatGPT answers and 31.7% of Grok answers to the same prompts, a 39.5-point spread. Switch the entity or the market and the rows change with it; the metric chip sets the figure the spread compares.
POST /v1/models/platform-details
metric
Spread across models
39.5 pts
between the best and worst engine for Loopwork
curl -X POST https://api.apiforgeo.com/v1/models/platform-details \ -H "Authorization: Bearer $API_FOR_GEO_KEY" \ -H "x-project-id: $PROJECT_ID" \ -H "Content-Type: application/json" \ -d '{ "entities": [ "Loopwork" ], "country": "US" }'
import os, requests API = "https://api.apiforgeo.com/v1" H = {"Authorization": f"Bearer {os.environ['API_FOR_GEO_KEY']}", "x-project-id": os.environ["PROJECT_ID"]} r = requests.post(f"{API}/models/platform-details", headers=H, json={ "entities": [ "Loopwork" ], "country": "US" }, timeout=30) print(r.json())
const API = "https://api.apiforgeo.com/v1"; const headers = { Authorization: `Bearer ${process.env.API_FOR_GEO_KEY}`, "x-project-id": process.env.PROJECT_ID, "Content-Type": "application/json", }; const post = (path, body) => fetch(API + path, { method: "POST", headers, body: JSON.stringify(body) }).then((r) => r.json()); console.log(await post("/models/platform-details", { "entities": [ "Loopwork" ], "country": "US" }));
| Model | Visibility | Share of voice | Avg rank | Citation rate | Responses |
|---|---|---|---|---|---|
| chatgpt | 71.2% | 26.4% | 1.7 | 62.5% | 1240 |
| perplexity | 64.8% | 22.1% | 2.2 | 98.1% | 1180 |
| google-ai-mode | 58.3% | 19.7% | 2.6 | 88.4% | 1102 |
| copilot | 46.1% | 15.2% | 3 | 79.3% | 940 |
| claude | 39.4% | 12.6% | 3.4 | 41.2% | 880 |
| grok | 31.7% | 9.8% | 3.9 | 55.6% | 610 |
{
"scope": {
"entities": [
"Loopwork"
],
"country": "US"
},
"results": [
{
"model": "chatgpt",
"provider": "openai",
"visibility": 71.2,
"shareOfVoice": 26.4,
"avgRanking": 1.7,
"citationRate": 62.5,
"totalResponses": 1240
},
{
"model": "perplexity",
"provider": "perplexity",
"visibility": 64.8,
"shareOfVoice": 22.1,
"avgRanking": 2.2,
"citationRate": 98.1,
"totalResponses": 1180
},
{
"model": "google-ai-mode",
"provider": "google",
"visibility": 58.3,
"shareOfVoice": 19.7,
"avgRanking": 2.6,
"citationRate": 88.4,
"totalResponses": 1102
},
{
"model": "copilot",
"provider": "microsoft",
"visibility": 46.1,
"shareOfVoice": 15.2,
"avgRanking": 3,
"citationRate": 79.3,
"totalResponses": 940
},
{
"model": "claude",
"provider": "anthropic",
"visibility": 39.4,
"shareOfVoice": 12.6,
"avgRanking": 3.4,
"citationRate": 41.2,
"totalResponses": 880
},
{
"model": "grok",
"provider": "xai",
"visibility": 31.7,
"shareOfVoice": 9.8,
"avgRanking": 3.9,
"citationRate": 55.6,
"totalResponses": 610
}
]
} | Field | Type | Description |
|---|---|---|
model | string | Model identifier, e.g. chatgpt or google-ai-mode. |
provider | string | Vendor behind the model, for grouping. |
visibility | float | Share of this model's responses mentioning the entity. |
shareOfVoice | float | Entity mentions ÷ all mentions within this model. |
avgRanking | float | Mean position of the entity in this model's answers. |
citationRate | float | Share of this model's answers that cite at least one source. |
totalResponses | int | Responses stored for this model in scope, the row's denominator. |
availableCountries[] | array | Countries the model may be queried in, from reference data. |
Three companion endpoints share this shape: top entities per model, top sources per model and a bucketed
metric timeseries per model. Availability is per model and per country: check a combination
against GET /v1/reference/model-restrictions before spending credits.
Get started
Four setup steps lead to the first engine-by-engine read
The AI Model Comparison API reads the runs a project has stored, split by model. Getting there takes four steps: create the project, generate the key in the app, import the prompts and run them on the engines to compare. The comparison read is not billed, so the rows can be refreshed whenever a new run lands.
-
Step 1
Create a project
Create an organisation and a project, one project per brand or per client.
-
Step 2
Generate a key
Generate an API key in the app; keys are managed there, never through the API.
-
Step 3
Import your prompts
Import your prompts and tags with a single POST /v1/queries.
-
Step 4
Run and read
Trigger an execution, poll the job, then read any analytics endpoint.
Comparison
Engine coverage is reference data in 1 of the 4 approaches
The AI Model Comparison API publishes which engines and countries can be queried as reference data, then scores every engine with the same definitions. An AI scraping API varies by provider, a GEO dashboard tool works from a fixed list, and an in-house build has to follow each engine's interface changes on its own.
| Capability | API for GEO | AI scraping API | GEO dashboard tool | In-house build |
|---|---|---|---|---|
| Model & locale coverage as reference data | Yes | Varies | Fixed list | Your problem |
| Average position in answer | Yes | No | Yes, closed | Build it |
| Citations with domain + category | Yes | URLs only | In the UI | Build it |
| Ongoing maintenance when engines change | Ours | Partly theirs | Theirs | Yours |
Use cases
Per-engine data feeds 3 decisions, one per audience
The AI Model Comparison API answers a practical question for each audience: which engine tab to show customers, which engines a client should pay to track, and in which markets an engine drops the brand. Each card opens the full pattern, with the endpoints it combines.
A per-engine tab in your product
One call fills a table with a row per engine for the customer's brand. Each row carries its response count, so the table shows how much data stands behind each engine.
AgenciesEngine choice backed by numbers
Each engine added to a project multiplies the credits per prompt. The comparison shows a client which engines carry their visibility before the budget covers all six.
E-commerce & brandsMarkets where an engine drops you
The same product question can hold up on one engine in the US and fade on another in France. Reading each market in turn shows where the gap opens.
Pricing
AI Model Comparison API pricing runs from $0.013 to $0.007 per credit
The AI Model Comparison API reads runs at no charge; the credits go to the runs themselves, one per prompt, per model, per locale. Comparing six engines on the same prompts therefore costs six times one engine, which is why the comparison is worth reading before adding every model to a project.
Price per credit, set by the month's total volume.
200 prompts × 3 models × 30 runs = 18,000 credits a month, $234 at $0.013
FAQ
Engine comparison, answered
What does one call return?
The AI Model Comparison API returns one row per model with visibility, share of voice, average ranking, citation rate and the number of responses behind them. Companion calls return the top entities and top sources of each model, and a timeseries of one metric per model.
Which engines can I compare?
The AI Model Comparison API covers six engines: ChatGPT, Perplexity, Google AI Mode, Claude, Microsoft Copilot and Grok. Availability depends on the model and the country, so GET /v1/reference/model-restrictions lists the combinations that can run before any credit is spent.
Does comparing more engines cost more?
The AI Model Comparison API bills the runs it reads, never the read itself. Each engine added to a project multiplies the credits per prompt, so 200 prompts on six engines use twice the credits of the same prompts on three. Reading the comparison first shows which engines earn their place.
Can I compare competitors engine by engine?
The AI Model Comparison API takes any tracked entity, competitors included. Running the same call for Loopwork, Cadence and Northbeam shows on which engine each brand leads and where the brand trails a rival it beats elsewhere. Those engines are where the next content brief should start.
Can I resell engine comparison data?
The AI Model Comparison API allows resale and white-label use like every family. The payload carries no branding and each end customer can have an isolated project, so a platform can show a per-engine tab under its own name and an agency can bill the analysis as its own work.