Skip to main content
POST
/
documents
/
split
curl --request POST \ --url https://api.luminpdf.com/v1/documents/split \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <api-key>' \ --data ' { "document_id": "695dd6880d951f4de70a7c5d", "method": "ranges", "ranges": [ "1-3,5", "7-9", "12" ] } '
{
  "signed_url": "https://files.luminpdf.com/download/split-abc123?token=xyz789",
  "expires_at": 1755526530000
}
This endpoint requires the following scope:pdf:files

Authorizations

X-API-Key
string
header
required

Provide your API key in the X-API-Key header, e.g., X-API-Key: YOUR_API_KEY.

Body

application/json
method
enum<string>
required

Split method.

  • ranges — Extract specific page ranges into separate files.
  • fixed_size — Split into parts of a fixed number of pages.
Available options:
ranges,
fixed_size
document_id
string

Lumin document ID of the PDF to split. Required when file_url is not provided. Takes priority if both are provided.

To obtain a document ID, upload the file to Lumin first using Upload Document.

file_url
string<uri>

Publicly accessible URL of the PDF file to split. Required when document_id is not provided. Ignored if document_id is also provided.

ranges
string[]

List of page range expressions. Each entry produces one output file. Required when method is ranges.

pages_per_file
integer

Number of pages per output file. Required when method is fixed_size. Must not produce more than 10,000 output files.

Required range: x >= 1
document_name
string

Base name for the output files. Defaults to extracted_{original document name}.

Required string length: 1 - 255

Response

Returns a temporary download URL for the split result (PDF or ZIP).

signed_url
string<uri>
required

Temporary HTTPS URL to download the result. Points to a PDF (single file) or ZIP archive (multiple files). Expires after 30 minutes.

expires_at
integer<unix-epoch>
required

Unix epoch timestamp (in milliseconds) when signed_url becomes invalid.