Split PDF

Pull out the pages you need, or break a PDF into one file per page — free and watermark-free.

Leave blank to split every page into its own file (zipped).

The result downloads automatically when ready.

100% free No signup No watermark Processed in memory, never stored

How it works

  1. Upload. Choose the PDF you want to split (up to 25 MB).
  2. Pick pages. Enter a range such as 1-3,5,8 to extract those pages, or leave it blank to split every page.
  3. Download. Get one combined PDF of the selected pages, or a ZIP with one PDF per page.

About this tool

Split PDF lets you break one document into the parts you actually need. Enter a page range like 1-3,5,8 to pull just those pages into a single new PDF, or leave the box blank to explode the whole document into one file per page, delivered as a ZIP. Pages are copied without re-rendering, so nothing loses quality and text stays selectable. As with every tool here, there's no watermark, no signup, and your file is processed in memory and thrown away afterwards.

What people use it for

  • Extract a single signed page from a long contract
  • Pull chapter 2 out of a scanned book
  • Separate a merged bank statement back into individual pages
  • Grab just the pages you need to send to someone

Developer API

Automate this tool from your own code. Send a POST request to the endpoint below and get the same result the web tool produces. It is rate-limited per IP and needs no signup — API keys for higher limits are coming.

POST https://best.free/api/tools/split-pdf/
Parameter Example Required Notes
file (file) document.pdf Yes PDF, ≤25 MB.
pages 1-3,5 No Range to extract; blank = split all pages.
mode extract No "extract" (one PDF) — blank pages box returns a ZIP.
curl -X POST https://best.free/api/tools/split-pdf/ \
  -F 'file=@document.pdf' \
  -F 'pages=1-3,5' \
  -F 'mode=extract' \
  -o split.pdf
import requests

files = {"file": open("document.pdf", "rb")}
data = {"pages": "1-3,5", "mode": "extract"}

r = requests.post("https://best.free/api/tools/split-pdf/", files=files, data=data)
with open("split.pdf", "wb") as out:
    out.write(r.content)
const fd = new FormData();
fd.append("file", fileInput.files[0]);
fd.append("pages", "1-3,5");
fd.append("mode", "extract");

const r = await fetch("https://best.free/api/tools/split-pdf/", { method: "POST", body: fd });
const blob = await r.blob();  // the split.pdf

Response: A PDF of the selected pages, or a ZIP of one-PDF-per-page.

Frequently asked questions

Type a range like 1-3,5,8 (page numbers start at 1). Those pages are combined into one new PDF. Leave the box blank to split every page.

Every page becomes its own PDF and they are delivered together in a single ZIP file.

Up to 25 MB per PDF on the free tier.

No. Pages are copied exactly, not re-rendered, so text and images are identical to the original.

Neither. No account is needed and nothing is stamped on the output.

No. It is processed in memory and discarded as soon as your split files are ready.

The extract mode keeps pages in document order. To rearrange or recombine documents, use the Merge PDF tool.

Yes. POST your file as multipart/form-data to /api/tools/split-pdf/ and the processed file streams straight back — the same engine the web tool uses, so results are identical. It is rate-limited per IP like the web version and needs no signup; API keys for higher limits are coming. See the API section above for ready-to-run curl, Python and JavaScript examples.