Why Canonry Uses Direct Provider APIs for AI Visibility

Arber Xhindoli · September 11, 2026 · 4 min read

Canonry calls model providers' APIs directly so we can control the request and preserve the evidence behind each answer. A cheaper answer is less useful if we cannot explain why your brand appeared or disappeared.

Three routes, different evidence

The same model name can hide different search tools, request settings, and response formats.

Direct API
  1. Canonry
  2. Provider API
  3. Answer + native evidence
Model router
  1. Tracking tool
  2. Router
  3. Provider API
  4. Mapped response
Browser scrape
  1. Tracking tool
  2. Consumer app
  3. Visible answer + links
Simplified collection paths. Each route needs its own checks for the evidence it preserves.
  • Direct integrations expose the provider's supported controls and response fields.
  • Routers simplify access and can improve availability. The integration must verify what survives translation and fallback.
  • Browser scraping records one session in the consumer app. The visible page may omit underlying search details.

A direct API does not reproduce the consumer app. Canonry has a separate browser adapter for that surface.

Where cheaper access can weaken a report

A routing decision can affect more than the bill:

  • A fallback can change which provider serves the request.
  • An unsupported parameter can be ignored.
  • A different search backend can change the sources available to the model.
  • A simplified response can lose detail needed to explain a result.

OpenRouter documents provider selection, fallbacks, and parameter support. Its search integration supports native search for some models and external search for other configurations.

Routers can preserve useful evidence. The problem is assuming equivalence without checking. If a service cuts costs by changing the model or search behavior, its old and new scores need a fresh comparison baseline.

The same applies to scraping: a dataset containing only answer text and visible links cannot explain search behavior it never recorded.

A retrieved page is not always a citation

Imagine a model searches for roofing companies, finds several pages, and uses only one to support its answer. The distinction looks like this:

01Search

The model issues a roofing query.

02Retrieve

Several pages become available.

03Support

A source supports an answer passage.

04Cite

The final answer references that source.

Illustrative search sequence. Retrieved pages can be omitted from the final answer.

Canonry keeps these signals distinct:

  • A mention means the answer names the brand.
  • A retrieved source means a page appeared in the search evidence.
  • A citation connects a source to the answer, using the evidence that provider returns.

For Gemini, we preserve source chunks, answer-support mappings, and issued search queries. Citation selection prefers chunks referenced by the support mappings. Counting every retrieved page as a citation can inflate the result.

What each integration retains

ProviderEvidence we preserveParsing detail
GeminiAnswer, source chunks, support mappings, search queriesPrefer sources tied to answer passages.
OpenAIAnswer, URL annotations, search queriesSearch-tool source lists alone are not final citations.
ClaudeAnswer, final-text citations, search queriesSearch-tool errors are failures, not silent misses.
PerplexityAnswer and source objects, with citation-list fallbackNo documented returned search-query telemetry.

Missing evidence also needs a label:

  • No returned search queries does not prove that no search happened.
  • A failed search does not prove that the brand was absent.
  • Discarded support mappings cannot be reconstructed from a URL list.

This is the granularity we need when investigating a change in visibility.

Location is a request setting worth checking

For a Phoenix roofing company, the report should explain how Phoenix entered the request.

Canonry integrationHow location is supplied
OpenAIStructured user_location on the search tool.
ClaudeStructured user_location on the search tool.
GeminiLocation context added to the prompt.

These methods have different limits. Changing the location method changes the test setup; neither method guarantees every local buyer sees the same answer.

What we pay to preserve

We maintain separate integrations because we need to:

  • Choose a model that supports the required search behavior.
  • Retain answer text and available source evidence.
  • Record model identity and document location handling.
  • Test citation parsing, missing fields, and provider errors.
  • Balance token costs, search costs, latency, and quotas so measurements can be repeated.

A successful text completion does not establish that all of this works. Our model-selection criteria cover the complete request and response.

Direct APIs take more integration work. We accept that cost so an agency can inspect the evidence before asking a client to change their website.

Why does Canonry use direct provider APIs for AI visibility?

They let us control provider-specific requests and preserve the available answer, search, citation, and model evidence needed to investigate visibility changes.

Are model routers always less accurate than direct APIs?

No. Routers can preserve useful evidence. Each integration needs checks for request translation, fallbacks, search behavior, and missing fields before its measurements can be treated as equivalent.

Does a direct API show exactly what a customer sees in ChatGPT or Gemini?

No. APIs and consumer apps are different surfaces. Canonry uses a separate browser adapter to observe a particular browser session.

Does Canonry apply location the same way across providers?

No. OpenAI and Claude use the search tool's structured user_location field. Gemini receives location context in the prompt. Neither guarantees every local buyer sees the same answer.

Next

Start with the free onsite technical audit.

Get a technical baseline, then work with Canonry Managed when you want strategy and execution from one team.

Run free onsite technical audit
Why Canonry Uses Direct Provider APIs for AI Visibility | Canonry