API Documentation

PDFPixels Public API

Free to UseNo Auth Required

Getting Started

PDFPixels provides a free public API for image and PDF processing. No authentication required. Just make HTTP requests to our endpoints.

60/min
Rate Limit
100MB
Max Image Size
500MB
Max PDF Size

API Endpoints

POST/api/image/processImage
POST/api/pdf/mergePDF
POST/api/pdf/splitPDF
POST/api/pdf/compressPDF
POST/api/pdf/to-imagePDF
POST/api/pdf/from-imagePDF

Code Examples

Compress Image
// Compress an image
const formData = new FormData();
formData.append('image', imageFile);
formData.append('quality', '85');
formData.append('format', 'webp');

const response = await fetch('https://pdfpixels.com/api/image/process', {
  method: 'POST',
  body: formData
});

const result = await response.json();
console.log('Compressed image:', result.imageUrl);
console.log('Saved:', result.savedPercent + '%');
Resize Image
// Resize an image
const formData = new FormData();
formData.append('image', imageFile);
formData.append('width', '800');
formData.append('height', '600');
formData.append('fit', 'inside');

const response = await fetch('https://pdfpixels.com/api/image/process', {
  method: 'POST',
  body: formData
});

const result = await response.json();
console.log('Resized dimensions:', result.originalDimensions);
Merge PDFs
// Merge PDFs
const formData = new FormData();
formData.append('files', pdfFile1);
formData.append('files', pdfFile2);
formData.append('files', pdfFile3);

const response = await fetch('https://pdfpixels.com/api/pdf/merge', {
  method: 'POST',
  body: formData
});

const result = await response.json();
console.log('Merged PDF:', result.pdfUrl);
console.log('Total pages:', result.pageCount);
Split PDF
// Split PDF
const formData = new FormData();
formData.append('file', pdfFile);
formData.append('mode', 'range');
formData.append('pageRange', '1-3,5,7-9');

const response = await fetch('https://pdfpixels.com/api/pdf/split', {
  method: 'POST',
  body: formData
});

const result = await response.json();
console.log('Extracted pages:', result.extractedPages);

Image Processing Parameters

ParameterTypeRequiredDescription
imageFileYesImage file to process (max 100MB)
qualityIntegerNoOutput quality 1-100 (default: 85)
formatStringNoOutput format: jpg, png, webp, avif, gif, tiff
widthIntegerNoTarget width in pixels
heightIntegerNoTarget height in pixels
targetSizeIntegerNoTarget file size in KB
rotateIntegerNoRotation angle -360 to 360
brightnessFloatNoBrightness 0.5-2.0 (1.0 = normal)
contrastFloatNoContrast 0.5-2.0 (1.0 = normal)
saturationFloatNoSaturation 0.5-2.0 (1.0 = normal)
blurFloatNoBlur radius 0-20
grayscaleBooleanNoConvert to grayscale

Response Format

Success Response
{
  "success": true,
  "imageUrl": "data:image/webp;base64,...",
  "originalSize": 1048576,
  "processedSize": 524288,
  "savedBytes": 524288,
  "savedPercent": 50,
  "originalDimensions": {
    "width": 1920,
    "height": 1080
  },
  "format": "webp",
  "mimeType": "image/webp",
  "quality": 85
}