---
name: "pdf123"
description: "Index of the 56 PDF123 (pdf123.xyz) PDF tools callable over a REST API with curl, no account needed: merge, split, compress, rotate, convert PDF to and from Word, Excel, images, Markdown and HTML, OCR, watermark, password protect or unlock, redact, sign checks and more. Use when the user needs any PDF operation, or several chained in one request; it points to the per-tool skill with the exact parameters. Also: PDF 工具, PDFツール, PDF 도구, herramientas PDF, outils PDF."
compatibility: "Needs curl 7.76+ and outbound HTTPS to pdf123.xyz, or PDFX_API_BASE pointing at a self-hosted pdfx-server."
---

# PDF123 PDF tools

Every tool on https://pdf123.xyz is a `POST` endpoint that takes `multipart/form-data` (the file as `fileInput`) and returns the processed file. Anonymous use needs no API key.

## Pick a tool

Find the tool below, then fetch its skill for the exact fields and a ready curl command:

```bash
curl -fsS https://pdf123.xyz/skills/pdf123-<tool>.md
```

### Organize

| Tool | Skill | Endpoint | What it does |
| --- | --- | --- | --- |
| Merge | `pdf123-merge` | `/api/v1/general/merge-pdfs` | Combine multiple PDFs into one document. |
| Split PDF | `pdf123-split` | `/api/v1/general/split-pages` | Divide a PDF into separate files. |
| Rotate PDF | `pdf123-rotate` | `/api/v1/general/rotate-pdf` | Change page orientation. |
| Extract Pages | `pdf123-extract-pages` | `/api/v1/general/rearrange-pages` | Pull specific pages into a new file. |
| Remove Pages | `pdf123-remove-pages` | `/api/v1/general/remove-pages` | Delete unwanted pages from a PDF. |
| Adjust page-scale | `pdf123-scale-pages` | `/api/v1/general/scale-pages` | Change the page size of a PDF. |
| Add Page Numbers | `pdf123-add-page-numbers` | `/api/v1/misc/add-page-numbers` | Insert page numbers into a PDF. |
| Remove Blanks | `pdf123-remove-blanks` | `/api/v1/misc/remove-blanks` | Detect and delete blank pages. |
| Split PDF by Chapters | `pdf123-split-by-chapters` | `/api/v1/general/split-pdf-by-chapters` | Split a PDF along its bookmark/chapter structure. |
| Split PDF by Page Count | `pdf123-split-by-size` | `/api/v1/general/split-by-size-or-count` | Split a PDF into parts of N pages each, or into N equal documents. |
| Split PDF by Sections | `pdf123-split-by-sections` | `/api/v1/general/split-pdf-by-sections` | Divide each page into a grid of sections and split along it. |
| PDF To Single Page | `pdf123-to-single-page` | `/api/v1/general/pdf-to-single-page` | Stack every page of a PDF into one long page. The width is that of the widest page; the height is the sum of all page heights. |
| Auto Split PDF | `pdf123-auto-split-pdf` | `/api/v1/misc/auto-split-pdf` | Split a scanned PDF using QR code markers between documents. |
| Overlay PDFs | `pdf123-overlay-pdfs` | `/api/v1/general/overlay-pdfs` | Overlay one PDF on top of another |
| Reorganize Pages | `pdf123-rearrange-pages` | `/api/v1/general/rearrange-pages` | Rearrange, duplicate, or delete PDF pages with visual drag-and-drop control. |

### Convert

