Extract Pages from PDF

Endpoint #

POST https://pixlab.davix.dev/v1/pdf

Action #

action=extract

Description #

The Extract Pages from PDF action extracts selected pages from a PDF document and generates a new PDF containing only those pages using the H2I engine (PixLab).

This action is part of the public /v1/pdf API surface. It accepts a source PDF and returns a generated PDF output containing the extracted pages. The output file is returned through a signed URL under the public PDF output path.

This action is suitable for workflows such as:

  • extracting specific sections from documents
  • creating smaller PDFs for distribution
  • splitting documents for automated workflows

Request Format #

Requests to /v1/pdf must use:

  • Content-Type: multipart/form-data
  • API key authentication in request headers
  • source PDF upload through the files field

For non-merge PDF actions, the first uploaded PDF file is used as the primary input. This applies to action=extract.

Parameters #

action #

Type: string
Required: Yes
Accepted value: extract

Specifies that the request should extract selected pages from the PDF document.

files #

Type: file upload (multipart/form-data)
Required: Yes

The source PDF document.

  • uploaded through the files field
  • must be a valid PDF upload
  • for this action, the first uploaded PDF file is used as the source input

pages #

Type: string
Required: Conditional
Default: all

Specifies which pages should be extracted.

Supported forms:

  • all
  • first
  • single page such as 1
  • multiple pages such as 1,3,5
  • ranges such as 2-6

The public /v1/pdf reference uses the shared page-selector parser for extract, with values parsed and clamped to the document page count.

Supported Parameters #

The Extract Pages from PDF action supports the following public parameters:

ParameterDescription
actionMust be extract
filesSource PDF upload
pagesPage selector for extraction

These are the documented public parameters for /v1/pdf action=extract.

Full cURL Example #

curl -sS -X POST "https://pixlab.davix.dev/v1/pdf" \
-H "X-Api-Key: <YOUR_API_KEY>" \
-H "Idempotency-Key: pdf-extract-pages-001" \
-F "action=extract" \
-F "files=@/path/to/document.pdf" \
-F "pages=3-5"

This example includes the full documented public parameter surface for the Extract Pages from PDF action:

  • action=extract
  • source PDF upload in files
  • pages
  • optional idempotency header

Success Response #

Successful /v1/pdf requests return either a single output object or a results array, depending on the action. For public documentation, action=extract is safest documented as a single generated PDF output returned through a signed URL. PDF output URLs are served under /pdf/<file>.

{
"url": "https://pixlab.davix.dev/pdf/extracted-pages.pdf",
"request_id": "req_abc123"
}

Response Fields #

url #

Signed output URL for the generated extracted-pages PDF. PDF outputs are served under the public /pdf/<file> path.

request_id #

Request identifier returned by the API when available.

Errors #

The public /v1/pdf endpoint documents the following PDF-route errors:

  • missing_field
  • invalid_parameter
  • unsupported_media_type
  • pdf_page_limit_exceeded
  • rate_limit_exceeded
  • rate_limit_store_unavailable
  • monthly_quota_exceeded
  • server_busy
  • timeout
  • pdf_tool_failed

The shared upload/error layer can also return:

  • invalid_upload
  • file_too_large
  • too_many_files
  • total_upload_exceeded

HTTP Status Codes #

  • 400 → invalid request fields or parameters
  • 413 → upload size/count limits exceeded or other request-size-related PDF limits
  • 415 → unsupported media type
  • 429 → rate limit or monthly quota exceeded
  • 503 → timeout, rate-limit store unavailable, or server busy
  • 500 → PDF processing failure

Usage Notes #

Idempotency-Key is optional and supported for retry-safe request handling. Both Idempotency-Key and X-Idempotency-Key are accepted.

pages selects which pages are included in the generated output PDF.

The output is a new PDF document returned through a signed URL under the public PDF output path.

Output URLs are not intended to be permanent storage. Applications that need long-term storage should store generated files externally.

Was it helpful ?
Scroll to Top