Back to blog
ChatGPT12 min read

How to Make ChatGPT Cite Real Sources

A model without search access generates plausible-looking citations from its training, not a lookup. Here is the mechanism, a real court sanction, and what each vendor documents for grounding.

NH
Nafiul Hasan
Founder, Prompt Architects

TL;DR: ChatGPT invents citations when it has no way to look anything up: it is generating plausible-shaped text from its training, not retrieving a real page. A New York court sanctioned two attorneys in 2023 for exactly this. The fix isn't a prompt, it's turning on a documented search or file-search tool and then checking every citation yourself.

Why does ChatGPT sometimes invent sources that don't exist?

Because in its default mode, ChatGPT has no connection to the internet or to a document store. It is predicting text based on patterns learned during training, and a citation, a case name, a paper title, an author, a page number, is just another pattern it can generate in a plausible shape. The model isn't lying in the human sense of knowing the truth and saying otherwise. It has no lookup step to fail, so a confident-sounding fake citation and a confident-sounding real one can come out of the same process with the same fluency.

This is why hallucination in citations is a structural property of ungrounded generation, not a bug specific to one model or one prompt. Ask for "sources" without giving the model a way to find real ones, and you're asking it to generate text shaped like a source list, which it will do whether or not any of those sources exist.

What happened when a lawyer trusted ChatGPT's citations in court?

The clearest public example is Mata v. Avianca, Inc., filed in the U.S. District Court for the Southern District of New York, docket 1:22-cv-01461. Attorneys representing the plaintiff submitted a brief citing several court opinions to support their argument. Opposing counsel and the court could not locate the cases. They did not exist. The docket entry for the sanctions order names the fabricated cases directly: fake opinions attributed to judges under names including "Varghese", "Shaboon", "Petersen", "Martinez", "Durden" and "Miller".

On June 22, 2023, Judge P. Kevin Castel issued an Opinion and Order on Sanctions, imposing a $5,000 penalty, payable to the court, jointly on the attorneys and their firm, and ordering them to send a letter to every judge falsely named as the author of a fake opinion. The court's own opinion is worth reading past the headline, because it does not blame the technology:

The opinion also records something more specific than the common paraphrase that a lawyer trusted a chatbot blindly. Attorney Steven Schwartz testified that he assumed the fabrication couldn't be happening at all: "I just was not thinking that the case could be fabricated," and, describing his own reasoning at the time, "ChatGPT is finding that case somewhere. Maybe it’s unpublished. Maybe it was appealed. Maybe access is difficult to get. I just never thought it could be made up." He even tried to verify one citation on a public case-lookup site and couldn't find it, then cited it anyway. And when doubt did creep in, he asked the model directly. Per his own declaration, quoted in the opinion, he asked ChatGPT whether "Varghese v. China Southern Airlines Co. Ltd., 925 F.3d 1339 (11th Cir. 2009)" was a real case, and "ChatGPT again responded that Varghese “does indeed exist” and even told me that it was available on Westlaw and LexisNexis", contrary to what the court and opposing counsel were saying. Asking the model to check its own citation didn't surface the fabrication. It produced a second, more confident fabrication on top of the first.

That framing matters for anyone deciding how much to trust AI-assisted work: the failure wasn't that a model produced fluent, wrong text. Models do that. The failure was that nobody checked before it was filed.

What's the actual difference between answering from memory and looking something up?

A model answering "from weights" is running the same generation process whether the fact is true or invented; nothing internal distinguishes a well-supported claim from a fluent guess. A model that is grounded has an extra step: it retrieves a specific document or search result first, then generates its answer with that retrieved text available to check against and cite. The citation in a grounded answer points at something the system actually read a moment earlier. The citation in an ungrounded answer points at whatever the training data made statistically plausible to produce next.

Vendors that document grounding are explicit that this is the point of the feature, not an incidental benefit. OpenAI's own guide states plainly: "Web search allows models to access up-to-date information from the internet and provide answers with sourced citations." Anthropic describes the same mechanism for Claude: "The web search tool gives Claude direct access to real-time web content, allowing it to answer questions with up-to-date information beyond its knowledge cutoff. The response includes citations for sources drawn from search results." And Google frames Gemini's version the same way: "Grounding with Google Search connects the Gemini model to real-time web content and works with all available languages. This allows Gemini to provide more accurate answers and cite verifiable sources beyond its knowledge cutoff."

None of these vendors claim the feature eliminates every error. They document what it changes: an answer that cites something it actually retrieved, instead of an answer that only sounds like it did.

Anthropic's own developer guidance is unusually direct about the limits of mitigation without grounding. On reducing hallucinations, it recommends: "Explicitly give Claude permission to admit uncertainty. This simple technique can drastically reduce false information." But the same page is explicit that this is damage control, not a cure: "while these techniques significantly reduce hallucinations, they don't eliminate them entirely. Always validate critical information, especially for high-stakes decisions." That's a vendor telling its own developers, in its own documentation, that mitigation reduces the problem and does not remove it. Nothing about enabling a search tool changes that baseline; it changes what the model has to work from when it answers.

How do you turn on ChatGPT's web search so it actually looks things up?

In the consumer app, OpenAI's help center describes it directly: "ChatGPT can search the web to answer questions with current information and links to relevant sources." To use it manually: open a conversation, select View all tools, then choose Search. You can also type a forward slash in the message composer and pick Search from the menu. The same help article notes that "ChatGPT may search the web automatically when your question would benefit from current information." Relying on that automatic trigger means you don't always know whether a given answer was grounded, so selecting Search explicitly removes the ambiguity. On availability, OpenAI states plainly: "Web search is available on ChatGPT Free, Go, Plus, Pro, Business, Enterprise, and Edu." The free tier is not excluded from this specific feature.