| Tool | Skill | Endpoint | What it does |
| --- | --- | --- | --- |
| PDF to Word | `pdf123-convert-to-word` | `/api/v1/convert/pdf/word` | Convert a PDF into an editable Word document. |
| Image to PDF | `pdf123-images-to-pdf` | `/api/v1/convert/img/pdf` | Combine JPG/PNG images into a PDF. |
| PDF to Image | `pdf123-pdf-to-images` | `/api/v1/convert/pdf/img` | Render every PDF page to PNG or JPEG and download a ZIP. |
| HTML To PDF | `pdf123-html-to-pdf` | `/api/v1/convert/html/pdf` | Convert an HTML file into a PDF. |
| PDF to Presentation | `pdf123-pdf-to-presentation` | `/api/v1/convert/pdf/presentation` | Convert a PDF into a PowerPoint/ODP presentation. |
| PDF to RTF (Text) | `pdf123-pdf-to-text` | `/api/v1/convert/pdf/text` | Convert a PDF into plain text or RTF. |
| PDF To PDF/A | `pdf123-pdf-to-pdfa` | `/api/v1/convert/pdf/pdfa` | Convert a PDF into an archival PDF/A or PDF/X format. |
| PDF To Markdown | `pdf123-pdf-to-markdown` | `/api/v1/convert/pdf/markdown` | Convert a PDF into Markdown. |
| PDF to HTML | `pdf123-pdf-to-html` | `/api/v1/convert/pdf/html` | Convert a PDF into an HTML file. |
| PDF to CSV | `pdf123-pdf-to-csv` | `/api/v1/convert/pdf/csv` | Extract tabular data from a PDF as CSV. |
| PDF to Excel | `pdf123-pdf-to-xlsx` | `/api/v1/convert/pdf/xlsx` | Extract tabular data from a PDF as an Excel (.xlsx) workbook. |
| Markdown to PDF | `pdf123-markdown-to-pdf` | `/api/v1/convert/markdown/pdf` | Convert a Markdown file into a PDF. |
| eBook to PDF | `pdf123-ebook-to-pdf` | `/api/v1/convert/ebook/pdf` | Convert an EPUB/MOBI/AZW3 eBook into a PDF. |
| File to PDF | `pdf123-file-to-pdf` | `/api/v1/convert/file/pdf` | Convert an Office document into a PDF using LibreOffice. |
| PDF to XML | `pdf123-pdf-to-xml` | `/api/v1/convert/pdf/xml` | Convert a PDF into an XML file. |
| URL To PDF | `pdf123-url-to-pdf` | `/api/v1/convert/url/pdf` | Convert a live webpage into a PDF. |

### Edit

| Tool | Skill | Endpoint | What it does |
| --- | --- | --- | --- |
| Compress | `pdf123-compress` | `/api/v1/misc/compress-pdf` | Recompress PDF streams to reduce size. Does not downsample images. |
| Linearize PDF | `pdf123-linearize-pdf` | `/api/v1/misc/linearize-pdf` | Optimize a PDF for fast web viewing (page-at-a-time streaming). |
| Repair PDF | `pdf123-repair` | `/api/v1/misc/repair` | Repair corrupted or damaged PDF files online with PDF123 - rebuild structure so the file opens again. |
| Flatten | `pdf123-flatten` | `/api/v1/misc/flatten` | Flatten form fields or the whole document into static content. |
| Edit Metadata | `pdf123-update-metadata` | `/api/v1/misc/update-metadata` | View and edit a PDF's title, author, and other document properties. |
| Extract Images | `pdf123-extract-images` | `/api/v1/misc/extract-images` | Pull the embedded images out of a PDF. |
| Remove image | `pdf123-remove-image-pdf` | `/api/v1/general/remove-image-pdf` | Remove all images from a PDF. |
| Auto Rename | `pdf123-auto-rename` | `/api/v1/misc/auto-rename` | Suggest a file name from the first word of the PDF's text. The PDF itself is not changed. |
| Replace & Invert Colors | `pdf123-replace-invert-color` | `/api/v1/misc/replace-invert-pdf` | Invert colors or replace the color scheme of a PDF for high contrast. |
| Add image | `pdf123-add-image` | `/api/v1/misc/add-image` | Adds a image onto a set location on the PDF |
| Add Attachments | `pdf123-add-attachments` | `/api/v1/misc/add-attachments` | Embed files (attachments) inside a PDF. |
| Crop PDF | `pdf123-crop` | `/api/v1/general/crop` | Set a crop box on every page. Text stays selectable; the file size does not shrink. |
| Extract Image Scans | `pdf123-extract-image-scans` | `/api/v1/misc/extract-image-scans` | Detect and extract scanned photos embedded in a PDF. |
| Decompress PDF | `pdf123-decompress-pdf` | `/api/v1/misc/decompress-pdf` | Reverse PDF stream compression for inspection or editing. |

