Claude Watermark Remover — Developer API & SDK

A free, open, keyless REST API to scan text for hidden characters, clean or rewrite it, and strip EXIF/XMP/C2PA metadata from images. One HTTPS POST, any language. It does not claim to remove statistical token watermarks.

quickstart.py
python
class=class="syn-string">"syn-comment"># No SDK, no key -- just POST
curl -X POST https:class=class="syn-string">"syn-comment">//api.claudewatermark.org/v1/text/clean \
  -H class=class="syn-string">"syn-string">"Content-Type: application/json" \
  -d &class=class="syn-string">"syn-comment">#39;{class=class="syn-string">"syn-string">"text":class=class="syn-string">"syn-string">"Your text here"}'
1,000Free requests/month
<100msAverage latency
99.9%Uptime SLA
4Official SDKs

No SDK required

There is nothing to install. Every capability is a plain HTTPS POST to https://api.claudewatermark.org, so you can call it from any language or platform that speaks HTTP. No API key, no auth header, nothing stored.

🔍

Scan

Detect hidden zero-width and invisible characters in text.

POST /v1/text/scan
🧹

Clean

Strip those characters and normalize to Unicode NFC.

POST /v1/text/clean

Rewrite

Paraphrase text to reduce statistical watermark signal.

POST /v1/text/rewrite
📷

Image strip

Remove EXIF, XMP, IPTC, and C2PA metadata from JPEG & PNG.

POST /v1/image/strip

Getting Started

Send a POST request and read the JSON response. No key, no setup.

bash
curl -X POST https:"syn-comment">//api.claudewatermark.org/v1/text/clean \
  -H "syn-string">"Content-Type: application/json" \
  -d &"syn-comment">#39;{"syn-string">"text":"syn-string">"Your Claude-generated content here..."}&#39;
javascript
class="syn-keyword">const res = await fetch(class=class="syn-string">"syn-string">"https:class=class="syn-string">"syn-comment">//api.claudewatermark.org/v1/text/clean", {
  method: class=class="syn-string">"syn-string">"POST",
  headers: { class=class="syn-string">"syn-string">"Content-Type": class=class="syn-string">"syn-string">"application/json" },
  body: JSON.stringify({ text: class=class="syn-string">"syn-string">"Your Claude-generated content here..." })
});
console.log((await res.json()).cleaned);
python
class="syn-keyword">import requests
r = requests.post(class=class="syn-string">"syn-string">"https:class=class="syn-string">"syn-comment">//api.claudewatermark.org/v1/text/clean",
                  json={class=class="syn-string">"syn-string">"text": class=class="syn-string">"syn-string">"Your Claude-generated content here..."})
print(r.json()[class=class="syn-string">"syn-string">"cleaned"])

Start Building Today

Sign up for a free API key and start removing Claude watermarks programmatically. No credit card required for the free tier. Upgrade as your usage grows with simple, predictable pricing.