PDF Toolkit: Merge, Split, Compress & Convert PDFs logo

PDF Toolkit: Merge, Split, Compress & Convert PDFs

by Fred JonesGitHubWebsiteUpdated Jul 23, 2026

PDF toolkit for developers & AI agents - merge, split, compress, and convert PDFs to text or from images via simple API calls.

pdf
merge-pdf
split-pdf
+7
|

How to pay

Subscribe

Monthly billing

$19/month

Predictable monthly cost with included usage. Best for steady, high-volume traffic.

  • Unlimited tools within plan limits
  • One API key, billed once a month
  • Cancel any time

PDF Toolkit: Merge, Split, Compress & Convert PDFs

Merge, split, compress, and convert PDFs — plus extract their text — as typed tools an AI agent or script can call directly. Every file is processed in memory for one request and then discarded — no accounts, no uploads to a dashboard, nothing stored.

What it does

Five PDF operations, one typed call each: merge multiple PDFs into one, split a PDF by page ranges or a fixed page count, compress a PDF structurally, extract each page's text, and build a PDF from a set of images. Supply each file as a public file_url (fetched) or file_base64 (decoded) — no file uploads or accounts required.

Who it's for

  • Developers and AI agents wiring PDF operations into a document pipeline, form-processing flow, or report generator.
  • Ops and back-office teams who just need to merge or split a batch of PDFs without installing desktop software.
  • Privacy-conscious users handling sensitive documents who want in-memory-only processing with clearly stated size limits, not a black box.

Tools

  1. merge_pdfs — Merges 2-20 PDFs into one, in order. Example: { "files": [{ "file_url": "https://example.com/a.pdf" }, { "file_url": "https://example.com/b.pdf" }] }
  2. split_pdf — Splits one PDF by page ranges, a fixed page count, or one page per file. Example: { "file": { "file_url": "https://example.com/a.pdf" }, "ranges": "1-2|3-5" }
  3. compress_pdf — Shrinks a PDF via lossless structural compression (no Ghostscript, no image re-encoding). Example: { "file": { "file_url": "https://example.com/a.pdf" } }
  4. pdf_to_text — Extracts each page's plain text. Example: { "file": { "file_url": "https://example.com/a.pdf" } }
  5. images_to_pdf — Combines 1-20 PNG/JPEG images into one PDF. Example: { "images": [{ "file_url": "https://example.com/photo.jpg" }] }

Every tool returns a clear status — OK, INVALID_INPUT, TOO_LARGE, RESULT_TOO_LARGE, UNREACHABLE, CORRUPT_PDF, or PROCESSING_ERROR — so a caller always knows why something didn't come back, not just that it failed.

FAQ

How do I merge PDFs? Call merge_pdfs with 2-20 files; get one merged PDF back, in order. How do I split a PDF? Call split_pdf with a ranges string ("1-2|3-5"), an everyNPages count, or neither for one page per file. How do I compress a PDF? Call compress_pdf — structural compression only, so text-heavy PDFs shrink more than image-heavy ones; bytesBefore/bytesAfter report the real result. How do I extract text from a PDF? Call pdf_to_text for per-page text, capped at 300,000 characters. What if my file is too big? Files over 10MB (or a request over 25MB total) are rejected as TOO_LARGE before any processing. Do I need an API key? No credentials, no accounts.

Trust & limits

Every file is processed in memory for one request and discarded — nothing written to disk or retained. Caps: 10MB per input file, 25MB per request, 8MB per returned result, 300,000 characters / 500 pages for extracted text. compress_pdf is structural compression only, not an image-optimizing compressor. A processing tool, not a document-management system.