Endpoint #
POST https://pixlab.davix.dev/v1/pdf
Action #
action=delete-pages
Description #
The Delete PDF Pages action removes selected pages from a PDF document using the H2I engine (PixLab).
This action is part of the public /v1/pdf API surface. It accepts a source PDF, removes the selected pages, and returns an updated PDF output through a signed URL under the public PDF output path.
This action is suitable for workflows such as:
- removing unwanted pages
- cleaning documents before sharing
- preparing files for further processing
Request Format #
Requests to /v1/pdf must use:
Content-Type: multipart/form-data- API key authentication in request headers
- source PDF upload through the
filesfield
For non-merge PDF actions, the first uploaded PDF file is used as the primary input. This applies to action=delete-pages.
Parameters #
action #
Type: string
Required: Yes
Accepted value: delete-pages
Specifies that the request should remove selected pages from the PDF document.
files #
Type: file upload (multipart/form-data)
Required: Yes
The source PDF document.
- uploaded through the
filesfield - must be a valid PDF upload
- for this action, the first uploaded PDF file is used as the source input
pages #
Type: string
Required: No
Specifies which pages should be removed.
Supported forms:
first- single page such as
1 - multiple pages such as
1,3,5 - ranges such as
2-6
Constraints:
- uses the shared page selector syntax
- cannot delete all pages
Because this action cannot delete all pages, using a selector that would remove every page results in validation failure.
Supported Parameters #
The Delete PDF Pages action supports the following public parameters:
| Parameter | Description |
|---|---|
action | Must be delete-pages |
files | Source PDF upload |
pages | Page selector for pages to remove |
These are the documented public parameters for /v1/pdf action=delete-pages.
Full cURL Example #
curl -sS -X POST "https://pixlab.davix.dev/v1/pdf" \
-H "X-Api-Key: <YOUR_API_KEY>" \
-H "Idempotency-Key: pdf-delete-pages-001" \
-F "action=delete-pages" \
-F "files=@/path/to/document.pdf" \
-F "pages=2-4"
This example includes the full documented public parameter surface for the Delete PDF Pages action:
action=delete-pages- 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=delete-pages 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/updated-document.pdf",
"request_id": "req_abc123"
}
Response Fields #
url #
Signed output URL for the generated PDF after page deletion. 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_fieldinvalid_parameterunsupported_media_typepdf_page_limit_exceededrate_limit_exceededrate_limit_store_unavailablemonthly_quota_exceededserver_busytimeoutpdf_tool_failed
The shared upload/error layer can also return:
invalid_uploadfile_too_largetoo_many_filestotal_upload_exceeded
HTTP Status Codes #
400→ invalid request fields or parameters413→ upload size/count limits exceeded or other request-size-related PDF limits415→ unsupported media type429→ rate limit or monthly quota exceeded503→ timeout, rate-limit store unavailable, or server busy500→ 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 to remove from the source PDF.
This action cannot delete all pages from the document. At least one page must remain.
Page numbering uses the shared 1-based page selector behavior used across /v1/pdf page-based actions.
Output files are returned through signed URLs. Applications that need long-term storage should store generated files externally rather than treating output URLs as permanent hosting.
