# ZeroTrace AI > Find and remove invisible Unicode characters, steganographic payloads and hidden-text prompt injections from any text. Full report of every change. Free tier, REST API. ZeroTrace AI finds and removes invisible Unicode characters, steganographic payloads and hidden-text prompt injections from text. It runs as a web playground and a REST API. ## What it is accurate about Most published material on this subject conflates two unrelated things. This site separates them: - **Unicode steganography** hides data in characters that render as nothing. It is detectable and removable, and this tool does both. - **Statistical watermarking** (Google SynthID-Text, Anthropic's watermark for Claude) biases which words a model chooses. Nothing is added to the text. Anthropic's own documentation states there are no hidden characters. **Removing characters has no effect on it, and this tool does not claim otherwise.** There is no deployed ChatGPT watermark. OpenAI built one and did not ship it; the narrow no-break space U+202F that circulated as a supposed marker is a formatting artifact that encodes nothing. ## Capabilities - Classifies 143,868 of the 143,872 Unicode 17 code points that are invisible, formatting, control, private-use, surrogate or noncharacter. The four excluded are tab, line feed, carriage return and space. - Decodes hidden text in the Unicode Tags block (U+E0000–U+E007F), the channel used for invisible prompt injection. - Identifies StegCloak-style payloads by their invisible-math-operator alphabet (U+2061–U+2064) and reports the encryption mode. - Brute-forces base-N zero-width encodings and recovers the message. - Detects Trojan Source bidirectional attacks and whitespace steganography. - Flags mixed-script homoglyphs without silently replacing them. - Normalizes smart quotes, dashes and ellipses to ASCII on request. - Preserves legitimate usage by default: emoji ZWJ sequences, Arabic/Persian/ Indic joiners, CJK variation selectors, and the England/Scotland/Wales flag emoji built from tag characters. ## Guides - [Invisible Unicode characters: a complete reference](https://zerotraceai.net/guides/invisible-unicode-characters): Every category of invisible, zero-width and blank-rendering Unicode character, what each one is legitimately for, and when its presence is a signal that something is hidden in your text. - [Do AI watermarks use invisible characters? No — and here is the evidence](https://zerotraceai.net/guides/ai-watermarks-and-invisible-characters): SynthID-Text and Anthropic's Claude watermark are statistical, living in the model's word choices rather than in any added character. Stripping invisible characters has no effect on them whatsoever. - [Invisible prompt injection with Unicode Tags](https://zerotraceai.net/guides/unicode-tags-prompt-injection): How the U+E0000 block hides instructions that people cannot see but language models read, why it works, and how to strip it before untrusted text reaches a model. - [Zero-width steganography: how text hides inside text](https://zerotraceai.net/guides/zero-width-steganography): StegCloak, base-N zero-width encodings and variation-selector channels — the practical schemes for hiding data in a string, their fingerprints, and how detection works. - [Trojan Source: when code does not do what it looks like it does](https://zerotraceai.net/guides/trojan-source-bidi-attacks): Bidirectional control characters can reorder how source code is displayed without changing what the compiler sees. How the attack works and how to detect it. - [How to remove invisible characters from text](https://zerotraceai.net/guides/how-to-remove-invisible-characters): A practical guide: what to strip, what to replace with a space, what to leave alone, and how to do it without corrupting Turkish, Arabic, Persian, Indic or emoji content. ## Pages - [Playground](https://zerotraceai.net/): paste text, see every hidden character - [What we cannot do](https://zerotraceai.net/honesty): the explicit limits - [FAQ](https://zerotraceai.net/faq) - [API documentation](https://zerotraceai.net/docs) - [Pricing](https://zerotraceai.net/pricing) - [OpenAPI specification](https://zerotraceai.net/openapi.json) - [Full text of every guide](https://zerotraceai.net/llms-full.txt) ## API POST https://api.zerotraceai.net/v1/clean with `Authorization: Bearer `. Body: `{"text": "...", "options": {"profile": "safe"}}`. Returns the cleaned text, every finding with its code point and category, and identified payloads. POST /v1/detect returns findings without the cleaned text. ## Privacy Submitted text is never stored or logged. Only counts and metadata are kept.