SnapPDF
endpoint

Watermark

POST /api/v1/watermark

Stamp a text or image watermark on any / all pages.

credits: 1returns: application/pdf

Parameters

NameTypeRequiredDescription
filemultipart filerequiredSource PDF.
kind"text" | "image"requiredWatermark type.
textstringoptionalRequired when kind=text.
imagemultipart fileoptionalRequired when kind=image.
positionenumoptionalcorners, center, or "diagonal".default: center
opacityfloat 0-1optionalTransparency.default: 0.35
rotationfloat (deg)optionalRotation.default: 0
colorhex stringoptionalText color.default: #888888
tilebooleanoptionalRepeat across the page.
pagesrange specoptionalRestrict to specific pages.

Examples

curl
curl -X POST https://api.snappdf.au/api/v1/watermark \
  -H "Authorization: Bearer $SNAPPDF_API_KEY" \
  -F "file=@doc.pdf" -F "kind=text" -F "text=CONFIDENTIAL" \
  -F "position=diagonal" -F "opacity=0.2" -F "color=#cc0000" \
  -o stamped.pdf
JavaScript
const { pdf } = await snap.pdf.watermark({ file: bytes, kind: 'text', text: 'CONFIDENTIAL', position: 'diagonal', opacity: 0.2 });
Python
snap.pdf.watermark(file=bytes, kind="text", text="CONFIDENTIAL", position="diagonal", opacity=0.2)
PHP
$snap->pdf->watermark(file: $bytes, kind: 'text', text: 'CONFIDENTIAL', position: 'diagonal', opacity: 0.2);
Ruby
snap.pdf.watermark(file: bytes, kind: 'text', text: 'CONFIDENTIAL', position: 'diagonal', opacity: 0.2)
Go
client.Watermark(ctx, &snappdf.WatermarkInput{File: bytes, Kind: "text", Text: "CONFIDENTIAL", Position: "diagonal", Opacity: 0.2})