Paste any text below to check if it contains Claude's invisible watermark.
Claude's statistical watermark lives in word choice at the token level and can only be detected with Anthropic's private key, no third-party tool can read it. What this checker CAN do reliably is scan your text for hidden Unicode characters (zero-width spaces, joiners, variation selectors) that are sometimes used as invisible text watermarks or tracking marks.
If hidden characters are found, the checker lists exactly which ones and how many. If none are found, your text is clean of invisible markers. This does not rule out a statistical token watermark, which is undetectable without the model owner's key.
Hidden characters found. The checker lists each invisible or zero-width character it detected, by name, Unicode code point, and count. These characters (zero-width spaces, joiners, word joiners, variation selectors, and tag characters) are genuinely invisible in normal use, and they are sometimes inserted deliberately as an invisible text watermark or tracking mark. If you see them listed, they are really in your text. You can strip them with our remover.
No hidden characters found. Your text is clean of invisible markers. That is a definite result about hidden characters, but it does not rule out a statistical token-level watermark, which is a different thing entirely (see below).
It cannot read Claude's statistical watermark. That watermark is not a character you can see or scan for; it is a subtle bias in which words the model chosekeyed to a secret only the model owner holds. Detecting it requires that key. No third-party tool, including this one, can measure it reliably, and any tool that shows you a confident "87% watermarked" score on arbitrary text is guessing. We would rather give you a real answer about hidden characters than a fake number about something unknowable.
Run it whenever you have pasted text from an unknown source, copied from a chat interface, or received a document you plan to reuse, and you want to know if anything invisible is riding along. It is instant, runs on our stateless API, and stores nothing. If you want to also normalize spacing and punctuation, use the removerwhich cleans and normalizes in one step.