Skip to content
ComPDF
New Release

Open-Source PDF SDK & AI Document Processing

Get the full self-hosted SDK and AI document processing on GitHub. One-click deploy to quickly build your document workflows.

PDF Compression API

Compress and optimize a PDF.

Feature

The ComPDF Self-hosted accepts files and a request JSON string through multipart/form-data, forwards the parameters to the private PDF SDK, and streams the result file back on success.

Synchronous Request

ItemValue
Authenticationx-api-key: your_api_key_here
Request URLPOST http://localhost:8080/api/v1/process/pdf/compress
Content typemultipart/form-data
Success responseResult file stream

Request Parameters

ParameterTypeDescriptionRequired
fileFileSource PDF file.Yes
requestStringJSON string containing the PDF SDK parameters below. If omitted, remaining non-file form-data fields are forwarded as the request object.No

Request Object Parameters

Put the following fields in the request JSON string.

ParameterTypePurpose
profileStringCompression preset selector used by the middle layer. aggressive derives optimizeFlags from imageQuality when optimizeFlags is absent.
optimizeFlagsString[]Optimization actions. Presets may include flags such as RMEMBFONT, RMANNOT, RMDOCINFO, and RMMEDTADATA.
imageQualityNumberCompression image quality from 0 to 100. Presets use 30, 60, or 80.
colorImageUpperPpiNumberColor image maximum PPI.
colorImageTargetPpiNumberColor image target PPI.
colorImageCompressAlgorithmStringColor image compression algorithm, such as jpeg or flate.
colorImageQualityNumberColor image quality from 0 to 100.
grayscaleImageUpperPpiNumberGrayscale image maximum PPI.
grayscaleImageTargetPpiNumberGrayscale image target PPI.
monochromeImageUpperPpiNumberMonochrome image maximum PPI.
monochromeImageTargetPpiNumberMonochrome image target PPI.
monochromeImageCompressAlgorithmStringMonochrome image compression algorithm, such as jbig2 or flate.
passwordStringSource PDF open password. Some routes remove it before forwarding when the SDK endpoint does not accept it directly.
outputFileNameStringOptional output filename. When present, it is used as the preferred download filename.

Request Example

bash
curl -X POST "http://localhost:8080/api/v1/process/pdf/compress" \
  -H "x-api-key: your_api_key_here" \
  -F "[email protected]" \
  -F 'request={"profile":"aggressive","optimizeFlags":"","imageQuality":60,"colorImageUpperPpi":"","colorImageTargetPpi":""}'

Response

On success, the API returns the processed file stream with Content-Type and Content-Disposition headers. On failure, the ComPDF Self-hosted returns a normalized error JSON response.