Perplexity Sonar API Retires September 27: The citations[] → annotations[] Breaking Change
Perplexity's sonar-pro and sonar-reasoning-pro endpoints retire tomorrow. Any code reading citations[] will receive an empty array or throw. The new format is annotations[] with url_citation objects. Migrate now or your citation tracking goes dark.
Perplexity is retiring sonar-pro and sonar-reasoning-pro on September 27, 2026 — that's tomorrow. The base sonar model already moved to the Agent API on September 25. If your GEO monitoring stack, research tooling, or citation-tracking pipeline calls either of these endpoints, it breaks in 48 hours.
This isn't a soft deprecation with a grace period. The endpoints go offline. And the breaking change isn't just the model names — it's the citation response format itself.
What Changed
The old format returned a flat array of source URLs on every response:
OLD — sonar-pro (retiring Sept 27)
{
"citations": [
"https://example.com/source-1",
"https://example.com/source-2"
]
}The new Agent API returns structured annotation objects:
NEW — Agent API (live as of Sept 25)
{
"annotations": [
{
"type": "url_citation",
"url_citation": {
"url": "https://example.com/source-1",
"title": "Page Title",
"date": "2026-09-20",
"last_updated": "2026-09-22"
}
}
]
}Four structural changes at once: the key renamed from citations to annotations, the array now contains objects not strings, each object has a type discriminator field, and the citation data itself is nested inside url_citation. Code that does response.citations.map(url => ...) will receive undefined.
Why It Matters
- Your GEO citation tracking goes dark. If you use Perplexity's API to monitor which sources Perplexity cites in response to queries about your category, the old format will return nothing useful after September 27. You won't know if your content is being cited or not.
- Research pipelines break silently. Tools that pull Perplexity citations to build competitive intelligence or content gap analysis won't throw an obvious error — they'll just return empty citation lists. Silent data loss is worse than a crash.
- The new format is richer — once you migrate. The
url_citationobject addstitle,date, andlast_updatedfields. Post-migration you get more signal per citation: temporal freshness, page title for display, and the date Perplexity last indexed the source. - sonar-reasoning-pro users face an additional decision. The reasoning model had a different latency/cost profile. The replacement path in the Agent API uses a different model identifier. Check Perplexity's migration guide for the exact substitution — there is no 1:1 drop-in for reasoning queries.
What to Do
- Audit every Perplexity API call in your codebase today.
- Search for
sonar-pro,sonar-reasoning-pro, andresponse.citations - Flag any code reading
.citationsdirectly — these are your migration targets - Check any wrapper libraries or LLM gateway SDKs that abstract Perplexity calls — they may not have updated yet
- Search for
- Update model names to Agent API equivalents.
sonar-pro→ check Perplexity Agent API docs for the current identifier (do not guess)- The base
sonarmodel already migrated September 25 — if it still works today, it's on the new endpoint already
- Update your citation extraction logic.
- Replace
response.citationswithresponse.annotations - Extract URLs with
annotation.url_citation.url— not a direct string - Add the
type === "url_citation"filter if you want to handle future annotation types cleanly - Capture
.title,.date, and.last_updatedwhile you're in there — you'll want them
- Replace
- Test against the live Agent API endpoint before September 27.
- The Agent API is live now — you can validate your migration today, not on the day it breaks
- Run a test query and confirm
annotationsis populated in the response - Check that your extraction logic handles zero-annotation responses without throwing
Chad's Take
The uncomfortable truth: most teams won't migrate until the pipeline breaks. That's tomorrow. Perplexity has been one of the highest-signal citation sources for GEO monitoring — it crawls fast, cites aggressively, and its citation data has been a reliable proxy for “is this content findable by AI.” Going dark on Perplexity citation tracking right now, while Google's September spam update is mid-rollout and the core update wraps up, means making decisions about your content with one instrument offline. Migrate today, not after the alert fires.
Sources
- Perplexity AI — Official API changelog confirming sonar-pro and sonar-reasoning-pro retirement September 27, 2026 and Agent API migration path, September 2026. docs.perplexity.ai
- LLM Gateway — Developer analysis of Perplexity Sonar retirement timeline and
citations[]→annotations[]format change, September 20, 2026. llmgateway.io
API retirements like this expose how much your GEO visibility depends on tooling you haven't audited. Chad runs a full GEO audit — citation coverage, citation format compliance, platform-specific monitoring gaps — and tells you exactly where you're flying blind.
Get your GEO audit →