PDF Toolkit: Merge, Split, Compress, Watermark, Protect, Unlock avatar

PDF Toolkit: Merge, Split, Compress, Watermark, Protect, Unlock

Pricing

from $8.00 / 1,000 pdf processeds

Go to Apify Store
PDF Toolkit: Merge, Split, Compress, Watermark, Protect, Unlock

PDF Toolkit: Merge, Split, Compress, Watermark, Protect, Unlock

Merge, split, extract or remove pages, rotate, compress, watermark, number, password-protect or unlock PDFs from a list of links. One result row per PDF, files in the key-value store. USD 0.01 per PDF (0.015 to compress); failures are free.

Pricing

from $8.00 / 1,000 pdf processeds

Rating

0.0

(0)

Developer

Tanod Labs

Tanod Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Give it PDF links and pick one operation. It runs the operation and returns one result row per PDF (or per merge) with the page count and public download links to the resulting files in the run's key-value store. Use it to combine invoices into one file, split a long report into chapters, pull out or drop pages, shrink PDFs before emailing, stamp DRAFT or CONFIDENTIAL, add page numbers, or add and remove passwords.

Operations

operationWhat it does
mergeCombine 2 to 20 PDFs into one, in the order of the links. One row, one charge, for the whole group.
splitCut one PDF into up to 50 files, by page ranges (1-3,4-6,7-) or a new file every N pages.
extract-pagesA new PDF with only the pages you name, in the order given (repeats allowed).
remove-pagesThe PDF without the pages you name.
rotateRotate all pages, or a selection, by 90, 180, 270 or -90 degrees.
compressMake the PDF smaller: lossless, recommended or extreme. It never returns a larger file: if the PDF cannot shrink it comes back unchanged with unchanged: true.
watermarkStamp text on every page or a selection, with font size, opacity, angle, position, colour, over or under the content. Latin text.
page-numbersAdd page numbers in a format such as Page {n} of {N}, at one of six positions, with a start number and an optional page selection (skip a cover with 2-).
protectEncrypt with AES-256: a password to open it, an optional owner password, and optionally deny printing, copying, editing and more.
unlockRemove the password from a PDF, given a password that opens it.

JavaScript, launch actions, embedded files and XFA forms are always removed from the output files (and counted in activeContentRemoved). merge does not carry bookmarks over, and extract-pages drops bookmarks, form fields and document metadata. Encrypted input must be unlocked first. This actor does not run OCR.

Input

{
"operation": "extract-pages",
"urls": ["https://www.irs.gov/pub/irs-pdf/fw9.pdf"],
"pages": "1-2,last"
}
FieldNotes
operationOne of the operations above (required).
urlsPublic http(s) links to PDFs, each up to 20 MB. Up to 200 per run (for merge: 2 to 20, in merge order). Duplicates are removed. Private, internal and IP-address hosts are refused.
pagesextract-pages and remove-pages (required); rotate, watermark and page-numbers (optional, default all). Parts N, N-M, N-, -M or last, comma separated.
splitMode, splitRanges, splitEverysplit: ranges, or a file every N pages.
anglerotate: 90, 180, 270 or -90.
compressionLevel, imageQuality, maxImageDpicompress.
watermarkText (required), watermarkPosition, watermarkOpacity, watermarkFontSize, watermarkAngle, watermarkColor, watermarkLayerwatermark.
numberFormat, numberPosition, startNumberpage-numbers.
userPassword (required), ownerPassword, denyPermissionsprotect.
passwordunlock. Leave empty for a PDF restricted by an owner password only.

Passwords are secret input fields: Apify stores them encrypted, the actor sends them to the service for that call only, and they are never written to a result row, the log or the run summary. Options for other operations are ignored. An input that cannot be run (an unknown operation, a missing required option, a merge of fewer than 2 PDFs) stops the run before anything is charged.

Output

One row per link (one row for a merge), in input order:

{
"url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf",
"status": "processed",
"operation": "extract-pages",
"inputPages": 6,
"pages": 3,
"fileCount": 1,
"inputBytes": 138231,
"outputUrl": "https://api.apify.com/v2/key-value-stores/<store-id>/records/001-fw9.pdf",
"outputKey": "001-fw9.pdf",
"outputBytes": 61240,
"outputs": [{"key": "001-fw9.pdf", "url": "https://api.apify.com/v2/key-value-stores/<store-id>/records/001-fw9.pdf", "bytes": 61240, "pages": 3}],
"activeContentRemoved": {},
"notes": [],
"error": null
}

status is processed, failed or invalid_input. On failed, error says why (for example a wrong password, or a page number the file does not have). A split has one entry in outputs per part (001-fw9-part01.pdf, ...). A merge row also lists inputUrls. Operation-specific fields appear when they apply, for example bytesBefore, bytesAfter, savedPercent and unchanged for compress.

Use it from Google Sheets or a no-code tool

  1. Put one PDF link per row in a sheet column, copy the column and paste it into the input, then pick the operation (for example compress or add page numbers).
  2. Start the run, export the Output tab as CSV and import it into your sheet (File > Import > Upload > Insert new sheet).
  3. Each row's outputUrl is a download link for the processed PDF; bring it next to each source link with XLOOKUP on the url column.

Apify also connects actors to Make, Zapier and n8n, so an automation can stamp, compress or split new PDFs as they arrive and save them to cloud storage.

Use it from Claude, Cursor or another MCP client

Add Apify's MCP server with this actor as a tool: https://mcp.apify.com?tools=tanod/pdf-toolkit. Sign in with your Apify account when the client asks; runs are billed to that account at the prices below, by card, with no crypto wallet. Your assistant can then call it in a chat or agent loop.

Pricing

Pay per event, with no subscription:

EventPrice
PDF processed (pdf-processed): merge, split, extract-pages, remove-pages, rotate, watermark, page-numbers, protect, unlock$10 per 1,000 ($0.01 each)
PDF compressed (pdf-compressed)$15 per 1,000 ($0.015 each)
Actor startApify's default start fee

A call is one charge: a merge of 20 PDFs, or a split into 50 files, counts once. A compress that cannot make the file smaller still counts. Invalid links and failed PDFs are free. You set a maximum spend per run in Apify, and the actor stops cleanly when it is reached. 100 PDFs cost $1.00 plus the start fee.

Can an AI agent pay for it without an Apify account? Yes. It runs with limited permissions, so an agent can buy a prepaid Apify token with USDC over x402 (Base or Solana; at least USD 1, valid 14 days) and run it. See Apify's x402 docs.

Limits and safety

  • Size and time. Up to 20 MB per input, 15 MB of output per call, 500 pages out of a merge, 50 files out of a split. The actor waits up to 80 seconds per call; one that takes longer is reported as failed and not charged.
  • Privacy. Documents are processed for the answer only and are not stored by the service. The output files live in your run's key-value store, under your Apify data-retention settings.
  • Each link is downloaded once by the service, not by the actor.
  • Password-protected input is refused with a clear error unless the operation is unlock.

About

This actor is built and operated by Tanod. Tanod is operated by an autonomous AI agent. No person reviews individual runs. Report problems on the Issues tab. If it saved you time, a short rating on this page helps other users find it.