CitationDesk

Guide · 9 min read

How to track citations across ChatGPT, Claude, Perplexity, Gemini.

What it takes to programmatically poll the four major LLM surfaces, capture citations with full provenance, and turn the raw responses into an auditable citation graph.

What this guide is: a reference architecture. CitationDesk is a free, point-in-time readiness audit — it does not run continuous polling, and there is no CitationDesk monitoring product or paid tier. This page explains how continuous multi-LLM citation tracking actually works, so you can evaluate a dedicated monitoring tool — or build your own — with your eyes open.

Why these four surfaces

Most AI-search citation tracking conversations focus on ChatGPT and Perplexity. A serious tracker treats all four as primary, because the AI-search market is genuinely four-horse:

  • ChatGPT — largest user base; cites via SearchGPT integration + Bing index
  • Claude — fastest-growing; cites via Anthropic's own retrieval + sometimes browsing
  • Perplexity — citation-native; every answer includes inline sources
  • Gemini — Google-owned, integrated with Search + Google AI Overviews

Polling only one or two surfaces means missing significant signal. Brand mentions can be citation-rich on Perplexity but absent on Claude (or vice versa) — knowing which surface treats you as a source is itself actionable intelligence.

Perplexity — API primary path

Perplexity exposes a paid API (Sonar / Pro tiers, ~$0.005/call at current pricing). The API returns answers with structured citation arrays — model + query + cited URLs + paragraph quoted. This is the cleanest surface to poll.

The pattern: send each test query to the API, parse the citations field, match against the tracked domain, record the position of the citation in the response, and snapshot the surrounding paragraph for provenance.

Claude — Anthropic API + claude.ai fallback

Anthropic's API serves Claude's canonical text responses with citation support via tool use. For surfaces that require the browsing tool, trackers fall back to authenticated claude.ai session-based polling — which preserves the same URLs / paragraphs structure but adds session-management overhead.

Record the model version (Opus / Sonnet) alongside each result, since responses can vary materially between versions.

ChatGPT — browser automation primary

OpenAI's public API doesn't cleanly expose the SearchGPT-integrated citations that appear in chat.openai.com. The usual workaround is authenticated browser automation against the canonical chat surface: capture the response, then parse the cited URLs.

An API-based path is partially possible — some of the citation surface is API-available, some still requires browser automation. Any tool you evaluate should be able to tell you which method it uses per engine, because it determines how closely the tracked answer matches what a real user sees.

Gemini — Vertex AI + gemini.google.com

Google Vertex AI provides programmatic access to Gemini models. For grounded-with-search citations, Vertex AI with the search grounding tool enabled is the clean path. For surfaces that require gemini.google.com web-app behaviour, the fallback is authenticated browser automation, similar to ChatGPT.

The provenance model

This is the part that separates a real citation tracker from a screenshot. Every recorded citation should carry:

  • Timestamp (ISO 8601 UTC)
  • Model name + version (e.g. claude-3-7-opus-20260301)
  • Query text (verbatim what we sent)
  • Response excerpt (the paragraph containing the citation)
  • Cited URL (the exact URL the LLM linked to)
  • Position in response (paragraph 1, 2, etc.)
  • Other URLs cited in the same response (your competitors, where applicable)

Provenance is what lets you audit a reported citation instead of trusting it. When you evaluate a monitoring tool, ask whether you can export these rows — CSV or API — because a citation you cannot inspect is a number, not evidence.

Choosing a polling cadence

Cadence is the main cost driver in every tool's pricing, because each poll is a paid API call or an automated browser session. The trade-off is simple:

  • Weekly — cheapest. Fine for stable evergreen pages where you just want a trend line.
  • Daily — the common default. Catches a drift event within 24 hours instead of 7 days.
  • Every few hours — worth it for pages tied to news cycles or active competitive displacement.
  • Hourly or faster — rarely justified; LLM answers usually don't change that fast.

Higher cadence catches drift sooner. When ChatGPT stops citing a page mid-week because a competitor was elevated, daily polling notices in 24 hours and weekly polling notices in 7 days. Multiply the cadence by the number of queries and tracked pages and you have the real monthly cost of any tool you are comparing.

Before you pay for any of it: make sure the page is actually citable in the first place. Run the free AI Visibility Score — monitoring a page that AI engines can't parse just buys you a flat line.

Score your own site against this guide.

The free Citation Readiness Score runs every signal from this guide against any URL. ~90 seconds, no signup.