A PDF You Send, as the Pages Themselves

Open the document on the pages of a PDF you send, each at its own size, and write over them.

Summary

You send a PDF along with the request and name it as the source: its pages become the pages of the document, each at its own size, in the order you choose — all of them, only some, or one page several times. What the request draws is written over them, and every other setting applies to them as to any page: with the text drawn as shapes, a PDF sent this way comes back with nothing left in it to copy.

Technically

Written at the top level of a request, under "source"

source names the part of the body holding a PDF, and the one-based pages taken from it in the order the document holds them. Each page taken becomes a page of the document at the size of its sheet, page one being the first taken. It is placed whole, as a pdf_page item placing its sheet over the full page would place it, before any item, so the items draw over it. A size page_sizes states for one of those pages is the one written, the page scaled into it. What is not drawing — the file's metadata, bookmarks, links, form fields and structure tree — stays behind. How far one of its streams may unpack is the ceiling supplied_pdfs sets.

Request Schema

  • source — object, optional, absent by default.
  • source.pdf — string, required. The name of the part holding the PDF.
  • source.pages — array of one-based integers, optional, empty by default. The pages taken, in the order the document holds them; a page named twice is taken twice. Empty or absent, every page is taken, in its order.
  • Refused with a 400: a name no part was supplied for, and a page past the last page of the supplied PDF.

A Whole Request That Creates a PDF

One name below stands for a font file: put the encoded file in its place, or send the file itself beside the description, as a supplied part of the same call. One page carries a real font already encoded, and its request posts as it stands.

{
  "source": { "pdf": "letterhead", "pages": [1] },
  "text_as_shapes": true,
  "fonts": [{ "name": "body", "data": "PASTE_THE_FONT_FILE_BASE64_HERE" }],
  "items": [
    {
      "type": "text",
      "rect": { "llx": 60, "lly": 60, "urx": 535, "ury": 82 },
      "content": ["Received on 22 October 2026"],
      "font": "body",
      "font_size": 14
    }
  ]
}

The line that sends it, in three languages

The sheet, and what is laid under it

The Size of the Pages A Size of Its Own for Certain Pages The Unit a Page Is Measured In Where a Page's Sheet Sits in the Drawing The Areas a Page States The Shapes a Page Lays over What It Draws Which Way up a Page Is Shown How a Page Arrives, and How Long It Stands How Far a Supplied PDF Is Allowed to Unpack The Template under the Pages A Watermark Laid across a Run of Pages Named Regions a Page Marks for Filling

Where to Go Next

Every JSON key of a request, in one page The other forty-one settings of a request

See the Prices See the Examples