Split PDF

FREE

Split a PDF into separate documents by page ranges. Enter comma-separated page numbers or ranges (e.g. 3,5-8,10).

Upload File
File

Enter page numbers where the document should be cut. Each number creates a new document starting at that page.

Splitting PDF...
Output Files
Error:

Page Ranges
Split by individual pages or custom ranges
Multiple Outputs
Download each part individually or as a ZIP
Quality Preserved
No quality loss — original formatting intact
Secure
Files auto-deleted after processing
Fast
Processing completes in seconds
REST API
Automate PDF splitting via API
# Split PDF at pages 3 and 7
curl -X POST https://www.bastiantechnologies.com/api/pdf/split \
  -H "X-API-Key: your_api_key" \
  -F "pdf=@document.pdf" \
  -F "splitPages=3,7"

# Poll status
curl https://www.bastiantechnologies.com/api/pdf/split/status/{jobId} \
  -H "X-API-Key: your_api_key"

# Download individual file
curl https://www.bastiantechnologies.com/api/pdf/split/download/{jobId}/part-1.pdf \
  -H "X-API-Key: your_api_key" -o part1.pdf

# Or download all as ZIP
curl https://www.bastiantechnologies.com/api/pdf/split/download-zip/{jobId} \
  -H "X-API-Key: your_api_key" -o split.zip
const fd = new FormData();
fd.append('pdf', file);
fd.append('splitPages', '3,7,10');

const { jobId } = await fetch('/api/pdf/split', {
  method: 'POST',
  headers: { 'X-API-Key': 'your_api_key' },
  body: fd
}).then(r => r.json());

// Poll until done
let data;
do {
  await new Promise(r => setTimeout(r, 2000));
  data = await fetch(`/api/pdf/split/status/${jobId}`, {
    headers: { 'X-API-Key': 'your_api_key' }
  }).then(r => r.json());
} while (data.status === 'processing');
import requests, time

headers = {"X-API-Key": "your_api_key"}
r = requests.post("https://www.bastiantechnologies.com/api/pdf/split",
  headers=headers,
  files={"pdf": open("doc.pdf", "rb")},
  data={"splitPages": "3,7,10"})
job_id = r.json()["jobId"]

while True:
    s = requests.get(f".../api/pdf/split/status/{job_id}", headers=headers).json()
    if s["status"] in ["completed", "failed"]: break
    time.sleep(2)
// HTTP Request node — Split PDF
Method: POST
URL: https://www.bastiantechnologies.com/api/pdf/split
Auth Header: X-API-Key: your_api_key
Body Type: Form-Data
Fields:
  pdf        → binary file
  splitPages → "3,7,10"
It means the PDF will be cut before page 3. So you get one document with pages 1-2, and another starting at page 3.
Yes. Entering "3,7,12" splits the document at pages 3, 7, and 12 — giving you 4 output files.
Yes. All uploads use HTTPS and files are auto-deleted from our servers after processing. We never store your content.