apyhub
FILE MANIPULATION

Apply Watermark on PDF API

What it does

PDF Watermark adds text or image watermarks to PDF files and returns the result as a downloadable file or an S3 URL. Send a PDF by upload or by public URL, choose a text watermark like DRAFT or provide a PNG watermark image, and get a watermarked PDF back.

Use POST /url/url or POST /file/url when you want a result URL, and POST /url/download or POST /file/download when you want the processed PDF returned directly. The URL-based endpoints accept file_url, and the image-watermark variants accept watermark_image_url or watermark_image as appropriate. The text-watermark variants accept watermark_text.

Use PDF Watermark when you need to mark review copies, stamp internal documents, or label shared files before distribution. It fits common document workflows where you need consistent page-level watermarking without building PDF processing yourself.

▣ ENDPOINT 01 / 04
POST
Add watermark to PDF (URL → S3 URL)
https://api.eu.apyverse.com/apyhub/add-watermark-to-pdf/url/url

QUICKSTART

GUIDE

Quickstart

Create a watermarked PDF from a public file URL by sending the required file_url.

curl -X POST "https://api.eu.apyverse.com/apyhub/add-watermark-to-pdf/url/url" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "file_url": "https://assets.apyhub.com/samples/sample.pdf"
  }'

What you'll get back

Returns a JSON object with a url string field containing the URI of the generated watermarked PDF.

{
  "url": "https://s3.amazonaws.com/bucket/watermarked.pdf"
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*

About this endpoint

What it does

Adds a watermark to a PDF fetched from a URL and returns a JSON object containing a URL to the watermarked PDF.

Request Body

ParameterTypeMandatoryDescription
file_urlStringYesURL of the source PDF to process. Must be a URI.
watermark_textStringNoText to use as the watermark.
watermark_image_urlStringNoURL of an image to use as the watermark. Must be a URI.

Response

Returns a JSON object with a url string field containing the URI of the watermarked PDF.

ParameterTypeMandatoryDescription
urlStringNoURL of the generated watermarked PDF. Must be a URI.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 04
POST
Add watermark to PDF (file upload → download)
https://api.eu.apyverse.com/apyhub/add-watermark-to-pdf/file/download

QUICKSTART

GUIDE

Quickstart

Upload a PDF and get back a watermarked file download.

curl -X POST "https://api.eu.apyverse.com/apyhub/add-watermark-to-pdf/file/download" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.pdf"

What you'll get back

Returns a binary file download containing the watermarked PDF.

TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
PDF file to watermark.
Output filename stem (without extension). Defaults to `output`.
Watermark text rendered on every page. At least one of watermark_text or watermark_image is required.
PNG image scaled to fit each page as a watermark.

About this endpoint

What it does

Uploads a PDF file and returns the watermarked file as a binary download. You can apply either text watermarking, image watermarking, or both, and optionally set the output filename stem.

Request Body

ParameterTypeMandatoryDescription
fileStringYesPDF file to watermark.
outputStringNoOutput filename stem (without extension). Defaults to output.
watermark_textStringNoWatermark text rendered on every page. At least one of watermark_text or watermark_image is required.
watermark_imageStringNoPNG image scaled to fit each page as a watermark.

Response

Returns a binary file download containing the watermarked PDF.

ParameterTypeMandatoryDescription
binaryStringYesThe response body is a binary PDF file.

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 03 / 04
POST
Add watermark to PDF (file upload → S3 URL)
https://api.eu.apyverse.com/apyhub/add-watermark-to-pdf/file/url

QUICKSTART

GUIDE

Quickstart

Upload a PDF file and provide a watermark text to generate a watermarked PDF.

curl -X POST "https://api.eu.apyverse.com/apyhub/add-watermark-to-pdf/file/url" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.pdf" \
  -F "watermark_text=DRAFT"

What you'll get back

Returns a JSON object with a url string field containing the URI of the generated watermarked PDF.

{
  "url": "https://s3.amazonaws.com/bucket/watermarked.pdf"
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*

About this endpoint

What it does

Uploads a PDF file and applies a watermark using either text or an image, then returns a URL for the watermarked PDF.

Request Body

ParameterTypeMandatoryDescription
fileStringYesPDF file to watermark. Format: binary.
watermark_textStringNoWatermark text to apply.
watermark_imageStringNoWatermark image to apply. Format: binary.

Response

Returns a JSON object with a url string field containing a URI to the generated watermarked PDF.

ParameterTypeMandatoryDescription
urlStringNoURI of the watermarked PDF.

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 04 / 04
POST
Add watermark to PDF (URL → download)
https://api.eu.apyverse.com/apyhub/add-watermark-to-pdf/url/download

QUICKSTART

GUIDE

Quickstart

Download a PDF from a public URL and apply a text watermark.

curl -X POST "https://api.eu.apyverse.com/apyhub/add-watermark-to-pdf/url/download" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "file_url": "https://assets.apyhub.com/samples/sample.pdf",
    "watermark_text": "DRAFT"
  }'

What you'll get back

Returns the generated PDF as a binary response body.

TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
Publicly accessible PDF URL.
At least one of watermark_text or watermark_image_url is required.
Publicly accessible PNG image URL to use as the watermark.

About this endpoint

What it does

Adds a watermark to a PDF fetched from a public URL and returns the resulting PDF as binary data for download.

Request Body

ParameterTypeMandatoryDescription
file_urlStringYesPublicly accessible PDF URL. Must be a URI.
watermark_textStringNoWatermark text. At least one of watermark_text or watermark_image_url is required.
watermark_image_urlStringNoPublicly accessible PNG image URL to use as the watermark. Must be a URI.

Response

Returns binary PDF content as a download response. The output schema is a binary string, so the success payload is not JSON and does not contain named fields.

AttributeTypeMandatoryDescription
binaryStringYesBinary PDF data returned by the endpoint.

Body

Name
Type
Description
bodyREQUIRED
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.