---
name: "pdf123-auto-split-pdf"
description: "Split a scanned PDF using QR code markers between documents. Runs the PDF123 \"Auto Split PDF\" tool (pdf123.xyz) over its REST API with curl, no account needed. Use when the user wants this done to their file. Also known as: 按二维码自动拆分, Dividir PDF por código QR, QR से अपने आप बाँटें, تقسيم تلقائي برمز QR, Dividir PDF por QR Code, Pisah PDF otomatis menurut QR, Diviser selon les codes QR, Разделить по QR-коду, QRで自動分割, Nach QR-Code teilen, QR로 자동 분할, Tách tự động theo QR, QR koda göre böl, 依 QR 碼自動分割, Dividi PDF con QR, แยกอัตโนมัติตาม QR, Podziel według kodów QR, Розрізати за QR-кодом, Splitsen op QR-code, Asingkan PDF mengikut kod QR, Dela efter QR-kod, Αυτόματος διαχωρισμός με QR, Разделяне по QR код, Parteix per codi QR, Gawanya kwa kodi ya QR."
compatibility: "Needs curl 7.76+ and outbound HTTPS to pdf123.xyz, or PDFX_API_BASE pointing at a self-hosted pdfx-server."
---

# Auto Split PDF (PDF123)

Split a scanned PDF using QR code markers between documents.

Web version: https://pdf123.xyz/auto-split-pdf · All tools: https://pdf123.xyz/skills/pdf123.md

## When to use

- Batch-scan several documents with branded divider sheets
- Drop the duplex back of a separator page
- Avoid outline-based splitting when you control the scan tray

## Run it

Replace the sample file names and values with the user's, then run:

```bash
API="${PDFX_API_BASE:-https://pdf123.xyz}"
curl -sS --fail-with-body -X POST "$API/api/v1/misc/auto-split-pdf" \
  -F "fileInput=@input.pdf" \
  -F "duplexMode=false" \
  --output-dir "pdf123-output/$(date +%Y%m%d-%H%M%S)" --create-dirs -OJ -w '%{filename_effective} %{content_type}\n'
```

## Inputs

Everything is `multipart/form-data`. The command above already sends each field with its default; keep them all and change only the values the user asked for, since some endpoints reject a missing optional field.

| Field | Type | Required | Default | Notes |
| --- | --- | --- | --- | --- |
| `fileInput` | file | yes | | .pdf (one file) |
| `duplexMode` | choice | no | `false` | Duplex scan mode. One of: `true` (Yes), `false` (No) |

## Result

curl saves the result in a new `pdf123-output/<timestamp>/` directory under the server's file name and prints its path and content type. Several output files come back as one ZIP. Tell the user where the file is.

## Limits

- Hard-coded QR payload
- Not blank-page split, not OCR
- With no divider found you get the whole file as one PDF
- Upload limit on this website: 500 MB per file, sent in chunks above about 95 MB. A single direct API request body is capped at 100 MB.

## Errors

- A non-zero curl exit means the request failed. The saved file then holds `application/problem+json`; read it and report its `detail` to the user instead of retrying blindly.
- `413`: the upload exceeds 100 MiB. `429`: wait for `Retry-After` seconds, then retry once.
- Send `X-API-KEY: $PDFX_API_KEY` only if the user has a PDF123 API key; anonymous calls work without it.

## Privacy

Files are uploaded to the API host, processed, and deleted once the response is sent. For confidential files, ask before uploading, or use a self-hosted server via `PDFX_API_BASE`.
