Eine kostenlose, öffentliche REST-API, die Raster- und Vektorbilder konvertiert und optimiert. Eine Datei hochladen, schnelle Verarbeitung, als Antwort eine Download-URL.

# Convert SVG to WebP
curl -X POST https://jinero.online/api/v1/images/convert \
  -F "[email protected]" \
  -F "format=webp" \
  -F "preset=balanced"
const form = new FormData();
form.append("image", file);
form.append("format", "webp");
form.append("preset", "balanced");

const r = await fetch("https://jinero.online/api/v1/images/convert", { method: "POST", body: form });
const { download_url, new_size } = await r.json();
console.log(download_url);

Alle Endpunkte sind öffentlich – kein API-Schlüssel nötig. Konvertierung und Optimierung sind CPU-intensiv, daher sind die Rate-Limits strenger als bei der Fonts API. Die folgenden Limits gelten pro IP.

# Anonymous limits (per IP):
#   POST /convert     5  req/min
#   POST /optimize    5  req/min
#   GET  /download/*  10 req/min
#   GET  /formats     60 req/min

# All responses include:
#   X-RateLimit-Limit: 5
#   X-RateLimit-Remaining: N
#   Retry-After: seconds (on 429)

Lade ein Bild hoch und erhalte es in einem anderen Format zurück. Ideal für den Umstieg auf moderne Webformate (WebP, AVIF).

POST https://jinero.online/api/v1/images/convert
ParameterTypBeschreibung
image Datei (multipart) Eingabedatei. Akzeptiert jpg, jpeg, png, gif, bmp, webp, avif, heic, svg. Max. 10 MB.
format string Ausgabeformat: png, jpeg, webp oder avif.
preset string Qualitäts-Preset: light, balanced (Standard) oder strong.
curl -X POST https://jinero.online/api/v1/images/convert \
  -F "[email protected]" \
  -F "format=webp" \
  -F "preset=balanced"
// Browser FormData example
const fileInput = document.getElementById("file");
const form = new FormData();
form.append("image", fileInput.files[0]);
form.append("format", "webp");
form.append("preset", "balanced");

const res = await fetch("https://jinero.online/api/v1/images/convert", {
  method: "POST",
  body: form,
});
const data = await res.json();
window.location = data.download_url;
$response = Http::attach(
    "image",
    file_get_contents("photo.png"),
    "photo.png"
)->post("https://jinero.online/api/v1/images/convert", [
    "format" => "webp",
    "preset" => "balanced",
]);

$result = $response->json();
$webpUrl = $result["download_url"];
Beispielantwort
{
  "success": true,
  "session_id": "1d2e3f...",
  "original_name": "photo.png",
  "original_format": "png",
  "output_format": "webp",
  "original_size": 1024512,
  "new_size": 156320,
  "savings_percent": 84.7,
  "dimensions": "1920x1080",
  "preset": "balanced",
  "download_url": "https://jinero.online/api/v1/images/download/1d2e3f...",
  "expires_in_minutes": 60
}

Komprimiert, ohne das Format zu ändern. Praktisch, um PNG/JPG-Dateien zu verkleinern, die schon im richtigen Format, aber zu groß sind.

POST https://jinero.online/api/v1/images/optimize
ParameterTypBeschreibung
image Datei (multipart) Rasterbild (PNG, JPG, GIF, BMP, WebP, AVIF, HEIC). SVG wird hier nicht akzeptiert – rasterisiere es zuerst über /convert.
preset string light = nahezu verlustfrei, balanced = empfohlen, strong = maximale Kompression.
curl -X POST https://jinero.online/api/v1/images/optimize \
  -F "[email protected]" \
  -F "preset=strong"
const form = new FormData();
form.append("image", file);
form.append("preset", "balanced");

const r = await fetch("https://jinero.online/api/v1/images/optimize", { method: "POST", body: form });
const { new_size, savings_percent } = await r.json();
console.log(`Saved ${savings_percent}%`);
$res = Http::attach("image", file_get_contents("big.jpg"), "big.jpg")
    ->post("https://jinero.online/api/v1/images/optimize", ["preset" => "strong"]);
$data = $res->json();
Beispielantwort
{
  "success": true,
  "session_id": "...",
  "original_format": "jpeg",
  "output_format": "jpeg",
  "original_size": 2354821,
  "new_size": 612491,
  "savings_percent": 74.0,
  "download_url": "https://jinero.online/api/v1/images/download/..."
}

