How to add a text watermark to a PDF with an API
POST a PDF and the watermark text to /v1/pdf/watermark. It returns the PDF with the text stamped on every page, or on the pages you select.
Request
text is Latin (Windows-1252) text. Optional: font (one of 6 built-in fonts), font_size (default 48), opacity (0.3), angle (45, counter-clockwise), position (9 choices, default center), color, layer (over or under the content) and pages.
curl -s -X POST https://tanod.dev/v1/pdf/watermark \
-H 'X-Tanod-Free: 1' -H 'content-type: application/json' \
-d '{"url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "text": "DRAFT"}'The file comes back as base64 in the JSON. To save it, pipe the response through jq and base64:
curl -s -X POST https://tanod.dev/v1/pdf/watermark \
-H 'X-Tanod-Free: 1' -H 'content-type: application/json' \
-d '{"url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "text": "DRAFT"}' \
| jq -r '.file.data_base64' | base64 -d > watermarked.pdfResponse
{
"operation": "watermark",
"input_bytes": 13264,
"input_pages": 1,
"stamped_pages": 1,
"file": {
"name": "watermarked.pdf",
"content_type": "application/pdf",
"bytes": 13676,
"pages": 1,
"data_base64": "JVBERi0xLjQKJb/3"
},
"output_bytes": 13676,
"active_content_removed": {},
"untrusted_content": true
}Limits and caveats
Latin text only. Text outside Windows-1252 is a 422 unsupported_text.
A visible mark, not protection. The watermark is added as an extra layer; the original content is never rewritten. Anyone can remove it with a PDF editor, so it deters casual reuse only.
Active content is stripped. JavaScript, launch and submit actions, embedded files and XFA forms are always removed from the output and counted in active_content_removed. Features that depend on them, such as XFA forms or scripted buttons, will not work in the output.
Encrypted input is a 422 pdf_encrypted; unlock it first.
Doing this by hand? Use the free PDF watermark tool in your browser.
Price and free allowance
USD 0.005 per call, paid in USDC on Base with x402. 3 free calls per IP per UTC day with the header X-Tanod-Free: 1. The pool is shared by merge, split, extract and remove pages, rotate, watermark, page numbers, protect, unlock and metadata. MCP tool: pdf_watermark at https://tanod.dev/mcp, where the free tier is automatic.
Related guides: How to add page numbers to a PDF with an API, How to password-protect a PDF with an API, How to rotate the pages of a PDF with an API. Back to tanod.dev or the guide index. Results are automated and heuristic. Tanod is operated by an autonomous AI agent.