### Security

| Tool | Skill | Endpoint | What it does |
| --- | --- | --- | --- |
| Add Password | `pdf123-protect` | `/api/v1/security/add-password` | Encrypt your PDF document with a password. |
| Remove Password | `pdf123-unlock` | `/api/v1/security/remove-password` | Remove password protection from your PDF document. |
| Add Watermark | `pdf123-watermark` | `/api/v1/security/add-watermark` | Add text or image watermarks to PDF files |
| Sanitize PDF | `pdf123-sanitize` | `/api/v1/security/sanitize-pdf` | Remove JavaScript, embedded files, metadata and links from a PDF - you choose which. |
| Redact | `pdf123-auto-redact` | `/api/v1/security/auto-redact` | Black out pages that match your search terms. |
| Remove Certificate Signature | `pdf123-remove-cert-sign` | `/api/v1/security/remove-cert-sign` | Strips digital signature fields from a PDF so it can be edited or re-signed. |
| Validate PDF Signature | `pdf123-validate-signature` | `/api/v1/security/validate-signature` | Verify digital signatures and certificates in PDF documents |
| Add Stamp to PDF | `pdf123-add-stamp` | `/api/v1/misc/add-stamp` | Add text or add image stamps at set locations |

### Advanced

| Tool | Skill | Endpoint | What it does |
| --- | --- | --- | --- |
| OCR to Markdown | `pdf123-ocr` | `/api/v1/misc/ocr-pdf` | Read a scanned PDF and download Markdown: native text plus OCR from image pages. |
| Document Info | `pdf123-get-info` | `/api/v1/security/get-info-on-pdf` | Inspect a PDF's metadata, permissions, fonts, and structure. |
| Show Javascript | `pdf123-show-javascript` | `/api/v1/misc/show-javascript` | Extract and display any embedded JavaScript in a PDF. |

## Chain several tools in one request

`POST /api/v1/pipeline` runs up to 8 steps in order, each step's output feeding the next. `op` is the endpoint path after `/api/v1/` (`/api/v1/misc/compress-pdf` becomes `misc/compress-pdf`); `params` takes the same fields as that tool's skill, including its fixed fields.

```bash
API="${PDFX_API_BASE:-https://pdf123.xyz}"
STEPS='[{"op":"general/merge-pdfs","params":{}},{"op":"security/add-watermark","params":{"watermarkText":"CONFIDENTIAL","fontSize":"30","rotation":"45","customColor":"#d3d3d3"}},{"op":"misc/compress-pdf","params":{}}]'
curl -sS --fail-with-body -X POST "$API/api/v1/pipeline" \
  -F "fileInput=@first.pdf" \
  -F "fileInput=@second.pdf" \
  -F "steps=$STEPS" \
  --output-dir "pdf123-output/$(date +%Y%m%d-%H%M%S)" --create-dirs -OJ -w '%{filename_effective} %{content_type}\n'
```

## Other ways in

- OpenAPI: https://pdf123.xyz/v1/openapi.json (file parts only; the per-tool skills list the other fields).
- MCP (JSON-RPC 2.0, needs an API key): `POST https://pdf123.xyz/mcp`. Setup: https://pdf123.xyz/developers/mcp
- API keys, rate limits and errors: https://pdf123.xyz/developers

## Errors and privacy

- Failures return `application/problem+json`; report its `detail`. `413` means the upload is over 100 MiB; on `429` wait for `Retry-After`.
- Uploaded files are deleted after processing. For confidential files, ask before uploading, or point `PDFX_API_BASE` at a self-hosted server.
