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