The Watermark PDF API
for developers

DRAFT, CONFIDENTIAL, or the recipient's name on every page.
One REST call generates the PDF with the watermark built in. Change the text, opacity and rotation per document, or hide it for the final version.

Text and logo watermarks
Per-recipient watermarks for traceability
Turn DRAFT on and off per render
Batch rendering with webhook callbacks
Import designs from Canva

Terminal window
{
"template": TEMPLATE_ID,
"format": "pdf",
"layers": {
"client": { "text": "Acme Corp" },
"watermark": {
"text": "DRAFT",
"color": "#DC2626",
"opacity": 0.18,
"rotation": -35
}
}
}
Terminal window
{
"template": TEMPLATE_ID,
"format": "pdf",
"layers": {
"client": { "text": "Globex Inc." },
"watermark": {
"text": "CONFIDENTIAL",
"color": "#111827",
"opacity": 0.14,
"rotation": -35
}
}
}
Terminal window
{
"template": TEMPLATE_ID,
"format": "pdf",
"layers": {
"client": { "text": "Initech" },
"watermark": {
"text": "Prepared for jane@initech.com",
"color": "#2563EB",
"opacity": 0.22,
"rotation": -30
}
}
}
Stamp DRAFT, CONFIDENTIAL or the recipient's name on contracts, certificates and reports, straight from your app

How the Watermark PDF API works

Step 1: Create your account

Sign up with your email or Google account. You get 50 free API credits, no credit card required.

Step 2: Design the document with a watermark layer

Build your contract, certificate or report in the drag and drop editor, or import an existing PDF or Canva design.

Add a text or image layer named watermark, place it diagonally across the page, and set a default opacity. That layer is what your API calls control.

Step 3: Render watermarked PDFs from your code

Call POST /v1/render with "format": "pdf" and the watermark text for this document. The response includes a URL to the finished PDF.

Need the clean version later? Render again with "hide": true on the watermark layer. Full parameters are in the render API docs.

REST examples

Add a watermark to a PDF via API

One endpoint, any language. Replace TEMPLATE_ID with your template and set TEMPLATED_API_KEY from your dashboard.

Stamp a diagonal DRAFT watermark on a contract.

Terminal
curl -X POST https://api.templated.io/v1/render \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TEMPLATED_API_KEY" \
-d '{
"template": "TEMPLATE_ID",
"format": "pdf",
"layers": {
"client": { "text": "Acme Corp" },
"watermark": {
"text": "DRAFT",
"opacity": 0.18,
"rotation": -35
}
}
}'

Response

{
"id": "ce424057-6b54-41bb-afec-adc35a2b9175",
"url": "https://cdn.templated.media/render/ce424057-6b54-41bb-afec-adc35a2b9175.pdf",
"format": "pdf",
"templateId": "1f1231-dasd123-fsdf12312-fds4123-asdas23",
"templateName": "Service Agreement",
"createdAt": "2026-10-12 09:30:58",
"externalId": "contract-1042"
}

Final version, no watermark

"layers": {
"watermark": { "hide": true }
}

Same template, same data, one flag. The signed contract or paid certificate renders clean, so you never maintain a second design.

Parameters

Every watermark setting, per request

Override these on your watermark layer in each call. In multi-page templates, layers applies to every page that has a layer with that name, so one key stamps the whole document.

Watermark layer properties

text string
The watermark wording: DRAFT, CONFIDENTIAL, PAID, or a recipient name and email.
image_url string
A logo or stamp image, when the watermark layer is an image instead of text.
opacity double
From 0 to 1. Values between 0.1 and 0.25 read as a watermark without hiding the content.
rotation integer
Angle in degrees. -30 to -45 gives the classic diagonal stamp.
color string
Hex color of the watermark text, e.g. "#DC2626".
font_size string
CSS size like "96px" to scale the watermark per document.
hide boolean
Set to true to render the final, signed or paid version without the watermark.

Render options

format string
Set to "pdf". The same template also renders PNG, JPG or WebP previews.
flatten boolean
Flattens transparency into the page for print-ready files.
merge boolean
Merges every page of a multi-page template into one PDF.
async + webhook_url boolean + string
Queue the render and receive the finished file at your endpoint. Use it for batches.
external_id string
Your contract, order or user ID, so each watermarked PDF maps back to your records.
See the full list in the Create a render docs.

Use cases

Watermarks your product can issue automatically

