API-dokumentation

Integrera bildoptimering direkt i din applikation med ett enkelt REST API-anrop.

Autentisering

Alla API-anrop kräver en giltig API-nyckel. Skicka nyckeln via headern X-API-Key eller som query-parameter api_key.

API-nycklar skapas av en administratör via adminpanelen.

# Via header (rekommenderat)
curl -H "X-API-Key: DIN_API_NYCKEL" ...

# Via query-parameter
curl "...?api_key=DIN_API_NYCKEL"

POST /api/v1/optimize

Optimera en bild och valfritt konvertera till ett annat format. Returnerar den optimerade bilden direkt.

Parametrar
ParameterTypBeskrivning
image Obligatorisk File Bildfilen som ska optimeras. Max 50 MB. Format: JPEG, PNG, WebP, GIF, AVIF, BMP, TIFF, SVG.
output_format Valfri String Konvertera bilden till detta format. Värden: jpg, png, webp, gif, avif. Om utelämnad behålls originalformatet.
response Valfri String Sätt till json för att få ett JSON-svar med metadata och nedladdningslänk istället för bilden direkt.
Svar (binärt / standard)

Bilden returneras direkt med rätt Content-Type. Extra metadata finns i headers:

HeaderBeskrivning
X-Original-SizeOriginalbildens storlek i bytes
X-Optimized-SizeOptimerade filens storlek i bytes
X-Savings-PercentBesparing i procent
Svar (JSON)

Om response=json skickas med:

{
  "success": true,
  "original_size": 245832,
  "optimized_size": 98412,
  "savings_percent": 59.9,
  "output_format": "webp",
  "mime_type": "image/webp",
  "download_url": "/download.php?id=abc123...",
  "expires_at": "2025-01-15 14:30:00"
}

Kodexempel

cURL
# Optimera en PNG-bild (returnerar bilden direkt)
curl -X POST \
  -H "X-API-Key: DIN_API_NYCKEL" \
  -F "image=@min-bild.png" \
  --output optimerad.png \
  https://din-domän.se/api/v1/optimize

# Konvertera JPEG till WebP
curl -X POST \
  -H "X-API-Key: DIN_API_NYCKEL" \
  -F "image=@foto.jpg" \
  -F "output_format=webp" \
  --output foto.webp \
  https://din-domän.se/api/v1/optimize

# Få JSON-svar med metadata
curl -X POST \
  -H "X-API-Key: DIN_API_NYCKEL" \
  -F "image=@min-bild.png" \
  -F "response=json" \
  https://din-domän.se/api/v1/optimize
Python
import requests

# Optimera och ladda ner
response = requests.post(
  "https://din-domän.se/api/v1/optimize",
  headers={"X-API-Key": "DIN_API_NYCKEL"},
  files={"image": open("bild.png", "rb")},
  data={"output_format": "webp"}
)

with open("optimerad.webp", "wb") as f:
  f.write(response.content)

print(f"Besparing: {response.headers['X-Savings-Percent']}%")
JavaScript (Node.js)
const fs = require('fs');
const FormData = require('form-data');

const form = new FormData();
form.append('image', fs.createReadStream('bild.jpg'));
form.append('output_format', 'webp');
form.append('response', 'json');

const res = await fetch('https://din-domän.se/api/v1/optimize', {
  method: 'POST',
  headers: { 'X-API-Key': 'DIN_API_NYCKEL' },
  body: form
});

const data = await res.json();
console.log(`Besparing: ${data.savings_percent}%`);
PHP
$ch = curl_init('https://din-domän.se/api/v1/optimize');

curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ['X-API-Key: DIN_API_NYCKEL'],
  CURLOPT_POSTFIELDS => [
    'image' => new CURLFile('bild.png'),
    'output_format' => 'webp',
  ],
]);

$result = curl_exec($ch);
file_put_contents('optimerad.webp', $result);
curl_close($ch);

Felkoder

HTTP-kodBetydelse
400Ogiltig förfrågan – saknar bild, ogiltigt format, etc.
401Ogiltig eller saknad API-nyckel.
403API:t är inaktiverat.
405Fel HTTP-metod (använd POST).
500Serverfel vid optimering.
// Felsvar returneras alltid som JSON
{
  "error": "Invalid or missing API key."
}

Format som stöds

FormatInputOutputOptimeringsmetod
JPEGJaJajpegoptim – förlustfri Huffman-optimering, progressiv encoding
PNGJaJaoptipng + pngquant – förlustfri/near-lossless kompression
WebPJaJacwebp – förlustfri re-encoding med maximal kompression
GIFJaJagifsicle – förlustfri optimering
AVIFJaJaImagick – metadata-strippning, re-encoding
BMPJaNejKonvertera till annat format för besparing
TIFFJaNejLZW-kompression, metadata-strippning
SVGJaNejXML-rensning, metadata-borttagning