PDF Squeezer API Sign Up

Compress PDFs with the Go API

Use the PDF Squeezer PDF compression REST API from Go. Upload a PDF with multipart form data and receive an optimized file.

package main

import (
    "bytes"
    "errors"
    "io"
    "mime/multipart"
    "net/http"
    "os"
)

const apiURL = "https://api.pdfsqueezer.io/v1/compress"

func compressPDF(inputPath, outputPath, apiKey string) error {
    file, err := os.Open(inputPath)
    if err != nil {
        return err
    }
    defer file.Close()

    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)

    part, _ := writer.CreateFormFile("file", "document.pdf")
    io.Copy(part, file)

    writer.WriteField("quality", "85")
    writer.WriteField("maxDimension", "1600")
    writer.WriteField("stripMetadata", "true")
    writer.WriteField("convertToJpeg", "true")
    writer.Close()

    req, _ := http.NewRequest("POST", apiURL, body)
    req.Header.Set("Authorization", "Bearer "+apiKey)
    req.Header.Set("Content-Type", writer.FormDataContentType())

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        return err
    }
    defer resp.Body.Close()

    if resp.StatusCode != 200 {
        b, _ := io.ReadAll(resp.Body)
        return errors.New(string(b))
    }

    out, _ := os.Create(outputPath)
    defer out.Close()
    io.Copy(out, resp.Body)
    return nil
}

Full endpoint reference ยท Authentication

Get a free API key