PDF Tools
Process existing PDF files without converting them to HTML. Authenticate with your API key, as with the Conversion API.
| Operation | PDF response | JSON with PDF URL | Plans |
|---|---|---|---|
| Merge | POST /v1/tools/merge/direct | POST /v1/tools/merge/sync | All |
| Compress | POST /v1/tools/compress/direct | POST /v1/tools/compress/sync | All |
| PDF/X | POST /v1/tools/convert-pdfx/direct | POST /v1/tools/convert-pdfx/sync | Growth and above |
All three operations can be tried in the dashboard Playground, including PDF/X on Free and Basic.
Merge PDFs from URLs
curl --request POST 'https://api.pdfbolt.com/v1/tools/merge/sync' \
--header 'API-KEY: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"urls": [
"https://example.com/first.pdf",
"https://example.com/second.pdf"
]
}'
The first document's pages precede the second document's pages. Repeated sources are included repeatedly. Merge combines pages; it does not promise to retain document-level signatures, bookmarks, or PDF/X conformance.
Input files
For merge, provide either urls (an ordered array of HTTPS URLs) or pdfs (an ordered array of Base64 strings). Do not combine the two fields.
For compress and PDF/X, provide either url or pdf. These operations accept one PDF, not an array.
URLs must be publicly accessible HTTPS addresses on port 443, up to 2,048 characters. Signed query parameters are supported. Redirects, embedded credentials and private network addresses are not supported. Base64 values must contain the PDF bytes without a data-URL prefix. Input files are not retained for later operations.
To merge uploaded files, send:
{
"pdfs": ["BASE64_FIRST_PDF", "BASE64_SECOND_PDF"]
}
Response
Use /direct to receive PDF bytes with Content-Type: application/pdf. PDFBolt does not store this result for download.
Use /sync to receive the same JSON shape as Sync, including requestId, status, documentUrl, expiresAt, duration and documentSizeMb. The PDF URL expires after 24 hours.
Both endpoints finish processing before responding and use the same credits and output limit. There is no delivery parameter.
Convert to PDF/X
{
"pdf": "BASE64_PDF_BYTES",
"printProduction": {
"colorSpace": "cmyk",
"pdfStandard": "pdf-x-4",
"iccProfile": "fogra39",
"preserveBlack": true
}
}
Send this body to /v1/tools/convert-pdfx/direct or /v1/tools/convert-pdfx/sync. The printProduction object uses the same options as the Conversion API. When omitted, the tool defaults to pdf-x-4, fogra39 and preserveBlack: true. Supported standards: pdf-x-4, pdf-x-1a. Supported profiles: fogra39, fogra51, swop, gracol. Set colorSpace: "cmyk" when selecting an ICC profile; RGB output is not supported by this tool.
The result is checked by PDFBolt's PDF/X validator. A failed validation returns an error without consuming credits. Conversion is not a substitute for your printer's preflight requirements, including bleed, trim and ink coverage.
Compress
{
"url": "https://example.com/document.pdf",
"compression": "medium"
}
Send this body to /v1/tools/compress/direct or /v1/tools/compress/sync. Levels: lossless (default), low, medium, high. If compression would enlarge the file, the original bytes are returned. A successful operation still consumes credits when the PDF is already optimized.
Limits and credits
| Limit | Value |
|---|---|
| Total input PDFs, decoded or downloaded | 50 MB |
| JSON request, including Base64 | 70 MB |
| Merge sources | 2-20 |
| Compress / PDF/X sources | Exactly 1 |
| Total pages, merge or compress | 1,000 |
| PDF/X pages | 100 |
MB means 1,048,576 bytes. Encrypted, empty and invalid PDFs are rejected. Final output is checked after processing against your plan's output limit. The Free API limit is 2 MB; the Free Playground limit is 250 MB. Paid plans retain their existing output limits.
The existing conversion billing rules apply: one credit per started 5 MB of the final PDF, using PDFBolt's reported size rounded to two decimal places, with a minimum of one credit. For example, 5.00 MB costs 1 credit and 5.01 MB costs 2. Input file count and size do not determine the cost. Failures consume no credits.
These endpoints share your existing per-minute, per-hour, per-day and concurrent conversion limits. Responses include x-pdfbolt-conversion-cost and the usual rate-limit headers.
Errors
400: invalid sources/options, inaccessible URL, encrypted/corrupt PDF, page limit, PDF/X validation failure, or PDF/X API unavailable on your plan.401: missing or invalid API key.403: no available credits or a disabled conversion key.413: input/request or final output exceeds its size limit.429: rate limit exceeded.
Errors use the existing error response format. PDF bytes and source URLs are not stored in conversion history; only operation metadata and the result are recorded.