Skip to main content
All posts
edit watermark PDF API

Watermark Every Page of a PDF at Once

Apply a watermark, a stamp, a header or Bates numbering across a whole document in one go — in the editor or with one API call. One save, one operation, however many pages.

PodPDF Team September 16, 2026 4 min read

Marking a document is almost never a one-page job. The draft watermark goes on all of it. The disclosure bundle gets numbered from the first page to the last. The footer with the matter reference belongs on every sheet, not the one you happened to be looking at.

PodPDF’s editor now asks the question directly: this page, or all pages?

In the editor

Every change that can sensibly cover a document offers the choice — watermarks, text, headers and footers, rotation. Pick “All pages” and one change covers the lot.

It defaults to this page, deliberately. The editor is a page-by-page walk, and nothing should affect more of your document than you were looking at unless you say so. Applying to everything is one click, but it is a click you make on purpose.

Bates numbering never needed the toggle — it has always numbered the whole document, because that is the only thing sequential numbering can mean.

What it costs

Nothing extra. A save is one operation however many pages it touches. A watermark across 200 pages costs exactly what a watermark on one page costs, and so does a document-wide rotation.

That is worth saying plainly because per-page pricing is the usual arrangement elsewhere, and it changes how you use the tool: there is no reason to be frugal about which pages you cover.

In the API

Leave pages out and the change covers every page:

curl -X POST https://api.podpdf.com/pdf/edit \
  -H "X-API-Key: $PODPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "source_key": "pdf-uploads/…",
        "recipe": [
          { "op": "watermark.text", "text": "DRAFT", "rotation": 45, "opacity": 0.15 },
          { "op": "header_footer", "text": "Acme v Byrne — {page} of {pages}" }
        ]
      }'

Name pages and it covers only those:

{ "op": "watermark.text", "text": "DRAFT", "pages": ["p0", "p4"] }   // by page id
{ "op": "watermark.text", "text": "DRAFT", "pages": "1,5-7" }        // or by number

Page ids are the safer form when a recipe also removes or reorders pages — an id always means the same physical page, whatever happened earlier. POST /pdf/inspect returns them.

Order matters, and it is handled for you

Combine a document-wide change with a structural one and the order stops being an implementation detail.

Number a five-page bundle and remove page 3. Number first and you get 1, 2, 4, 5 — a bundle with a gap, which for a disclosure list is a real problem. Remove first and you get 1, 2, 3, 4.

The editor applies changes in three passes so this comes out right without you thinking about it:

  1. Marks and edits — watermarks, text, rotation, metadata
  2. Structural changes — deletions, reordering, keeping a subset
  3. Numbering — Bates and any header using {page} or {pages}

So numbering always sees the document as it will actually be. {pages} counts the pages that survive, not the ones you started with, and a stamp on a page you also delete is simply discarded with the page rather than erroring.

Through the API you control the order yourself — operations apply as written — so if you are assembling recipes by hand, put structural changes before anything that numbers.

Checking before you commit

POST /pdf/edit/preflight takes the same recipe and reports which pages each change resolved to, without writing anything. For an all-pages change on a five-page document you will see resolved_pages: [1, 2, 3, 4, 5], and for numbering you get the first and last values plus the number the next document would continue from.

It is free, so there is no reason not to look first.

Limits

One document at a time, up to 200 pages and 150 MB, with up to 200 changes in a single save. Longer documents get split first, then edited in parts.

edit watermark PDF API
Back to blog

PodPDF is built by XAD Labs, which builds custom PDF processing pipelines at scale.

Start generating PDFs today

$0.005 per PDF on a monthly plan, or $0.01 from one-off credit packs.