API для стиснення зображень
Стискайте JPG, PNG, WebP і AVIF через API стиснення зображень Bitinz. Легкі зображення у вашому процесі й безкоштовна місячна квота для кожного акаунта.
Завантажити специфікацію OpenAPIАвтентифікація
Створіть API-ключ в особистому кабінеті й використовуйте HTTP Basic (користувач api, пароль = ключ) або передавайте Authorization: Bearer <key>.
curl --user api:YOUR_API_KEY ... # or curl -H "Authorization: Bearer YOUR_API_KEY" ...
Стиснення зображення
Надішліть зображення методом POST у тілі запиту на /api/v1/shrink. Необов’язкові параметри запиту: level (fast / default / best) і filename.
curl -i --user api:YOUR_API_KEY \ --data-binary @photo.jpg \ "https://bitinz.com/api/v1/shrink?level=default&filename=photo.jpg"
Відповідь
Успішні запити зазвичай повертають 201 зі status done. Заголовок Location і output.url вказують на завантаження. Compression-Count — ваше використання за місяць.
HTTP/1.1 201 Created
Location: https://bitinz.com/api/v1/results/<id>/download
Compression-Count: 1
{
"id": "<id>",
"status": "done",
"input": { "size": 2277375, "type": "image/jpeg" },
"output": { "size": 992450, "type": "image/jpeg", "ratio": 0.436,
"url": "https://bitinz.com/api/v1/results/<id>/download" },
"unchanged": false,
"expiresAt": "2026-10-02T12:00:00Z"
}Прийнято й очікує: 202
Якщо черга довга, може повернутися 202 Accepted зі status pending. Location вказує на статус завдання, а не на завантаження. Збережіть цей URL і опитуйте його замість повторного надсилання зображення.
HTTP/1.1 202 Accepted
Location: https://bitinz.com/api/v1/results/<id>
{
"id": "<id>",
"status": "pending",
"input": { "size": 2277375 },
"expiresAt": "2026-10-02T12:00:00Z"
}Опитування статусу завдання
Надсилайте GET /api/v1/results/{id} на URL із Location кожні 1–2 секунди. pending — завдання в черзі (queuePosition показує поточне місце); processing — триває стиснення. Коли status стане done, завантажте результат за downloadUrl. failed — завдання не вдалося завершити; failure вказує категорію, а note — причину.
curl "https://bitinz.com/api/v1/results/<id>"
{
"id": "<id>",
"status": "done",
"available": true,
"downloadUrl": "/api/v1/results/<id>/download",
"outputSize": 992450,
"unchanged": false
}Завантаження результату
Результати можна завантажити до завершення строку; після цього URL повертає 410.
curl -o photo.min.jpg "https://bitinz.com/api/v1/results/<id>/download"
Коди помилок
{ "error": { "code": "...", "message": "..." } }
| 401 unauthorized / invalid_key | Ключ відсутній, невідомий або відкликаний |
| 413 too_large | Зображення перевищує ліміт розміру |
| 415 unsupported_image | Синхронний шлях: не підтримуване зображення PNG, JPEG, WebP чи AVIF |
| 422 image_too_large | Синхронний шлях: у зображенні більше пікселів, ніж може обробити сервіс |
| failed / unsupported | Завдання з черги повідомляють про непідтримувані зображення в результаті як status: failed і failure: unsupported |
| failed / too_large | Завдання з черги повідомляють про зображення понад ліміт обробки як status: failed і failure: too_large |
| 429 quota_exceeded | Місячну квоту вичерпано |
| 503 busy | Сервер зайнятий, спробуйте трохи пізніше |