Short answer: Anthropic reportedly emailed API customers ("Text watermarking is coming to more Claude models") that from November 3, 2026 it will watermark the output of Claude Mythos 5, Opus 4.7, Opus 4.6 and Sonnet 4.6, with Amazon Bedrock possibly a few days later (see The Decoder, MACCUS and Pasquale Pillitteri). According to Anthropic's help page, models launched after August 2, such as Opus 5.5, carry the watermark from day one.
What matters if you write code with Claude:
- The watermark is applied at the model level. Output from Claude Code, the Claude API, the Claude apps and AWS / Google Cloud / Microsoft Foundry all carries it, wherever you call the model.
- It is invisible. Anthropic says it does not change meaning, quality or readability; no characters are added, and it travels with the text when copied.
- It cannot be turned off (reportedly), and you don't need to change any config. Claude Code, Codex and Cursor settings stay as they are.
- Calls made with an API Key (including a Key from this site) hit the same models, so the output is watermarked the same way.
- Text watermark detection is a private preview for regulators, media, researchers and similar groups; regular users can't check it themselves.
Create an API Key and keep using it in Claude Code, Codex and Cursor →
Which models carry the watermark from November 3
The official help page lists 16 models in three columns: text watermark on Anthropic's own products, text watermark on cloud partners, and Content Credentials (C2PA) in files. According to MACCUS, which compared the October 31 version of the page, the first two rows below already have the text columns checked; the November 3 date comes from the email.
| Model | Text watermark on Claude API / apps / Claude Code | Text watermark on AWS / Google Cloud / Foundry | C2PA in files |
|---|---|---|---|
| Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.1, Mythos 5.1 | From launch | Yes | Yes |
| Opus 5, Fable 5, Sonnet 5, Opus 4.8 | Yes | Yes | Yes |
| Mythos 5, Opus 4.7, Opus 4.6, Sonnet 4.6 | From November 3 (reportedly) | Bedrock a few days later; no date yet for Google Cloud and Foundry (reportedly) | Checked in the official table |
| Opus 4.5, Sonnet 4.5, Haiku 4.5 | No specific date (reportedly) | Not yet | Checked in the official table |
According to Pasquale Pillitteri, text generated before November 3 will not be watermarked after the fact. The help page says the same in its own words: content generated before a model supported marking carries no detectable mark.
How the watermark works
From the official help page:
- Text: when a supported Claude model generates text, it weaves an imperceptible watermark into the text itself. You won't see it, and it doesn't change meaning, quality or readability. Because it is part of the text, it travels with copy and paste and may survive some editing.
- Model level: the watermark is applied in the model, so it is present no matter which Claude product or surface the text comes from.
- Files: when Claude generates a supported file such as a PNG or JPEG, it attaches signed provenance metadata, the Content Credentials defined by the open C2PA standard.
- Worldwide: marking applies to supported models wherever Claude is offered, not only in the EU.
According to the email quoted by The Decoder, Anthropic describes it as an "imperceptible pattern in word choice": no extra characters or tokens, no change to request and response formats, barely any slowdown, and no information about the user, their organization or their conversations. According to MACCUS, it is based on SynthID-Text, the method Google DeepMind described in Nature in 2024: when several words would fit equally well, the choice is set by a secret key combined with the preceding words, so nothing is added to the text.
What it means for AI coding users
Does code and text from Claude Code carry the watermark?
Yes. The help page lists Claude Code among the covered products, and the mark is applied at the model level. Code, commit messages and replies written by Opus 4.7, Sonnet 4.6 or Opus 5.5 in Claude Code are output from watermarked models.
Code is a special case, though. According to Pasquale Pillitteri, code often has only one correct form, and where the model has no near-equivalent choices the watermark has little room to work; Anthropic publishes no detection thresholds for code. The help page also notes that very short passages may not contain enough text for a reliable signal.
Does it affect code quality or speed?
Anthropic says meaning, quality and readability are unchanged, and the email says the effect on output speed is minimal. In our tests below, every generated code sample passed its tests on the first run with normal response times.
Not everyone agrees. According to The Decoder, blogger John Gruber argues that no two synonyms mean exactly the same thing, so choosing words by a watermark key rather than semantic fit loses some precision. No large-scale independent tests on Claude have been published so far.
Are calls through an API Key, including this site's Key, watermarked too?
Yes. Because the mark lives in the model, it doesn't matter which entry point the output comes from: the official API, Claude Code, a cloud partner, or any client connected with an API Key. Calls made with a Key from this site use these same Claude models, so the output carries the watermark just like the official entry points.
Do I need to change my configuration?
No. The watermark reportedly can't be disabled and there is no parameter to add; request and response formats stay the same. Claude Code's ANTHROPIC_BASE_URL, Codex's config.toml and Cursor's model settings all stay as they are. The Claude Code setup with a Key from this site is still:
export ANTHROPIC_BASE_URL="https://api.aicodewith.ai"
export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY"
claude --model claude-opus-4-7
Full steps: Claude Code third-party API setup.
What about Codex and Cursor?
If you pick a Claude model in Cursor, the output carries Claude's watermark. Codex runs OpenAI models by default and is not affected by Anthropic's change; according to The Decoder, OpenAI launched its own text watermark, textGrain, in October, enabled by default only for ChatGPT and Codex users in the EU, while API customers can switch it on or off.
Who can detect it?
- Text watermark: detection is in private preview for organizations named under EU law: regulators, law enforcement, media, fact-checkers, independent researchers, educational organizations and EU civil society groups, plus enterprises that must verify watermarking for their own compliance. Anthropic plans to widen access; you can register interest through the form on the help page.
- Files: Content Credentials can be checked with Anthropic's Claude Content Checker. According to Pasquale Pillitteri, it cannot detect the text watermark.
- What a result means: Anthropic notes that a detected mark only says the content may have been processed by Claude. Text that Claude merely proofread or translated can carry it too, and the absence of a mark doesn't prove a human wrote it.
Why now: EU AI Act Article 50 and December 2
The help page says Anthropic signed the Code of Practice on Transparency of AI-Generated Content that accompanies Article 50(2) of the EU AI Act. Article 50 requires generative AI output to be marked in a machine-readable format and detectable as AI-generated. Claude models launched in the EU after August 2 support marking at launch; earlier models get a transition period.
According to MACCUS, Article 111(4) of the Digital Omnibus (Regulation (EU) 2026/1744) gives systems placed on the market before August 2 until December 2, 2026. The November 3 batch lands about a month early, just as the September 30 batch (Fable 5, Sonnet 5, Opus 4.8) did.
If you build Claude into your own product, Anthropic recommends assessing independently what Article 50 requires of you; it will publish technical guidance on marking and detection as it becomes available.
Test: Claude Code and the API with this site's Key on November 1
We ran the tests on November 1, before the November 3 switch for Opus 4.7 and Sonnet 4.6. Opus 5.5 already carries the watermark according to the help page, so it serves as the post-switch reference.
Claude Code 2.1.310 + claude-opus-4-7 fixing a small bug
The project has one buggy function and four tests:
# wc.py
def word_count(text):
return len(text.split(" "))
# test_wc.py
def test_basic(self): self.assertEqual(word_count("hello world"), 2)
def test_spaces(self): self.assertEqual(word_count(" a b "), 2)
def test_newline(self): self.assertEqual(word_count("a\nb\tc"), 3)
def test_empty(self): self.assertEqual(word_count(""), 0)
With the environment variables above pointing at this site's Key, we ran:
claude -p "Fix word_count in wc.py so all tests in test_wc.py pass, then run python3 -m unittest. Reply with one short summary line." \
--model claude-opus-4-7 --permission-mode acceptEdits \
--allowedTools "Bash(python3 -m unittest*)"
It took about 15 seconds from Enter to result. Claude Code changed one line, ran the tests, and all four passed. Real output:
Switched `text.split(" ")` to `text.split()` so whitespace runs and empty strings behave correctly; all 4 tests pass.
git diff:
def word_count(text):
- return len(text.split(" "))
+ return len(text.split())
Direct API calls: the same task on three models
We asked each model for an is_valid_ipv4 function plus five unit tests. The request looks like this:
curl https://api.aicodewith.ai/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-4-6","max_tokens":1500,
"messages":[{"role":"user","content":"Write a Python function is_valid_ipv4(s) ... Then write 5 unittest cases."}]}'
| Model | Watermark status on test day | Time | Result |
|---|---|---|---|
| claude-sonnet-4-6 | Added from November 3 | about 5.9 s | All 5 tests passed |
| claude-opus-4-7 | Added from November 3 | about 4.8 s | All 5 tests passed |
| claude-opus-5-5 | Already on | about 12.2 s (longer answer with extra edge cases) | All 5 tests passed |
Can you see the watermark?
We used a small script to count hidden format characters such as zero-width characters in each output:
import unicodedata, sys
text = open(sys.argv[1], encoding="utf-8").read()
hidden = [hex(ord(c)) for c in text if unicodedata.category(c) == "Cf"]
print("hidden format chars:", len(hidden))
$ python3 check.py out-claude-sonnet-4-6.txt
hidden format chars: 0
$ python3 check.py out-claude-opus-4-7.txt
hidden format chars: 0
$ python3 check.py out-claude-opus-5-5.txt
hidden format chars: 0
All three outputs contain zero hidden format characters, and neither our eyes nor a diff showed any visible marker; the code ran as usual. That matches Anthropic's description of a word-choice pattern that adds no characters: it isn't built by inserting characters, so you can't see it by eye or by scanning characters. Only a detector holding the key can tell.
Create an API Key and try it yourself in Claude Code, Codex or Cursor →
FAQ
Can I turn off Claude's watermark?
No. The email reportedly offers no opt-out, and Anthropic says the mark is applied at the model level with no customer-facing switch.
Will code or text generated before November 3 be watermarked later?
No. According to Pasquale Pillitteri, the watermark is created at the moment the model picks its words, so earlier output is unaffected.
Does the watermark reveal my account or conversations?
According to the email quoted by The Decoder, the watermark contains no information about the user, their organization or their conversations.
Is output watermarked outside the EU too?
Yes. The help page says marking applies to supported models wherever Claude is offered.
What should I keep in mind when delivering Claude-written code or copy to clients?
According to Pasquale Pillitteri, copy an agency writes with Claude for a client carries the mark even if the client never signed anything with Anthropic, so it is worth stating AI use in the contract or delivery notes. This matters most in schools, publishing and public administration, where automated checks may carry weight.
Which model should I use for coding?
The watermark doesn't change the choice. For how each model performs in Claude Code, see Which model to use in Claude Code: Opus 5.5 vs Sonnet 5.5.
Related reading
- Which model to use in Claude Code: Opus 5.5 vs Sonnet 5.5
- Claude API version 2026-10-21: SDK and Claude Code migration
- Claude Max 20x renamed Ultra: new Claude Code usage limits
- Claude Code third-party API setup: Base URL, API Key and models
Sources
- How Claude marks AI-generated content (Claude Help Center)
- The Decoder: Anthropic's watermark rollout to more Claude models
- MACCUS: Claude's invisible watermark reaches Opus 4.7, Opus 4.6 and Sonnet 4.6 on November 3
- Pasquale Pillitteri: Claude Text Watermark Arrives on Opus 4.7, 4.6 and Sonnet 4.6 on November 3
- Topic summary on X



