Polotno has no separate watermarking service. A watermark is an ordinary element on the design, so you add it to the design JSON, lock it so the person editing cannot move or delete it, and render. The same watermark comes out whether the file is built in the browser or by the Cloud Render API working through a queue, and it behaves identically on images and on PDFs.
Try it live
Retext the stamp or upload a logo, and the tiling redraws across the whole page. Unlocking the watermark turns it back into an ordinary element you can drag away, while switching off "include in export" keeps it visible on the canvas and leaves the download clean.
How watermarking works
A Polotno design is a JSON document, and a watermark is one more element inside it. You give that element a logo or a line of text and keep it above everything else on the page. Taking selection away stops the person editing from dragging it off.
store.activePage.addElement({
type: 'image',
src: 'https://yourapp.com/watermark.png',
selectable: false,
alwaysOnTop: true,
});Because the watermark lives in the schema, it survives every export path. A browser download and a server-side batch job read the same JSON and produce the same pixels. The overlays and watermarks documentation covers the full set of element behaviours.
Watermark PDF API
A PDF watermark works the way an image watermark does. The stamp is an element on every page of the design, and because the export is a real vector PDF, the text sitting underneath it stays selectable.
Most teams searching for a watermark PDF API are already generating the documents, so the stamp goes on at render time along with everything else on the page. For multi-page documents built from a data source, see PDF generation. If you only want to mark up a PDF you already have, the watermark PDF tool does it in the browser with no code at all.
Watermarking at volume
One template and many data rows is the ordinary shape of a watermarking pipeline. A customer logo goes across a proof before an order is placed, or a trial badge goes on every asset a free-tier user exports.
Post the design to the Cloud Render API and the watermarked file comes back. You can also run the renderer inside your own infrastructure when the images are not allowed to leave your network. Both paths take the identical schema, so a preview in the editor and a file pulled off a queue never disagree. Teams who arrive looking for a watermarking API usually want precisely this, a render step that already knows about the stamp.
Visible in the editor, absent from the file
The two cases people want are opposite ones. A proof watermark belongs in the exported file, while a safe-area marker or an internal review note should only ever appear on the canvas in front of whoever is editing.
Polotno keeps those behaviours separate, so an element can show on the canvas and stay out of the download, or the other way round. Which one applies is a property of the element itself, documented in overlays and watermarks.
What this is good for
- Branding every asset users export from your product, so your name travels with the file.
- Protecting proofs and comps until an order is placed or a licence is paid.
- Marking free-tier exports, then clearing the mark once someone upgrades.
- Stamping approval state or a recipient name across generated documents.