Wandelt Rastergrafiken mit VTracer in sauberes SVG um. Ideal für Logos, Icons und flache Illustrationen. Liefert sowohl das rohe SVG-Markup als auch ein fertiges ZIP-Paket.

POST https://jinero.online/api/v1/images/vectorize
ParameterTypBeschreibung
image Datei (multipart) Rasterbild (jpg, jpeg, png, gif, bmp, webp). Max. 10 MB.
preset string logo (Standard) · illustration · photo · sketch. Bestimmt Farbquantisierung + Pfadvereinfachung.
curl -X POST https://jinero.online/api/v1/images/vectorize \
  -F "[email protected]" \
  -F "preset=logo"

# Then fetch the SVG:
curl https://jinero.online/api/v1/images/vectorize/svg/SESSION_ID > out.svg
const form = new FormData();
form.append("image", file);
form.append("preset", "logo");

const r = await fetch("https://jinero.online/api/v1/images/vectorize", { method: "POST", body: form });
const { svg_url } = await r.json();
const svg = await fetch(svg_url).then(x => x.text());
Beispielantwort
{
  "success": true,
  "session_id": "...",
  "output_format": "svg",
  "preset": "logo",
  "dimensions": "1024x1024",
  "svg_url": "https://jinero.online/api/v1/images/vectorize/svg/...",
  "download_url": "https://jinero.online/api/v1/images/vectorize/download/..."
}

Hintergrundentfernung per KI (rembg / u2net-Familie). Liefert ein PNG mit transparentem Hintergrund. Eingabe max. 5 MB, damit die Latenz im Rahmen bleibt.

POST https://jinero.online/api/v1/images/remove-background
ParameterTypBeschreibung
image Datei (multipart) Rasterbild. Max. 5 MB.
preset string standard (Standardwert, schnell) · portrait (bessere Haarkanten) · quality · ultra (am langsamsten, am besten).
curl -X POST https://jinero.online/api/v1/images/remove-background \
  -F "[email protected]" \
  -F "preset=quality"
const form = new FormData();
form.append("image", file);
form.append("preset", "portrait");

const r = await fetch("https://jinero.online/api/v1/images/remove-background", { method: "POST", body: form });
const { download_url } = await r.json();
Beispielantwort
{
  "success": true,
  "session_id": "...",
  "output_format": "png",
  "preset": "quality",
  "dimensions": "1920x1080",
  "download_url": "https://jinero.online/api/v1/images/remove-background/download/..."
}

KI-Hochskalierung um 2× mit Real-ESRGAN. Öffentlich ist nur 2× verfügbar – höhere Faktoren (4×) und andere Modi (Gesichtswiederherstellung, Entrauschen, auto) gibt es wegen der GPU-Kosten vorerst nur in der Weboberfläche.

POST https://jinero.online/api/v1/images/upscale
ParameterTypBeschreibung
image Datei (multipart) Rasterbild. Max. 15 MB. Formate: jpg, jpeg, png, webp, bmp.
scale integer Derzeit wird nur "2" unterstützt. Andere Modi (face, denoise, auto) sind vorübergehend nur in der Weboberfläche verfügbar.
curl -X POST https://jinero.online/api/v1/images/upscale \
  -F "[email protected]" \
  -F "scale=2"
const form = new FormData();
form.append("image", file);
form.append("scale", "2");

const r = await fetch("https://jinero.online/api/v1/images/upscale", { method: "POST", body: form });
const { download_url, dimensions } = await r.json();
Beispielantwort
{
  "success": true,
  "session_id": "...",
  "mode": "upscale",
  "scale": 2,
  "output_format": "png",
  "dimensions": "3840x2160",
  "download_url": "https://jinero.online/api/v1/images/upscale/download/..."
}

Ruft das binäre Ergebnis ab. Sitzungen sind nach dem Erstellen 60 Minuten gültig, danach wird die Datei gelöscht. Jeder KI-Endpunkt hat einen eigenen Download-Pfad (siehe Beispielantworten).

GET https://jinero.online/api/v1/images/download/{session_id}
curl -L -o output.webp https://jinero.online/api/v1/images/download/1d2e3f...
// Trigger browser download
window.location.href = data.download_url;

