История операций
Все сжатия и апскейлинги за последние 30 дней
Обработано
—
Сэкономлено
—
Ср. сжатие
—
AI-апскейлинг
—
Последние операции
| Файл | Тип | Формат | Размер | Экономия | Статус | Дата | IP |
|---|---|---|---|---|---|---|---|
| Загрузка... | |||||||
API-ключ
Ваш ключ для доступа к REST API
💡
Использование API
Передавайте ключ в заголовке
Authorization: Bearer sk-lw-...
Подробнее — в разделе Документация
Ваш API-ключ
••••••••••••
Полный ключ показывается только при создании. Если вы его потеряли — перевыпустите новый.
Разрешённые IP-адреса
Макс. 3 адреса
API-запросы принимаются только с указанных IP-адресов. Добавьте хотя бы один IP для активации ключа.
Загрузка...
⚠️
Запросы с IP, не входящих в список, будут отклонены с кодом
403. Убедитесь, что добавили IP вашего сервера.
Последние API-запросы
| Эндпоинт | Статус | Время | Дата |
|---|---|---|---|
| Нет данных | |||
Тариф
Информация о текущей подписке
—
Текущий тариф
—
—
Активен
Включено в тариф
- Загрузка...
Использование лимитов
Период: 1–30 июня 2026
AI-апскейлинг
—
—
—
Сжатия за сегодня
—
—
—
Одновременная обработка
—
Максимум параллельных задач
Макс. размер файла
—
Доступные форматы: JPEG, PNG, WebP, AVIF, JXL
Документация API
Все эндпоинты, параметры и примеры запросов
🚀
Быстрый старт
Базовый URL:
Авторизация: заголовок
IP-привязка: запросы принимаются только с разрешённых IP (до 3 адресов)
Формат ответа: JSON (метаданные) или binary (файл)
https://little-white.ru/compress/v1Авторизация: заголовок
Authorization: Bearer ВАШ_КЛЮЧIP-привязка: запросы принимаются только с разрешённых IP (до 3 адресов)
Формат ответа: JSON (метаданные) или binary (файл)
POST
/v1/compress
Сжатие одного изображения. Возвращает обработанный файл в теле ответа.
Параметры (multipart/form-data)
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
file | File | Да | Изображение (JPEG, PNG, WebP, AVIF, JPEG XL) |
format | String | Нет | auto | jpeg | png | webp | avif | jxl. По умолчанию: auto |
quality | Integer | Нет | 1–100. По умолчанию: 85 |
Заголовки ответа
| Заголовок | Описание |
|---|---|
X-Original-Size | Размер исходного файла (байты) |
X-Compressed-Size | Размер результата (байты) |
X-Savings-Percent | Процент экономии |
X-Output-Format | Формат результата (jpeg, png, webp, avif, jxl) |
Пример (cURL)
curl -X POST https://little-white.ru/compress/v1/compress \ -H "Authorization: Bearer sk-lw-..." \ -F "file=@photo.jpg" \ -F "format=avif" \ -F "quality=80" \ --output compressed.avif
POST
/v1/upscale
PRO
AI-апскейлинг изображения (Real-ESRGAN). Асинхронная операция — возвращает
job_id для отслеживания.Параметры (multipart/form-data)
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
file | File | Да | Изображение для увеличения |
scale | Integer | Нет | 2 или 4. По умолчанию: 4 |
priority | String | Нет | high | normal | batch. По умолчанию: normal |
Ответ
{ "job_id": "550e8400-e29b-...", "status": "queued" }
GET
/v1/upscale/{job_id}
Проверка статуса задачи апскейлинга.
Ответ
{
"status": "done", // queued | processing | done | error
"result": {
"effective_scale": 4,
"output_width": 3200,
"output_height": 2400,
"elapsed_s": 6.3
}
}
GET
/v1/upscale/{job_id}/download
Скачать результат апскейлинга. Опционально можно сжать на лету.
Query-параметры (необязательные)
| Параметр | Описание |
|---|---|
format | Сжать результат в указанный формат (jpeg, png, webp, avif, jxl) |
quality | Качество сжатия (1–100) |
Пример: апскейлинг + сжатие в AVIF
# 1. Отправить на апскейлинг curl -X POST https://little-white.ru/compress/v1/upscale \ -H "Authorization: Bearer sk-lw-..." \ -F "file=@photo.jpg" -F "scale=4" # → {"job_id": "550e8400-...", "status": "queued"} # 2. Проверить статус (polling) curl https://little-white.ru/compress/v1/upscale/550e8400-... \ -H "Authorization: Bearer sk-lw-..." # → {"status": "done", ...} # 3. Скачать с пережатием в AVIF curl https://little-white.ru/compress/v1/upscale/550e8400-.../download?format=avif&quality=80 \ -H "Authorization: Bearer sk-lw-..." \ --output upscaled.avif
Коды ошибок
| Код | Описание |
|---|---|
400 | Неверный запрос (файл не передан, неподдерживаемый формат, превышен размер) |
401 | Неверный или отсутствующий API-ключ |
403 | IP-адрес не в белом списке ключа |
404 | Задача не найдена (неверный job_id или TTL истёк, 24 часа) |
429 | Превышен лимит запросов (rate limit) |
500 | Внутренняя ошибка сервера |
502 | GPU-воркер недоступен |
Лимиты
| Free | Pro | |
|---|---|---|
| Сжатие | 50 файлов/день | Безлимит |
| Макс. размер файла | 10 МБ | 50 МБ |
| Форматы | JPEG, PNG, WebP | + AVIF, JPEG XL |
| AI-апскейлинг | — | 100 операций/день |
| API-доступ | — | Да |
| Одновременная обработка | 1 | 5 |
| Rate limit | 10 req/s | 10 req/s |
Примеры для языков
Node.js
const form = new FormData(); form.append('file', fs.createReadStream('photo.jpg')); form.append('format', 'avif'); const res = await fetch('https://little-white.ru/compress/v1/compress', { method: 'POST', headers: { Authorization: `Bearer ${API_KEY}` }, body: form, }); const buffer = await res.arrayBuffer(); fs.writeFileSync('out.avif', Buffer.from(buffer)); console.log('Savings:', res.headers.get('x-savings-percent') + '%');
Python
import requests r = requests.post( "https://little-white.ru/compress/v1/compress", headers={"Authorization": f"Bearer {API_KEY}"}, files={"file": open("photo.jpg", "rb")}, data={"format": "avif", "quality": "80"}, ) with open("out.avif", "wb") as f: f.write(r.content) print(f"Savings: {r.headers['X-Savings-Percent']}%")
Настройки профиля
Персональные данные и уведомления
Основная информация
ИИ
JPG или PNG, до 2 МБ
На этот адрес придут уведомления и чеки
Безопасность
Уведомления
Email-уведомления
Отчёт об использовании раз в неделю
Предупреждение о лимитах
Уведомить, когда использование достигнет 80%
Маркетинговые рассылки
Новости, обновления функций и скидки
Webhook-уведомления
Отправлять POST при завершении batch-задачи
Webhook URL
URL для POST-уведомлений о завершении batch-задач
Зона опасности
Удалить аккаунт
Аккаунт и API-ключи будут деактивированы