Developers building on the API get the same capability through a tool rather than a UI toggle: OpenAI's Responses API documentation describes a web_search tool you add to the request, available alongside an older web_search_preview variant kept for existing integrations.

Does this work the same way in Claude and Gemini?

The concept is the same across all three; the exact interface differs. The table below reflects what each vendor documents for its own web-search or grounding tool as of this writing.

Web search / grounding, verified against each vendor's own documentation (September 2026)
FeatureChatGPTClaudeGemini
Documented web search / grounding tool
Response includes cited sources when the tool is used
Can trigger automatically without you enabling anythingSometimes, per OpenAI's help centerNo — added as a tool per requestNo — grounding is enabled per request

The rows above describe each vendor's documented API-level tool. Claude.ai and the Gemini consumer app expose comparable search-grounded behavior through their own interfaces; this guide cites the underlying documented tool specifically, since that's what's independently verifiable and dated. The practical point for anyone switching between assistants is the same regardless of interface: a citation is only as good as whatever the assistant actually consulted before writing it, and every one of these vendors ships a mode where nothing was consulted at all. Knowing which mode you're in matters more than knowing which vendor you're using.

What about citing your own documents instead of the web?

Web search only helps when the answer lives on the open internet. If you need ChatGPT to cite a contract, a research paper, or an internal document you're supplying, that's a different tool: retrieval over files you've uploaded, not a live web search. OpenAI documents this as file search: "File search is a tool available in the Responses API. It enables models to retrieve information in a knowledge base of previously uploaded files through semantic and keyword search." The distinction matters in practice: a citation from file search points at a passage in a document you control and can re-check instantly; a citation from web search points at a page anyone can view; a citation from neither, in a plain chat with no tool enabled, points at nothing you can independently confirm.

Before assuming either tool is active in whatever product you're using, check. A chat interface built on top of an underlying model does not necessarily expose every tool that model supports, and a model that supports file search in the API is not automatically running it inside a consumer app's default chat. If you're not sure which mode you're in, ask the assistant directly whether it searched the web or consulted an uploaded file for that specific answer, and treat "I don't have that capability right now" or a vague non-answer as the signal to verify manually rather than assume the citation is grounded.

Is there a prompt that stops citation fabrication?

No. This is the honest answer, and it's worth stating plainly because a lot of content promises otherwise. A model with no retrieval enabled is generating plausible-shaped text from its training; no system prompt, no phrase like "only cite real sources," and no amount of politeness changes that underlying mechanism. Asking a model to "double check its own sources" without giving it a way to actually check anything just produces more fluent text confirming the fabricated citation, since the model still has nothing external to check against.

Mata v. Avianca already demonstrated this directly: the attorney did ask the model to check itself, twice, and both times it produced a fluent, false confirmation instead of a correction. Asking is not a safeguard, because the model has no separate faculty for checking its own prior output against reality; it just generates another plausible-sounding answer to the new question.

What works instead is a two-part discipline: enable a documented search or file-search tool whenever a source needs to be real, and verify every citation the model gives you before you rely on it, the same way you'd check a citation a junior colleague handed you. A short prompt that helps with the second half, run on the response you're about to trust:

List every specific claim in your previous answer that is not something
you looked up just now, using search or a file I gave you.

For each one, either:
1. mark it as general knowledge you're confident of independent of any
   single source, or
2. mark it as something I need to verify myself, and say why you can't
   confirm it right now.

Do not add any new claims to satisfy this request.

That prompt doesn't stop fabrication. Nothing does. It surfaces what still needs a human check, which is the actual fix.

No, legal writing just produced the clearest public record of it, because a court docket documents both the fabrication and the sanction in one place. The same mechanism, plausible-shaped generation standing in for a real lookup, applies to research summaries, academic writing, and business reports built on an ungrounded chat. Academic publishing has already reacted: the International Committee of Medical Journal Editors tells authors directly that "Authors should carefully review and edit the result because AI can generate authoritative-sounding output that can be incorrect, incomplete, or biased." It adds: "Humans must ensure there is appropriate attribution of all quoted material, including full citations." That guidance exists because the failure mode isn't unique to a courtroom; it's unique to skipping the check, in any field where a citation is expected to be real. If a citation is going to sit under your name, whichever surface produced it, the standard is the same one that failed in Mata v. Avianca: verify before you file it, don't verify after someone else finds it first.

For the general mechanism behind AI making things up, beyond citations specifically, see why does ChatGPT make things up. If you need copy-paste prompts for the citation-management side of research work rather than the verification side covered here, 20 AI prompts for managing citations and references is the more direct fit, and how to write better ChatGPT prompts covers the foundational structure this all sits on top of. If the underlying issue is that ChatGPT agrees with a claim too readily to catch a bad citation in the first place, how to get ChatGPT to disagree with you is worth pairing with the verification prompt above.

Free Chrome Extension

Stop rewriting prompts. Start shipping.

Works with ChatGPT, Claude, Gemini, Grok, Midjourney, Ideogram, Veo3 & Kling. 4.8★ on the Chrome Web Store.

Create An Account

Frequently asked questions

Free Chrome Extension

Stop rewriting prompts. Start shipping.

Works with ChatGPT, Claude, Gemini, Grok, Midjourney, Ideogram, Veo3 & Kling. 4.8★ on the Chrome Web Store.

Create An Account