Anthropic Claude Writing Watermark Checker API

The Anthropic Claude Watermark Checker API returns a classifier score as JSON. You cannot read Claude's watermark without Anthropic's secret key.

Most people don't know this about Claude watermarks

The consumer detectors treat Claude like a stamp you can see if you squint. You paste the personal statement, wait for a percentage, and drop a screenshot next to the PDF.

That is not how Claude's watermark works.

You are waiting for a key Anthropic has not given you

From August 2026, new Claude models embed a SynthID-Text-style watermark. It is not a footer. It is not a hidden Unicode character. It is a signal that needs Anthropic's own key to read. Anthropic has said a public detection API is coming. Until that exists, a tool that claims to decode the mark is not reading a watermark. It is guessing from style.

The job on the desk is narrower than that claim. A policy team already holds the draft. An admissions officer already holds the essay. A hiring reviewer already holds the take-home. They need a row they can store — likely Claude-shaped or not — with the caveat written on the same line. The workaround they already run is a browser tab, a percentage, and a PNG in a shared drive. That file does not survive a review, and it never says what the detector could not do.

Most people don't know this about Claude watermarks: the watermark is real, and you cannot read it.

A classifier is not a decoder, and that is the honest product

What I can give you is a writing-style classifier aimed at Claude-shaped copy, returned as structured JSON. The headline field is whether the sample looks AI generated. The row also carries confidence, a likely source, a short rationale, and a limitations note that says, in plain language, that this run did not use Anthropic's key.

That last field is the point. A detector that hides the gap trains you to treat the score as proof. I would rather the row tell you what it is.

I built the Anthropic Claude Watermark Checker API for that gap. You paste a passage or upload a PDF, Word, or text file you already have. The API extracts the writing locally so a large binary is not billed as extra tokens. Long files are sampled from the start, middle, and end, and the character cap stops a 200-page dump from silently burning a run.

Run on Apify.

Three steps, if you want them as a list: put the passage or the file in. Leave the character cap at the default unless you have a reason to send more. Read the AI-generated flag next to the limitations field, not instead of it.

Who this is for

If you are on a policy desk logging likely-Claude drafts while you wait for Anthropic's detector, this is for you. If you screen admissions essays or hiring take-homes and need a repeatable JSON label rather than a screenshot, this is for you. If you are tagging a research corpus, sampling support replies, or attaching a classifier score next to produced files, this is for you.

If you need a courtroom stamp that Claude was involved, wait for Anthropic. This is not that stamp.

Short samples are weak — under about fifty words you do not have much to go on. Scanned, image-only PDFs have no extractable text. Images, audio, and zip archives are rejected. Do not treat the score as legal proof of authorship. Even a real watermark answers whether a model was involved, not who sat at the keyboard.

Input, pricing, and the rest of the caveats live on the Apify Store README for this checker.

If the writing you care about is Gemini's, that is a different mark: I built a Gemini SynthID-Text checker for Google's key. ChatGPT text is not watermarked at all; for ChatGPT I check images and audio, which is the media OpenAI actually marks.

The cost of the old way is a folder of screenshots

The old way is a tab, a percentage, and a PNG. It does not say that the watermark was unreadable. It does not give you a row you can keep next to the file.

If you already have the draft, paste it or upload it. Store the row. Keep the limitations field where a person can see it.

Run on Apify.

The other posts on rainminer sit in the same cluster when the source is a different lab.