---
title: Split PDF by Page Range API
slug: split-pdf-by-page-ranges
url: https://apyhub.com/freedailypro/service/split-pdf-by-page-ranges
provider: FreeDailyPro
tags: [split, pdf, extract-pdf, range, page-ranges]
auth: api_key
version: v1
service_type: sync
endpoints: 1
atoms: 10
mcp: true
---

# Split PDF by Page Range API

Split a PDF into separate files using semicolon-separated page ranges like 1-3;5;7-9. Get each file back as Base64 in a JSON response.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| POST | `https://api.eu.apyhub.com/freedailypro/split-pdf-by-page-ranges/split` | What it does Splits an uploaded PDF into page selections based on the page ranges provided. The res… | 10 |

## Endpoint reference

### Split a PDF by page ranges

`POST https://api.eu.apyhub.com/freedailypro/split-pdf-by-page-ranges/split` · 10 atoms · accepts `multipart/form-data` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `file` | body | string (binary) | yes | The PDF. Up to 20 MB. |
| `ranges` | body | string | yes | Semicolon-separated pages or ranges, one group per output, for example 1-3;5;7-9 |
| `combineIntoOne` | body | boolean | no | Check to return a single PDF with all selected pages |

### Quickstart

Split a PDF into the page ranges you specify. Each semicolon-separated range becomes its own PDF.

```bash
curl -X POST "https://api.eu.apyhub.com/freedailypro/split-pdf-by-page-ranges/split" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.pdf" \
  -F "ranges=1-3;5;7-9"
```

#### What you'll get back

A JSON response containing a `files` array. Each item has the generated file's `name` and its Base64-encoded content in `base64`.

```json
{
  "files": [
    { "name": "split_1.pdf", "base64": "JVBERi0xLjQK..." },
    { "name": "split_2.pdf", "base64": "JVBERi0xLjQK..." },
    { "name": "split_3.pdf", "base64": "JVBERi0xLjQK..." }
  ]
}
```

The example above returns three files, one for each of `1-3`, `5` and `7-9`.

## About

## What it does

PDF Splitter lets you send a PDF and split it by page ranges. You provide the PDF file, a semicolon-separated `ranges` string such as `1-3;5;7-9`, and optionally check `combineIntoOne` if you want all selected pages returned as a single PDF.

Use it when you need to extract specific sections from a larger document without manual editing. Typical cases include separating invoice pages, pulling out chapters from reports, or generating a smaller review copy for internal workflows.

The response is a JSON object containing a `files` array. Each item includes the generated filename (`name`) and the Base64-encoded PDF content (`base64`). Each semicolon-separated range produces its own file. If `combineIntoOne` is checked, the selected pages are returned together in one PDF.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/freedailypro/service/split-pdf-by-page-ranges