Ermittle verfügbare Ausgabeformate, Presets und Limits zur Laufzeit – praktisch für dynamische Oberflächen, die neue Formate automatisch übernehmen.

GET https://jinero.online/api/v1/images/formats
curl https://jinero.online/api/v1/images/formats
const r = await fetch("https://jinero.online/api/v1/images/formats");
const { output_formats, presets } = await r.json();
Beispielantwort
{
  "output_formats": [
    {"key": "png",  "name": "PNG",  "extension": ".png",  "supports_alpha": true},
    {"key": "jpeg", "name": "JPEG", "extension": ".jpg",  "supports_alpha": false},
    {"key": "webp", "name": "WebP", "extension": ".webp", "supports_alpha": true},
    {"key": "avif", "name": "AVIF", "extension": ".avif", "supports_alpha": true}
  ],
  "presets": [
    {"key": "light",    "name": "Light",    "description": "Near lossless, minimal compression"},
    {"key": "balanced", "name": "Balanced", "description": "Best quality/size ratio"},
    {"key": "strong",   "name": "Strong",   "description": "Maximum compression, smaller files"}
  ],
  "supported_inputs": ["jpg","jpeg","png","gif","bmp","webp","avif","heic","svg"],
  "max_file_size_bytes": 10485760,
  "max_file_size_mb": 10,
  "session_ttl_minutes": 60
}

Standard-HTTP-Semantik. Fehler liefern JSON mit dem Feld "message".

// 422 — validation (invalid format / unsupported file)
{ "message": "The image field must be a file of type: jpg, jpeg, png..." }

// 404 — download session not found or expired
{ "message": "Conversion result not found or expired" }

// 429 — rate limit exceeded
{ "message": "Too Many Attempts." }

// 500 — conversion failed (rare; details in error)
{ "message": "Failed to rasterize SVG. Make sure the file is valid." }

Über die Images API von jinero.online

Öffentliche REST-API zum Konvertieren und Optimieren von Bildern – wandle SVG, JPG, PNG, HEIC in moderne WebP- oder AVIF-Dateien um und komprimiere ohne Qualitätsverlust, kostenlos.

Moderne Formate

Ausgabe als PNG, JPG, WebP oder AVIF. Wandle alte PNG/JPG-Hero-Bilder in WebP um und sieh zu, wie sich deine LCP-Werte verbessern.

SVG → Raster

Die serverseitige SVG-Rasterisierung mit rsvg-convert verarbeitet Vektordateien sauber – selbst SVGs mit aufwendigen Filtern.

Kein Schlüssel nötig

Öffentlicher Endpunkt, 5 Anfragen/min pro IP für Konvertierungen. Für höhere Limits erstellst du bei Bedarf ein API-Token.

Einfache JSON-Schnittstelle

Upload per multipart, als Antwort eine Download-URL, die 60 Minuten gültig ist. Keine Signaturen, keine Callbacks, kein SDK nötig.

Häufig gestellte Fragen

Nein. Die API ist öffentlich, das Rate-Limit gilt pro IP. /convert und /optimize sind auf 5 Anfragen pro Minute begrenzt; Download- und Metadaten-Endpunkte haben höhere Limits.

JPG, JPEG, PNG, GIF, BMP, WebP, AVIF, HEIC und SVG. SVGs werden vor dem Kodieren serverseitig mit rsvg-convert rasterisiert. Maximale Dateigröße: 10 MB.

PNG, JPEG, WebP und AVIF. WebP bietet fürs Web das beste Verhältnis von Größe zu Qualität; AVIF ist noch kleiner, braucht aber länger zum Dekodieren. PNG behält die Transparenz, JPEG nicht.

Originale werden verarbeitet und sofort verworfen. Konvertierte Ergebnisse liegen 60 Minuten in einem temporären Speicher (lange genug, um die download_url abzurufen) und werden dann gelöscht. Wir trainieren keine Modelle mit deinen Uploads.

Diese Dienste sind auf eine Aufgabe spezialisiert (Hintergrundentfernung oder PNG-Kompression). Unsere API konzentriert sich auf Formatkonvertierung + verlustbehaftete/verlustfreie Kompression über eine einheitliche Schnittstelle und ist komplett kostenlos – ohne Gebühren pro Bild und ohne Paywall.