API Reference

ClaudeRewrite API

Rewrite text programmatically. POST text, get a clean, watermark-free rewrite back in JSON. Build removal into your own scripts, workflows, or product.

REST + JSONBearer authMCP server

How it works

Claude embeds a statistical watermark in generated text by biasing token choices during generation. The signal is invisible to readers but detectable by anyone with Anthropic's key.ClaudeRewrite removes it in two steps:

  1. Invisible character scrub (zero cost) β€” strips ZWSP, bidi overrides, tag characters, and other invisible Unicode that some watermarks embed directly.
  2. Structural rewrite β€” a different model rewrites sentence structure, clause order, and phrasing while preserving every fact, number, date, name, URL, and code block. This changes the token pattern the watermark relies on.
  3. Automatic meaning check β€” a second pass compares the original against the rewrite and flags any fact that changed, was dropped, or was added. You see a green pass or a list of issues before you copy.

No honest tool can guarantee the mark is fully undetectable because Anthropic keeps its detector private.ClaudeRewrite performs the strongest available removal and is transparent about the residual risk.

Authentication

Every request needs your personal API key in the Authorization header. Find and manage it in your account page. API access requires an active paid plan (Starter, Professional, or Business). Keep your key secret.

Authorization: Bearer YOUR_API_KEY

Rewrite text

POST https://removeclaudewatermark.com/api/v1/rewrite

Send a JSON body with the text to rewrite and an optional model. Rate limit: 30 requests/minute, 300/day.

cURL
curl -X POST https://removeclaudewatermark.com/api/v1/rewrite \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "The quick brown fox jumps over the lazy dog."}'
Python
import requests

res = requests.post(
    "https://removeclaudewatermark.com/api/v1/rewrite",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"text": "Your Claude output here."},
)
data = res.json()
print(data["rewritten"])
JavaScript
const res = await fetch("https://removeclaudewatermark.com/api/v1/rewrite", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ text: "Your Claude output here." }),
});
const data = await res.json();
console.log(data.rewritten);

Request body

{
  "text": "the text to rewrite (required)"
}

Response

A JSON object with the rewritten text and word count:

{
  "rewritten": "The speedy fox clears the dozing hound.",
  "words": 10,
  "invisibleCharsStripped": 3
}

invisibleCharsStripped tells you how many invisible Unicode characters (watermark carriers) were removed from your input before the rewrite. Zero means none were found. This field is omitted when the count is zero.

Limits

  • Max input: 200,000 characters per request
  • Max words per rewrite: Starter 5,000 / Professional 10,000 / Business 10,000 words
  • Rate limit: 30 requests per minute, 300/day
  • Monthly quota: Free tier gets 5 rewrites/mo; paid plans draw from your monthly word quota
  • Long text: split large documents into ~30,000 character chunks and rewrite each part separately

MCP server (Claude Desktop, Cursor, Claude Code)

Prefer to clean the watermark from inside your AI client? The official claudeclear-mcp server exposes ClaudeRewrite as MCP tools your agent can call mid-workflow β€” no copy-paste. Published on npm, runs over stdio.

Install

npx claudeclear-mcp

Configure your MCP client

Add this to your client config (e.g. claude_desktop_config.json, Cursor's mcp.json, or via claude mcp add). Set your API key (from your account page) to enable rewriting; the image tool works with no key.

{
  "mcpServers": {
    "claudeclear": {
      "command": "npx",
      "args": ["-y", "claudeclear-mcp"],
      "env": {
        "CLAUDECLEAR_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Tools

  • rewrite_text β€” rewrites text to remove the Claude watermark (needs CLAUDECLEAR_API_KEY)
  • strip_image_metadata β€” strips C2PA / EXIF / XMP metadata from an image URL (free, no key)

Package: npmjs.com/package/claudeclear-mcp

Strip image metadata

POST https://removeclaudewatermark.com/api/strip-metadata

Remove EXIF, XMP, ICC, IPTC, C2PA, and all other metadata from images. This strips "Made with Claude" credentials and any other embedded metadata. Free to use, no API key required.

cURL

curl -X POST https://removeclaudewatermark.com/api/strip-metadata \
  -F "file=@image.jpg" \
  -o image-clean.jpg

Supported formats

JPG, PNG, WebP, GIF, TIFF

Response headers

X-Metadata-Removed: EXIF, XMP, ICC Profile, C2PA
X-Original-Size: 1024000
X-Cleaned-Size: 998400

Analyze watermark exposure

POST https://removeclaudewatermark.com/api/analyze

Analyze text for watermark exposure risk and AI-style detection scores. Free to use, no API key required. Returns two measurements: exposure risk (IF watermarked, how confidently could it be detected) and AI-style score (what public detectors like GPTZero see).

cURL

curl -X POST https://removeclaudewatermark.com/api/analyze \
  -H "Content-Type: application/json" \
  -d '{"text": "Your text to analyze..."}'

Response

{
  "exposure_score": 65,
  "exposure_band": "moderate",
  "length_signal": 65,
  "entropy_multiplier": 0.8,
  "exposure_explanation": "...",
  "ai_style_score": 42,
  "style_markers": ["marker 1", "marker 2"],
  "style_explanation": "...",
  "verdict": "...",
  "word_count": 250
}

Errors

  • 401 - missing or invalid API key
  • 402 - free monthly rewrites or paid quota/credits exhausted
  • 429 - rate limit exceeded
  • 400 / 413 - bad request or text too long
  • 502 - the rewrite model failed

Need higher limits or a bespoke integration? Get in touch.