Skip to main content

Compress Image API

What this endpoint does: The PDF4me Compress Image REST API reduces the file size of JPG, PNG, and WebP images using intelligent compression algorithms. Send your image as a Base64-encoded string, set the output format and compression level, and receive back a compressed image — all in a single synchronous POST call. Use it to optimise product images for e-commerce pages, shrink uploaded assets in CMS pipelines, generate thumbnails, or reduce bandwidth costs in any application that handles image files.

Authenticating Your API Request

Every PDF4me REST API call must include your API key in the Authorization header. Obtain your key from the developer dashboard and keep it secret — never expose it in client-side code.

Important Facts You Should Not Miss

All four parameters are required — none can be omitted

File Name, File Content, Image Type, and Compression Level must all be present in the request payload. A missing or empty field causes a 400 Bad Request error. Validate all four values in your code before sending the API call.

Image Type must match the actual binary format of File Content

The API uses Image Type to select the correct decompression codec before re-encoding. Sending PNG data with Image Type set to JPG causes a format mismatch error. Always read the actual MIME type or file extension from your source and set Image Type to match.

Max compresses the most but degrades quality — Low preserves quality with modest savings

Max reduces file size by 80–90% — ideal for thumbnails and social media previews where pixel-perfect detail is less important. Medium (60–70% reduction) suits most product and blog images. Low (30–40% reduction) is recommended when you need to preserve fine detail for print, zoom features, or professional photography archives.

REST API Endpoint

MethodEndpoint
POST/api/v2/CompressImage

Base URL: https://api.pdf4me.com

Parameters

⚠️ All four parameters are required. The API returns an error if any field is missing or empty.

ParameterRequiredTypeWhat it doesExample
docNameRequiredStringFilename of the source image including the file extension. Used to identify the format and name the output file. Use descriptive, extension-correct names.product-hero.jpg
docContentRequiredBase64The complete image file encoded as a Base64 string. Supported formats: JPG/JPEG, PNG, WebP. Maximum file size: 50 MB. Do not include a data URL prefix — pass the raw Base64 string only.JVBERi0xLjQK...
imageTypeRequiredEnumOutput image format. Must match the actual format of docContent. Accepted values: JPG · PNG · WebPJPG
compressionLevelRequiredEnumCompression intensity. Max — 80–90% size reduction, good quality (thumbnails, social media). Medium — 60–70% reduction, very good quality (product images, blogs). Low — 30–40% reduction, excellent quality (print, zoom, archives).Medium

Output Fields

FieldTypeDescription
File ContentBase64The compressed image file encoded as Base64. Decode to binary to save as a file.
File NameStringFilename of the compressed output image.

Request Example

Headers

Content-Type: application/json
Authorization: YOUR_API_KEY

JSON Payload

{
"docName": "product-hero.jpg",
"docContent": "JVBERi0xLjQK...",
"imageType": "JPG",
"compressionLevel": "Medium"
}

Response

{
"File Content": "BASE64_COMPRESSED_IMAGE_DATA",
"File Name": "product-hero.jpg"
}

Code Samples

Common Use Cases

E-commerce Product Images

Compress JPG product photos to Medium level before serving on listing pages. Reduces page load time by 60–70% without visible quality loss on standard displays — directly improving Core Web Vitals and conversion rates.

CMS Upload Pipeline

Intercept image uploads in your CMS (WordPress, Contentful, Strapi) and run them through Compress Image at Max level before storing. Thumbnails and hero banners benefit most — users see no quality difference at normal viewing sizes.

Print-to-Web Asset Conversion

High-resolution press images (300+ DPI, often 20–50 MB) can be compressed at Low level to maintain near-print quality while reducing file size by 30–40%. Ideal for photography portfolios, architectural galleries, and product zoom features.

Frequently Asked Questions

What is the maximum file size the Compress Image API accepts?

The API accepts images up to 50 MB. For best performance, keep images under 10 MB. Larger files increase processing time significantly and may exceed request timeouts on slow connections.

Does Image Type need to match the actual binary format of File Content?

Yes — always. The API uses imageType to select the correct decompression codec before re-encoding at the chosen quality level. Sending PNG data with imageType set to JPG causes a format mismatch error. Read the actual MIME type or file extension from your source and set imageType to match exactly.

Which Compression Level should I use for e-commerce product images?

Medium is the recommended level for most product images. It reduces file size by 60–70% while maintaining very good visual clarity for standard monitor and mobile display sizes. Use Low only when your product images include fine textures or details that customers zoom into.

Can I convert and compress an image (e.g. PNG to WebP) in the same API call?

No — Compress Image only compresses within the same format. To convert between formats, call the Convert Image Format endpoint first, then pass the result to Compress Image in a second call. Chain these two calls in your application for a compress-and-convert pipeline.

Is the output File Content returned as Base64 or binary?

The output File Content is Base64-encoded. Decode it to binary before writing to a file. In Python: base64.b64decode(response["File Content"]). In Node.js: Buffer.from(response["File Content"], "base64").

Get Help