HT Studio Logo
HT StudioCompressor
REST API

API Reference

Compress images to WebP programmatically. Send images via multipart form, receive a ZIP archive.

Authentication

All requests must include your API key in the x-api-key header. Set the key in your environment as API_KEY.

Requests without a valid key return 401 Unauthorized.

Endpoint

POST/api/compress

Request

Send a multipart/form-data body with the following fields:

imagesFile[]
One or more image files (JPEG, PNG, GIF, WebP, TIFF, BMP, AVIF)
required
qualitynumber
WebP quality 1–100. Default: 80
optional

Response

200ZIP archive (application/zip) with assets/ folder of WebP files
400Bad request — no files, or no valid image files provided
401Missing or invalid API key
500Image processing error

Successful responses include response headers: X-File-Count, X-Original-Size, X-Compressed-Size (bytes).

Examples

cURL

bash
curl -X POST https://your-domain.com/api/compress \
  -H "x-api-key: YOUR_API_KEY" \
  -F "images=@photo.jpg" \
  -F "images=@banner.png" \
  -F "quality=85" \
  --output assets.zip

JavaScript (fetch)

javascript
const form = new FormData();
form.append("images", fileInput.files[0]);
form.append("images", fileInput.files[1]);
form.append("quality", "85");

const res = await fetch("/api/compress", {
  method: "POST",
  headers: { "x-api-key": process.env.API_KEY },
  body: form,
});

const blob = await res.blob();
// blob is a ZIP archive containing assets/*.webp

Python (requests)

python
import requests

files = [
    ("images", ("photo.jpg", open("photo.jpg", "rb"), "image/jpeg")),
    ("images", ("banner.png", open("banner.png", "rb"), "image/png")),
]

res = requests.post(
    "https://your-domain.com/api/compress",
    headers={"x-api-key": "YOUR_API_KEY"},
    files=files,
    data={"quality": 85},
)

with open("assets.zip", "wb") as f:
    f.write(res.content)

ZIP Structure

The downloaded archive always contains a single assets/ folder:

text
assets.zip
└── assets/
    ├── photo.webp
    ├── banner.webp
    └── hero-image.webp

Datenschutzhinweis für API-Nutzer (DSGVO)

Hochgeladene Bilder werden ausschließlich im EU-Rechenzentrum Frankfurt (fra1) verarbeitet und danach sofort gelöscht. Es findet keine Speicherung, kein Logging von Bildinhalten und keine Weitergabe statt.

Wenn Sie über die API Bilder verarbeiten, die personenbezogene Daten Ihrer eigenen Nutzer enthalten (z. B. Porträtfotos), sind Sie als Verantwortlicher im Sinne der DSGVO verpflichtet, einen Auftragsverarbeitungsvertrag (AVV) nach Art. 28 DSGVO abzuschließen. Bitte nehmen Sie dafür über das Impressum Kontakt auf.