Безкоштовний публічний REST API для конвертації й оптимізації растрових і векторних зображень. Завантаження одного файлу, швидка обробка, у відповідь — 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);

Усі ендпоінти публічні — ключ не потрібен. Конвертація й оптимізація навантажують процесор, тож ліміти тут жорсткіші, ніж у Fonts API. Нижче — ліміти на один 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)

Завантажте зображення й отримайте його в іншому форматі. Найкраще для переходу на сучасні формати (WebP, AVIF) для вебу.

POST https://jinero.online/api/v1/images/convert
ПараметрТипОпис
image файл (multipart) Вхідний файл. Приймає jpg, jpeg, png, gif, bmp, webp, avif, heic, svg. До 10 МБ.
format string Вихідний формат: png, jpeg, webp або avif.
preset string Пресет якості: light, balanced (за замовчуванням) або 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"];
Приклад відповіді
{
  "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
}

Стиснення без зміни формату. Корисно, щоб зменшити PNG/JPG, які вже в потрібному форматі, але завеликі.

POST https://jinero.online/api/v1/images/optimize
ПараметрТипОпис
image файл (multipart) Растрове зображення (PNG, JPG, GIF, BMP, WebP, AVIF, HEIC). SVG тут не приймається — спершу растеризуйте його через /convert.
preset string light = майже без втрат, balanced = рекомендовано, strong = максимальне стиснення.
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();
Приклад відповіді
{
  "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/..."
}

Перетворює растрові зображення на чистий SVG за допомогою VTracer. Найкраще для логотипів, іконок і пласких ілюстрацій. Повертає і сиру SVG-розмітку, і ZIP-архів.

POST https://jinero.online/api/v1/images/vectorize
ПараметрТипОпис
image файл (multipart) Растрове зображення (jpg, jpeg, png, gif, bmp, webp). До 10 МБ.
preset string logo (за замовчуванням) · illustration · photo · sketch. Визначає квантування кольорів і спрощення контурів.
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());
Приклад відповіді
{
  "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/..."
}

Видалення фону за допомогою AI (сімейство rembg / u2net). Повертає PNG із прозорим фоном. Вхідний файл — до 5 МБ, щоб затримка лишалася прийнятною.

POST https://jinero.online/api/v1/images/remove-background
ПараметрТипОпис
image файл (multipart) Растрове зображення. До 5 МБ.
preset string standard (за замовчуванням, швидко) · portrait (краще волосся по краях) · quality · ultra (найповільніше, найкраще).
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();
Приклад відповіді
{
  "success": true,
  "session_id": "...",
  "output_format": "png",
  "preset": "quality",
  "dimensions": "1920x1080",
  "download_url": "https://jinero.online/api/v1/images/remove-background/download/..."
}

AI-збільшення у 2× через Real-ESRGAN. Публічно доступне лише 2× — більші масштаби (4×) та інші режими (відновлення облич, шумоподавлення, auto) поки що лишаються тільки у вебінтерфейсі через вартість GPU.

POST https://jinero.online/api/v1/images/upscale
ПараметрТипОпис
image файл (multipart) Растрове зображення. До 15 МБ. Формати: jpg, jpeg, png, webp, bmp.
scale integer Наразі підтримується лише "2". Інші режими (face, denoise, auto) тимчасово доступні тільки у вебінтерфейсі.
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();
Приклад відповіді
{
  "success": true,
  "session_id": "...",
  "mode": "upscale",
  "scale": 2,
  "output_format": "png",
  "dimensions": "3840x2160",
  "download_url": "https://jinero.online/api/v1/images/upscale/download/..."
}

Отримайте бінарний результат. Сесії дійсні 60 хвилин після створення, потім файл видаляється. Кожен AI-ендпоінт має власний шлях для завантаження (див. приклади відповідей).

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;

Дізнавайтеся доступні вихідні формати, пресети й ліміти під час роботи — зручно для динамічних інтерфейсів, які автоматично підхоплюють нові формати.

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();
Приклад відповіді
{
  "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
}

Стандартна семантика HTTP. Помилки повертають JSON із полем "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." }

Про Images API jinero.online

Публічний REST API для конвертації й оптимізації зображень — перетворюйте SVG, JPG, PNG, HEIC на сучасні WebP чи AVIF і стискайте без втрати якості, безкоштовно.

Сучасні формати

На виході — PNG, JPG, WebP або AVIF. Конвертуйте старі PNG/JPG-банери у WebP, і показники LCP покращаться.

SVG → растр

Растеризація SVG на сервері через rsvg-convert акуратно обробляє векторні файли — навіть SVG зі складними фільтрами.

Ключ не потрібен

Публічний ендпоінт, 5 запитів/хв з одного IP для конвертацій. За потреби згенеруйте API-токен для вищих лімітів.

Простий JSON-контракт

Завантаження через multipart, у відповідь — URL, дійсний 60 хвилин. Без підписів, колбеків і SDK.

Часті запитання

Ні. API публічний, з лімітом запитів на IP. /convert і /optimize обмежені 5 запитами на хвилину; ендпоінти завантаження й метаданих мають вищі ліміти.

JPG, JPEG, PNG, GIF, BMP, WebP, AVIF, HEIC і SVG. SVG перед кодуванням растеризуються на сервері через rsvg-convert. Максимальний розмір файлу — 10 МБ.

PNG, JPEG, WebP і AVIF. WebP дає найкраще співвідношення розміру й якості для вебу; AVIF ще менший, але довше декодується. PNG зберігає прозорість, JPEG — ні.

Оригінали обробляються й одразу видаляються. Результати конвертації зберігаються в тимчасовому сховищі 60 хвилин (досить, щоб перейти за download_url), а потім видаляються. Ми не навчаємо жодних моделей на ваших файлах.

Вони спеціалізуються на одній задачі (видалення фону чи стиснення PNG). Наш API зосереджений на конвертації форматів і стисненні з втратами чи без них через єдиний послідовний інтерфейс і повністю безкоштовний — без оплати за зображення чи платного доступу.