textGrain: OpenAI’s ChatGPT watermark, explained
textGrain is the text watermark OpenAI announced on October 5, 2026. It hides in which words ChatGPT picks — not in any character — and it is rolling out to ChatGPT and Codex text for users in the EU. Here is how the textGrain watermark works, how often OpenAI can actually detect it, and what removes it.
Facts checked against the sources below on .
textGrain at a glance
| Announced | October 5, 2026, to meet the EU AI Act’s rule that generated text be machine-detectable |
| Who gets it | ChatGPT and Codex text for users in the EU, on all plans, rolling out “over the coming weeks” |
| Outside the EU | Off by default. API customers anywhere can switch it on for select models |
| How it works | Statistical: a secret key steers the randomness of the model’s word choices |
| Hidden characters | None. OpenAI: no hidden characters, invisible spaces or unusual punctuation |
| Who can detect it | Approved researchers and expert organisations only; there is no public detector |
| What weakens it | Synonym swaps, substantial paraphrasing and translation; short or factual text |
| Open source | Planned, no date given |
How it works
A language model writes one token — a word or part of a word — at a time, choosing each from a list of likely next tokens. Normally that choice is a roll of the dice. textGrain replaces the dice with values derived from a secret key and the preceding words, so the choices quietly line up with a pattern only the key reveals.
OpenAI’s technical report describes the mechanics: the key’s randomness is coupled to blocks of the vocabulary through an optimal-transport problem, and a strength setting caps how much of the model’s natural randomness the watermark may use up. Averaged over keys, the model’s word probabilities are unchanged, which is why OpenAI says quality doesn’t suffer. A detector holding the same key checks whether a passage follows the pattern more often than chance would allow; it needs only the text and the key.
Nothing is added to the text. OpenAI’s help center is explicit that textGrain “does not add hidden characters” — so no character scanner, including ours, can see it. To rewrite ChatGPT text, use the Unmark homepage scanner.
Who gets watermarked
OpenAI is adding textGrain to eligible ChatGPT and Codex output for users in the European Union, across all plans, over the weeks after the announcement. It is deliberately not a global default. Elsewhere, ChatGPT text is not watermarked — but API customers worldwide can turn it on per project or for a whole organisation (Settings → Text provenance), so text from apps built on OpenAI’s API may carry it. OpenAI says it is also working with cloud partners to watermark its models’ output there.
Some text carries little or no signal. The EU Code of Practice doesn’t require watermarks on outputs shorter than 200 tokens (about 150 English words) or on code snippets, and OpenAI notes that answers with little room for different wording — maths, or text the model was asked to copy unchanged — may not be detected at all.
How reliable is detection?
Less reliable than “watermark” suggests. OpenAI’s own figures, all at a 1% false-positive rate:
- Length matters. About 80% of 200-token passages were detected, against about 95% of 400-token passages, for topics like psychology. Detection was substantially lower for maths.
- Editing weakens it fast. On 400-token passages, swapping 10% of the words for synonyms cut detection from about 92% to 66%; swapping 25% cut it to 17%.
- Language matters. Across the 24 official EU languages, detection ranged from 69.0% for Spanish down to 42.2% for Romanian before OpenAI strengthened the signal for the weaker languages.
OpenAI also stresses what a result can’t tell you: a detected watermark doesn’t identify the user, measure how much a person contributed, or prove who owns the text — and a missing one doesn’t prove a human wrote it.
Can you check text for textGrain?
No — not unless you work for an approved organisation. OpenAI’s text detector is open by application to researchers and expert organisations, and OpenAI excludes general business uses and academic-integrity checks such as screening student essays. Its public verification tool, openai.com/verify, checks images and audio only. A website that claims to test your text for textGrain cannot actually do so.
How to remove textGrain
Because the watermark is the wording, the only thing that removes it is different wording. Light edits and copy-paste leave it in place; OpenAI says substantial paraphrasing or translation can make it undetectable, and its own synonym test shows how quickly detection falls as more words change.
- Paste the ChatGPT text into the homepage scanner or the ChatGPT watermark remover.
- Pick a strength. Balanced rewrites in natural language; Aggressive and Aggressive+ change the most wording.
- Re-read the result. Unmark is built to keep your facts, names and layout, and flags any number or name it can’t find afterwards — but you know what you meant better than any tool.
Stripping hidden characters does nothing to textGrain, since it has none. And because OpenAI’s detector isn’t public, no one outside the approved programme can confirm a particular text is clean — treat any removal, ours included, as best-effort.
Free, no sign-up, keeps your meaning.