Простий API для оптимізації зображень

Інтегруйте стиснення, конвертацію форматів, смарт-зміну розміру й AI-збільшення якості зображень у свій застосунок. Використовуйте наш REST API з будь-якої мови або починайте миттєво з офіційним Node.js SDK.

Швидкий старт

Обробіть своє перше зображення у 4 простих кроків за допомогою npm SDK.

Отримайте ключ API

Зареєструйте безкоштовний акаунт і згенеруйте ключ API на панелі керування. Безкоштовний тарифний план включає до 1,000 стиснень на місяць.

Ініціалізація та створення задачі

Встановіть boost-image через npm. Ініціалізуйте клієнт і запустіть нову задачу, вказавши інструмент (стиснення, конвертація, зміна розміру, збільшення якості).

Завантаження зображення

Завантажте файл у задачу. Тут можна передати параметри конфігурації, такі як рівні стиснення чи розміри для зміни масштабу.

Обробка та завантаження

Запустіть процес обробки. Після завершення завантажте результати – це може бути масив з метаданими та файлами буфера або посиланнями.

Node.js (SDK)
import BoostImage from "boost-image";
import { CompressionLevel } from "boost-image/dist/types";
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";

const __dirname = path.dirname(fileURLToPath(import.meta.url));

// 1. Initialize
const client = new BoostImage({
apiKey: "your-api-key",
});

// 2. Create Task
const task = await client.createTask("compress");

// 3. Upload — URL (works everywhere) or absolute path (Node.js only)
await client.upload(task, path.join(__dirname, "image.jpg"), {
compression_level: CompressionLevel.RECOMMENDED,
});

// 4. Process & Download
await client.process(task);
const results = await client.download(task);

if (results.length > 0) {
const first = results[0];
console.log("Compressed size:", first.size);

// In Node.js: save via buffer
const outputPath = path.join(__dirname, "compressed.jpg");
fs.writeFileSync(outputPath, first.buffer);
console.log("Saved to:", outputPath);
}

Приклади коду для різних операцій

Кожен приклад слідує обов’язковій послідовності: створення задачі, завантаження файлу(ів), далі виклик операції із :task_id та :server_filename.

Стиснення зображення

Зменште розмір файлу, зберігаючи візуальну якість.

GET/v1/compress/:task_id/:server_filename

Parameters

  • compression_level

    Enum: low, recommended, extreme

  • rotate

    (Необов'язково) Градуси для повороту

Response / Result Example (JSON)
[
  {
    "original_filename": "photo.jpg",
    "server_filename": "c186eedfbd4...",
    "size_before": 629370,
    "size": 89310,
    "width": 1920,
    "height": 1080,
    "extension": "jpg",
    "link": "/image/task-id/filename"
  }
]
import axios from 'axios';
import fs from 'fs';

// Create client with auth (once)
const api = axios.create({
baseURL: 'https://api.boost-image.online',
headers: { 'X-Api-Key': 'YOUR_API_KEY' }
});

// 1. Start a compression task
// Response: { id: "uuid", tool: "compress", status: "waiting" }
const { data: task } = await api.get('/v1/start/compress');
console.log('Task started:', task.id);

// 2. Upload your image
// Response: { id, server_filename, task_id, width, height }
const formData = new FormData();
formData.append('file', fs.createReadStream('example.jpg'));
formData.append('task', task.id);

const { data: upload } = await api.post('/v1/upload', formData);
console.log('Uploaded:', upload.server_filename);

// 3. Get compressed result
const { data: results } = await api.post('/v1/process', {
task: task.id,
tool: 'compress',
files: [{ server_filename: upload.server_filename, filename: upload.original_filename }],
compression_level: 'recommended',
})

// 4. Download result
// Option A: ZIP archive (all files)
const { data: zip } = await api.get(`/v1/download/${task.id}`, {
responseType: 'arraybuffer'
});
fs.writeFileSync('compressed.zip', zip);

// Option B: Single file (stream)
const result = results[0];
const writer = fs.createWriteStream('compressed.jpg')
const response = await api.get(result.link, { responseType: 'stream' })
response.data.pipe(writer)
GET

Пакетна обробка: Для роботи з кількома файлами настійливо рекомендуємо використовувати POST /v1/process endpoint, передаючи масив файлів, замість послідовних запитів GET для кожного окремого.

Автентифікація

Автентифікуйте запити, передаючи ключ API у заголовку X-Api-Key. Bearer-токен або попередній вхід не потрібні.

X-Api-Key: <YOUR_API_KEY>

Ліміти та тарифи

Квоти API залежать від вашого активного плану (Free, Pro або Ultra). Якщо ви перевищили ліміт на місяць, можна обробляти далі через оплату за використання.

  • Безкоштовний план включає 1,000 дій/міс.
  • API доступний для всіх зареєстрованих користувачів.
Переглянути тарифи та обмеження