Skip to main content
CURL
Try it live: Split PDF → API Tester — send a real request from your browser.

POST /v1/pdf/split

When splitting a document the pages parameter controls which pages to split out into individual documents. The page limit should not exceed the number of pages in the document - for example, you cannot split a 100 page document into 200 individual documents, however you can split it into 100 individual documents.
The pages parameter is 1-based, meaning the first page is 1 and not 0.

Request body

Attributes are case-sensitive and should be inside JSON for POST request. for example: { "url": "https://example.com/file1.pdf" } No query parameters accepted.
To see the request size limits, please refer to the Request Size Limits.
string
required
URL to the source file url attribute
string
The callback URL (or Webhook) used to receive the POST data. see Webhooks & Callbacks. This is only applicable when async is set to true.
string
HTTP auth user name if required to access source URL.
string
HTTP auth password if required to access source URL.
string
default:"all pages"
Specify pages as comma-separated page numbers and ranges to process (e.g. “1, 2, 5-10” or “3-” for page 3 to the end). The first-page index is 1. Use ”!” before a number for inverted page numbers (e.g. “!1” for the last page). Use ”*” to split all pages individually. If omitted, all pages are split. The input must be in string format.
boolean
default:"false"
Set async to true for long processes to run in the background, API will then return a jobId which you can use with the Background Job Check endpoint. Also see Webhooks & Callbacks
boolean
default:"false"
For asynchronous requests, set to true to include the result URLs in the completed job response. The initial response still includes a URL to the JSON file containing the split PDF URLs.
string
File name for the generated output, the input must be in string format.
boolean
default:"false"
Defines whether the page range is appended to the output filename. When set to true, the output filename remains exactly as specified in the name parameter. When set to false (default), the filename automatically includes the page range of the extracted pages for each output file.
integer
default:"60"
Set the expiration time for the output link in minutes. After this specified duration, any generated output file(s) will be automatically deleted from PDF.co Temporary Files Storage. The maximum duration for link expiration varies based on your current subscription plan. To store permanent input files (e.g. re-usable images, pdf templates, documents) consider using PDF.co Built-In Files Storage.
string
Pass profile settings as a JSON-encoded string. See Profiles for more information.

Responses

Synchronous response
An asynchronous request returns a jobId and a reserved URL that should be used only after the job succeeds. Poll it via Background Job Check. Errors return error: true with a status code and message. See the response examples and Response Codes. The reserved url points to a JSON file containing the split PDF URLs. With inline: true, the completed job response includes the result URL list.
Inconsistent URL Encoding in cURL Output: When using cURL to make API requests, the output JSON may show URL characters encoded as Unicode escape sequences. For example, the ampersand character (&) may appear as \u0026 in the cURL output. This is normal JSON encoding behavior and does not affect the validity of the URL. The URL will function correctly when used, as JSON parsers automatically decode these escape sequences. If you’re parsing the response programmatically, your JSON parser will handle this conversion automatically.