If your system knows the status of a document, it can stamp it. These are the common setups.

Contracts and proposals

DRAFT on every page while the deal is in negotiation. When the contract is signed, render it again with the watermark hidden.

Certificates and diplomas

SAMPLE or SPECIMEN on previews, a clean file after payment or approval. Pairs with the Certificate Generator API.

Confidential reports

CONFIDENTIAL plus the recipient email on board packs, due diligence files and investor updates, so a leaked copy points to its source.

Drafts and approvals

FOR REVIEW with the version number and date on documents that go through sign-off, so nobody prints an outdated draft.

Invoices and statements

PAID, OVERDUE or COPY stamps driven by billing status. See how teams automate invoice PDFs.

Ebooks and digital products

"Licensed to" the buyer on every page of a guide, workbook or course handout, generated at checkout.

Batch

Watermark a whole batch without blocking

Loop over your records and send each render with "async": true and a webhook_url. Templated queues the work and posts every finished PDF back to your app, tagged with your external_id.

Drafts get the watermark, signed documents get hide: true, and the decision lives in your code, not in a second template.

No code? Upload a CSV or Excel file with the spreadsheet integration, or connect Zapier, Make or n8n.

batch-watermark.mjs
const contracts = await db.contracts.findMany({ where: { sentAt: null } });
for (const contract of contracts) {
await fetch('https://api.templated.io/v1/render', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.TEMPLATED_API_KEY}`,
},
body: JSON.stringify({
template: 'TEMPLATE_ID',
format: 'pdf',
async: true,
external_id: contract.id,
webhook_url: 'https://yourapp.com/hooks/templated',
layers: {
client: { text: contract.clientName },
watermark: contract.signed
? { hide: true }
: { text: 'DRAFT', opacity: 0.18, rotation: -35 },
},
}),
});
}

Powerful Editor. Dynamic Templates.

Create stunning, professional designs in minutes.
Just drag, drop, resize, and customize.

Real-time Canvas Editor

What you see is what you get.
See your changes instantly as you make them.

Pre-designed Professional Templates

Browse our Template Gallery and customize ready-made designs in minutes.

Design with AI

Use our AI Template Generator to quick-start your own templates.

Import from Canva

Import your templates from Canva and customize them in our editor.

White Label Editor

Embed our Editor to your site or app and let your users create and customize their own designs directly on your platform.

Compare

Watermark API vs. PDF libraries, answered honestly

Templated APILocal library
pdf-lib, pypdf, iText
Free online tool
Best forDocuments you generatePDFs you already haveOne-off files
Watermark designVisual editor, any font or logoCoordinates and fonts in codeText or image, basic placement
Per-recipient textOne JSON fieldYou write itManual, file by file
InfrastructureNone, hosted with CDN URLsYour servers, workers and fontsNone, runs in your browser
BatchAsync renders and webhooksYour own queueNo
Stamp arbitrary existing PDFsNo*YesYes
Cost1 credit per PDF pageFree library + your time (iText is AGPL or paid)Free

*Import a PDF layout into the editor once to turn it into a reusable template.

Already have the PDFs? If the files exist before you need the watermark (uploads, scans, exports from another system), a local library like pdf-lib or pypdf is the simpler path, and our free Watermark PDF tool handles one-off files in your browser. If your app generates the document, the watermark belongs in the template and the PDF Generator API does both in one call.

Part of the PDF Generator API

Watermarks are one layer. The PDF is yours.

The watermark rides on the same render that fills in names, dates, images, QR codes and signatures. Invoices, certificates, reports and contracts all come out of one API with multi-page output, CMYK for print and webhook delivery.

Explore the PDF Generator API

Pricing

Pay per page, not per watermark

50
free credits to start
1
credit per PDF page
0
servers to maintain

The watermark costs nothing extra. A 3-page watermarked contract uses 3 credits.

See plans

FAQ

Frequently asked questions

Can I add a watermark to a PDF via API?

Yes. Add a text or image layer named watermark to your Templated template, then call POST /v1/render with format "pdf" and the watermark text, opacity and rotation you want. The API returns a URL to the watermarked PDF.

Can I watermark PDFs I already have?

Templated generates the PDF and the watermark together from a template. To reuse an existing layout, import the PDF into the editor once and render from it. For stamping arbitrary files you did not generate, use a local library, or the free Watermark PDF tool for one-off files.

Can each recipient get a different watermark?

Yes. Pass the recipient name, email or order ID as the watermark text in each render request. Per-recipient watermarks make leaked copies traceable without extra tooling.

How do I remove the watermark for the final version?

Render again with "hide": true on the watermark layer. The same template and data produce the clean version, so draft and final never drift apart.

Can I use a logo as a watermark?

Yes. Make the watermark an image layer and pass image_url with your logo or stamp. Set opacity between 0.1 and 0.25 so the content stays readable.

Can recipients remove the watermark?

The watermark is drawn into the page content, not added as an annotation or an optional layer, so it cannot be switched off in a PDF viewer. As with any watermark, someone with a PDF editor can still edit page content, so pair it with per-recipient text for traceability.

How do I watermark PDFs in bulk?

Send one render per document with "async": true and a webhook_url, and each PDF posts back to your app when it is ready. Without code, upload a CSV through the spreadsheet integration.

Which languages are supported?

Any language that can send an HTTPS request. This page shows cURL, Node.js and Python, and the render API docs add Java and PHP examples.

How much does the Watermark PDF API cost?

Each PDF page uses one credit, and the watermark adds nothing. New accounts get 50 free credits with no credit card. See the plans.

What our customers say

People love how great our product works and how we're always there to help

Rated 4.7

"Brilliant piece of software. Reasonably priced (vs Canva's outrageously expensive API), and despite a few intricacies with the editor, a really fully-featured document generation API. Really great support too from Pedro, the founder!"

August 17, 2025
JB

Jacob Burns

"Great customer service. Templated is a great tool and easy to work with, and their API just makes sense. It's fast, and great for automating visuals. What really stands out is their customer service quick replies, actually helpful, and clearly invested in their users. Smart product, built right."

March 17, 2025
BS

Brix Studio

"Life-saving and incredibly intuitive! This app is absolutely phenomenal! It literally saved my life and my automations on MAKE. The idea behind it is brilliant, and the execution is flawless. It's extremely intuitive, making it super easy to work with, even for those who aren't tech experts. The user-friendly interface and seamless functionality make automation effortless. I highly recommend it to anyone looking for a reliable and efficient solution!"

March 17, 2025
Filipe Souza Profile Photo

Filipe Souza

Basic Invitation

"Great time to value. It's simple to use, it does what it says on the tin, not obscure pricing or documentation - everything is as you expect it, and they have great customer service!"

March 13, 2025
EB

Elias Benussi

"After comparing several similar options, I ultimately chose Templated. I'm really enjoying its ease of use and impressive performance!"

December 19, 2024
Siddharth Elango Profile Photo

Siddharth Elango

"I love it. Great. I use it for a business purposes and works very well with make.com."

December 16, 2024
J

Jakub

"Templated is a game-changing innovation in programmatic design! So many use cases here, this a better option than Canva because they make their API private to enterprise customers only. Can't to see what the future has in store for this amazing company."

December 16, 2024
AR

Antonio Romero

"Great Customer service. A cool guy name Pedro start the conversation with me, as first I though It was an bot so I chat with him in my first language and took a moment for me to realise he is a real person (LOL), shout to them for taking their client even small issue!"

December 16, 2024
K

Kiennguyrn

"This is a clever idea, especially in concert with programmatic (AI-generated) SEO."

17 January 2024
Ryan Hoover Profile Photo

Ryan Hoover

Creator of ProductHunt

"The editor is easy to use, very similar to Canva and the API is simple enough to integrate on the backend."

20 February 2024
Halem Wenderson Profile Photo

Halem Wenderson

Developer at Telvetto

"Very useful service and great support team."

28 October 2024
John Allison Profile Photo

John Allison

Developer

"I have so many ideas running through my head right now of use cases I can do with your API using Bubble.io."

17 January 2024
Jesus Vazquez Profile Photo

Jesus Vazquez

Founder of Hustling Labs

"The possibilities with Templated are endless. The templates are super easy to set up and incredibly versatile. I plan to use this for various solutions in my own apps as well as my clients' apps in the future."

15 April 2024
Mike Mathisen Profile Photo

Mike Mathisen

No-code developer

"Love the tool and love the support from Pedro. The best of templated is how easy it is to create new templates!"

21 October 2024
Borja Pallasá YouTube Profile Photo

Borja Pallasá

No-code & AI YouTuber

Ship watermarked PDFs this sprint

Your first watermarked PDF is five minutes away. Start free with 50 API credits

No Credit Card Required