How to find and remove watermarks with an AI agent
Leave feedback
On this page
“Can you take the DRAFT off?” is a two-call job, and doing it in the right order is what keeps the answer honest.
Note
The commands and config snippets on this page are for the .NET build of the server — the only platform available today. Installation and client setup: MCP server for .NET. Other platforms will expose the same tools with their own launch command; everything else on this page applies unchanged.
1. Search
Does contract.pdf have a watermark, and what does it say?
search_watermarks reports the watermark objects the engine can identify. This step matters because of what it rules out: a document that looks watermarked but returns nothing has the mark baked into its content, and no removal call will take it out.
2. Remove
Remove the DRAFT watermark but leave the company logo.
remove_watermarks with textFilter: "DRAFT" removes only the matching marks and saves <name>_unwatermarked.<ext>. Without a filter it removes every watermark it can identify.
3. Verify
Now search the cleaned file and confirm what is left.
A second search on the produced file is the difference between “removed” and “reported as removed”. It costs one call and it is the one people skip.
What will not come out, and why
The mark is
Removable?
A watermark object added by this server or the GroupDocs library
Yes
A watermark object added by many common tools
Usually
Text drawn into the page content
No — it is content, not a watermark
Pixels flattened into a page image
No — nothing distinguishes it from the page
For the last two, removal is not a watermark problem: covering an area is redaction, and a genuinely clean copy has to come from the source document.
A word on intent
This tool exists because documents legitimately outlive their marks — a DRAFT becomes final, a template carries an old brand, an internal mark should not reach an archive. Removing a watermark from a document you have no right to redistribute is a different matter, and no API changes that.
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.