What a closed number costs. Without a fetchable source a claim cannot be verified, so citing it is a risk the reader carries alone. These CiteAngle addresses publish 50 questions, 15 engines and 7 runs behind our panel as data, each row sealed to a registered claim, which is the reason anybody can check us without asking us.
The second reason is about your side, not ours. Without machine-readable evidence, an analyst who wants to verify a market claim has to email a vendor and wait — so most claims never get checked at all, and the loudest number wins. These addresses exist to make that check cost nothing.
Why we publish machine-readable rails at all
The market we measure is the reason. Answer engines assemble what they say about a company out of pages they can parse, and a claim that lives only inside a PDF or a slide behind a form is a claim no engine will ever repeat. That applies to us as much as to anyone. If our figures were unreadable to a machine, we would be selling AI visibility from a site that has none.
It also settles an argument before it starts. When a journalist, an analyst or a buyer wants to check a number we published, they can fetch it — source, as-of date and denominator attached — instead of asking us to confirm our own claim. Every figure quoted anywhere on this site is registered in the claims registry, the aggregates are released as a reusable dataset, and the protocol behind them is on the methodology page. No key, no account, no sales call in the way. Opening our own evidence is the cheapest honest argument we have.
Start at one address
There is a single entrance. /data names the rest of the addresses, so you can follow it without reading this page first. Paste any of them into a browser bar and they render as they are.
| Address | What comes back | Format |
|---|---|---|
| /data | The entrance. Points at the two addresses below | JSON |
| /data/index.json | Index of published work — what was released, when, and where it lives | JSON |
| /data/openapi.json | A description of that index in OpenAPI 3.1 | JSON |
| /datasets/ai-visibility-aggregates.json | Published aggregates — there is also a readable aggregates page | JSON |
| /datasets/ai-answer-surface-aggregates.json | Aggregates by answer surface — there is also a readable surface aggregates page | JSON |
| /rsl.xml | Licensing notice for published research | XML |
| /sitemap.xml | Public pages and their last change dates | XML |
| /en/research/feed.xml | Updates to the English research index | RSS |
The endpoint an agent calls directly
An AI agent can query the same material without a person in the loop. MCP, the Model Context
Protocol, is the open convention between agents and the parties that hold data, and our
endpoint is /mcp.
Calling it
One POST
Send a JSON-RPC 2.0 message to /mcp. It is read-only and stateless, so a
request gets its answer and the exchange is over.
Tools
Five of them
Look up a registered claim, summarise the publication index, look up a definition, read mention rates by surface, and run a structural check on a page you name.
Limits
Open without a key
Thirty calls a minute per address. The one tool that fetches an outside page has its own lower allowance of five a minute.
What the index carries
/data/index.json lists what we have released. Each entry carries the title, the public address, the last change date, and the identifiers of the claims that entry rests on. Look an identifier up in the public claims registry and you get the source type and reference date behind that figure.
The rail carries what is already public on a page. Report contents and raw measurement go to the contracting party — that boundary is written out in the trust center.
Reusing what you find
Published research is free to quote with attribution. In plain words the condition is one line — say where it came from — and /rsl.xml states the same thing in a form a machine reads, referencing the CC BY 4.0 standard licence.
Attribution means the company name and the page address. When you quote a figure, carry the measurement conditions printed beside it — query count, surfaces, repetitions, date — so your reader sees the same scope we did.
How changes are announced
Addresses stay put; content is updated in place. When a page actually changes, its date in /sitemap.xml moves with it, and new research is announced through the RSS feed above. Changes to the shape of the data land first in /data/openapi.json.
If the shape you need is not here, tell us which tool you are wiring it into. Describe the integration and we will come back on it.
Contact usNext — Trust center · Status · Definitions · Claims registry