PDF Squeezer API Sign Up

PDF Compression API Code Examples

Copy-paste examples for compressing PDFs in Python, Node.js, Go, Ruby, PHP, and cURL.

Python

import requests
import os

API_KEY = os.environ.get('PDF_SQUEEZER_KEY')
API_URL = 'https://api.pdfsqueezer.io/v1/compress'

params = {'quality': 85, 'maxDimension': 1600, 'stripMetadata': True, 'convertToJpeg': True}
with open('original.pdf', 'rb') as f:
    response = requests.post(API_URL, files={'file': f}, headers={'Authorization': f'Bearer {API_KEY}'}, params=params)
if response.status_code == 200:
    with open('optimized.pdf', 'wb') as f:
        f.write(response.content)
    print('Ratio:', response.headers.get('X-Compression-Ratio'))

Node.js

const FormData = require('form-data');
const fetch = require('node-fetch');

const form = new FormData();
form.append('file', fs.createReadStream('original.pdf'));
form.append('quality', '85');
form.append('stripMetadata', 'true');

const res = await fetch('https://api.pdfsqueezer.io/v1/compress', {
  method: 'POST',
  headers: { ...form.getHeaders(), 'Authorization': `Bearer ${process.env.PDF_SQUEEZER_KEY}` },
  body: form
});
fs.writeFileSync('optimized.pdf', Buffer.from(await res.arrayBuffer()));

Go

body := &bytes.Buffer{}
w := multipart.NewWriter(body)
part, _ := w.CreateFormFile("file", "document.pdf")
io.Copy(part, file)
w.WriteField("quality", "85")
w.WriteField("stripMetadata", "true")
w.Close()

req, _ := http.NewRequest("POST", "https://api.pdfsqueezer.io/v1/compress", body)
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", w.FormDataContentType())
resp, _ := http.DefaultClient.Do(req)

Ruby

require 'faraday'
require 'faraday/multipart'

conn = Faraday.new(url: 'https://api.pdfsqueezer.io') { |f| f.request :multipart; f.adapter Faraday.default_adapter }
conn.headers['Authorization'] = "Bearer #{ENV['PDF_SQUEEZER_KEY']}"

payload = {
  file: Faraday::Multipart::FilePart.new(File.open('original.pdf'), 'application/pdf', 'document.pdf'),
  quality: 85, maxDimension: 1600, stripMetadata: true, convertToJpeg: true
}
response = conn.post('/v1/compress', payload)
File.binwrite('optimized.pdf', response.body) if response.success?

PHP

$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.pdfsqueezer.io/v1/compress?quality=85&stripMetadata=true',
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PDF_SQUEEZER_KEY')],
  CURLOPT_POSTFIELDS => ['file' => new CURLFile('original.pdf', 'application/pdf')],
  CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($curl);
if (curl_getinfo($curl, CURLINFO_HTTP_CODE) === 200) file_put_contents('optimized.pdf', $response);

cURL

curl -X POST https://api.pdfsqueezer.io/v1/compress \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@original.pdf" \
  -F "quality=85" \
  -F "stripMetadata=true" \
  -o optimized.pdf

Docs · Endpoints · Home

Get a free API key