Across labs
Claude, Gemini, and ChatGPT watermarks compared
Claude, Gemini, and ChatGPT can all mark generated text, and they do not share one key. Claude and Gemini’s text marks are in the SynthID-Text family. ChatGPT’s text mark is OpenAI’s textGrain. A file from any of them may also carry C2PA. A single “AI watermark” score erases those differences.
The lab pages worth reading are Anthropic’s note on Claude’s text watermark, Anthropic’s help article on markings, Google’s SynthID overview, and OpenAI’s provenance signals. This page is the comparison a mixed draft actually needs.
The comparison
| ChatGPT / OpenAI | Claude / Anthropic | Gemini / Google | |
|---|---|---|---|
| Text method, as the lab describes it | textGrain. OpenAI says it built this rather than ship SynthID or TextSeal for text. | A version of SynthID-Text. | SynthID-Text, the method in the 2024 Nature paper, used in Gemini. |
| What changes | Which token is sampled. No hidden characters. | Which token is sampled. Anthropic says meaning and readability are unchanged. | Which token is sampled, via a logits processor in the open-source form. |
| Where text marking is on | Eligible EU ChatGPT and Codex text. API opt-in worldwide, not the default at launch. Details in the 2026 coverage page. | Anthropic says covered models are marked globally, including API and listed cloud partners, because they would not maintain a split. | Google’s research deployment and Gemini product documentation describe SynthID-Text in Gemini. Confirm the current product note before you treat a specific surface as covered. |
| Image file | C2PA and SynthID on supported images. | C2PA on supported generated files such as PNG, JPEG, and SVG. | SynthID on images is part of Google’s SynthID stack. C2PA support depends on the exporter. |
| Who can detect the text mark | Approved organizations. Not the public verify page. | Anthropic describes detection as restricted in a similar way to other labs under the code of practice. | The open-source detector works for text you marked with your own configuration. Google’s production key is not that configuration. |
One family of ideas, three deployments
The shared ancestor is public. Scott Aaronson’s 2022 proposal and the Kirchenbauer green-list paper both bias token sampling with a pseudorandom key. Google DeepMind’s SynthID-Text, published in Nature in 2024, is the version Anthropic says it adapted, and the version Google ships tooling for. OpenAI’s technical report describes textGrain as its own optimal-transport construction, chosen to control the entropy spent per token more tightly than SynthID or TextSeal. Same family. Not the same detector.
That is why “SynthID” on a ChatGPT help page and “SynthID” on a Claude help page are not one bit you can grep. OpenAI uses the SynthID name for images and audio. For text, it says it did not adopt SynthID. Claude uses the SynthID-Text name for text. A tool that detects one and claims the other is borrowing a brand.
Quality claims are also per lab. Anthropic says its tests found no practical impact on content or readability, and cites the SynthID-Text paper’s Gemini thumbs-up test and a side-by-side human study. OpenAI says Astra benchmarks and earlier ChatGPT thumbs-down rates stayed inside ordinary noise. Neither claim means you can see the mark. If the prose looks wrong, look for a bad prompt or a hidden character, not for the watermark “showing.”
Where each mark is on
Geography is the sharpest difference in 2026. OpenAI’s public plan is EU ChatGPT and Codex text, plus an API opt-in that is explicitly not the global default at launch. Anthropic’s public plan is the opposite shape: watermark covered models everywhere, including Claude, the API, Claude Code, and the named cloud hosts, because a regional split was not something they were prepared to run. A company that routes some drafts to Claude and some to a default OpenAI project can have a fully marked Claude paragraph beside an unmarked GPT paragraph in one brief.
Google’s position is older than the EU code-of-practice moment. SynthID-Text has been part of the Gemini story since the 2024 paper’s deployment notes. Open-source SynthID lets any developer mark a model they run. That open detector then recognizes their mark. It does not recognize Anthropic’s production key or OpenAI’s textGrain key. Installing it and pointing it at a student essay is not a Gemini check.
Short text and code are weak for all three, for the same information-theoretic reason: the model has fewer free choices. The EU code of practice, which OpenAI cites, does not require a mark under about 200 tokens or on code snippets. A six-line function from any of these products is a bad specimen. A 1,500-word memo is the specimen the schemes are about.
Files versus sentences
All three labs talk about files separately from sentences. C2PA is an open manifest. If Claude or ChatGPT attached one, Content Credentials Verify and this site’s image check can see the container. SynthID inside pixels or audio is not in that container. OpenAI tells image users to expect both. Stripping C2PA and announcing that “the watermark” is gone is only true for the manifest. The C2PA guide holds that line.
Text has no manifest. Once the words are in a Google Doc, the text watermark is either still in the word choices or it has been edited out of detectability. The Doc’s revision history will not show a watermark event. Invisible Unicode can still appear, from any of the three chat windows, and that is the paste layer in the hidden-character article.
A draft that used more than one model
Mixed drafts are the normal commercial case. An outline from ChatGPT, a rewrite from Claude, a human editor, an image from a fourth tool. No single detector returns “the watermark” for that file.
- A textGrain hit would speak only to OpenAI processing, and only to someone with that detector.
- A Claude hit would speak only to Claude processing.
- A C2PA manifest speaks to whoever signed that manifest, which you can read if it is still attached.
- A style detector may fire on all of it, or on none of it, without reading any of those keys. See watermark versus AI detector.
- A missing hit from the one detector you happen to have does not clear the other model. See what a missing watermark means.
Editors should ask which tool touched which asset, then run the check that matches the asset. The intake list is in how to check a blog writer.
What you can check today
Without a lab key, the checks that are real are the ones that do not pretend to be a lab:
- Invisible Unicode, from any chat, with the ChatGPT watermark detector.
- C2PA and AI metadata on PNG, JPEG, and the document types the tool lists.
- OpenAI image and audio signals on openai.com/verify.
- A C2PA claim on contentcredentials.org/verify.
Those four do not add up to a Claude score or a Gemini score or a textGrain score. The catalog of what free tools claim instead is free AI watermark checkers compared. If the sentence in front of you is the one you care about, the OpenAI-specific mechanism page is still how the ChatGPT text watermark works, and the removal limits are can you remove it.
Check characters and file metadata →How to route a mixed brief
A content lead with one Doc and three tools needs a routing rule, not a blend.
- Split the Doc by who wrote the span, as far as the disclosure goes. If nobody wrote that down, the check cannot invent it.
- For an OpenAI span, ask whether it was EU ChatGPT or an API project, and whether text provenance was on. That is the 2026 coverage question, not a vibe.
- For a Claude span, assume Anthropic’s public description until the help page changes: covered models marked, files credentialed where the product writes files.
- For a Gemini span, do not point an open-source SynthID notebook at it and call the number Google’s. Production keys are not the demo configuration.
- For every image, ignore which chat “felt” like the source and inspect the file.
- Run one character scan on the assembled paste, because the clipboard does not care which lab rendered the HTML.
Report the rows separately. “The brief is watermarked” is the sentence that hides a marked Claude section, an unmarked API section, and a JPEG that still has C2PA. A client can act on the rows. They cannot act on the blend.
Cloud hosts are not a fourth watermark
AWS, Google Cloud, Microsoft Foundry, and Azure show up in both labs’ notes, and people treat the host as if it minted its own mark. Anthropic says supported Claude models reached through those clouds carry the watermark, and that C2PA is added when Claude creates a file, so file credentials depend on whether that host exposes file generation. OpenAI says it is working with cloud partners so eligible outputs include provenance signals, and that availability can vary. The host is a delivery path. The mark is still the lab’s mark, if the path is eligible and the setting, where there is a setting, is on.
A private gateway that strips or rewrites completions is a different system again. If your proxy paraphrases “for safety” or translates before the user sees the text, you may be degrading the lab’s watermark and adding your own logs. Document the proxy. A later detector miss may be the proxy, which is one more entry on the list of ordinary misses. It is not evidence the lab failed to mark, and it is not evidence a person wrote the original completion.
Local and open-weight models sit outside all three columns. A Kirchenbauer-style sampler someone enabled in a llama.cpp fork is real for that deployment and invisible to Claude’s detector, OpenAI’s detector, and this site’s character scan. Ask the operator whether they turned a watermark on. Do not infer it from the brand of the chat UI skin.
Audio and video fall outside this comparison on purpose. OpenAI documents SynthID for audio and a separate story for video. A podcast exported from a chat is not a textGrain specimen even if the script was. Run the file through the surface that matches the media, and keep the script on the text row. Mixing them is how a clean verify result on an MP3 gets quoted as a clearance of the article that was read aloud.
If you only have time for one internal rule, make it this: name the lab, name the medium, name the tool. “We checked the AI watermark” cannot be audited. “We scanned the paste for hidden characters, we did not have a textGrain detector, and the PNG still had a C2PA claim from ChatGPT” can. The second sentence is longer because the first one was hiding three answers.
Revisit the lab pages when a model name changes. Coverage notes move faster than blog recaps. If Anthropic’s help article or OpenAI’s provenance table disagrees with a sentence here, the vendor page is the one to follow, and this comparison is the map for why the two vendor pages were never the same test.
FAQ
Do the three products share one text watermark?
No. Claude uses a SynthID-Text variant. OpenAI uses textGrain for text. A key for one does not read the other.
Will this site’s checker see Claude or Gemini text?
It will see hidden characters if they are in the paste. It will not see SynthID-Text or textGrain.
Is SynthID on ChatGPT images the same as Claude’s text watermark?
No. Same broad family name, different media and different deployments. Image SynthID is in the pixels. Claude’s text mark is in token choice.
Does a C2PA badge tell me which model wrote the paragraph?
No. A manifest describes the file it is attached to. Prose in a Doc usually has no manifest.