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 | Сервер занят, повторите попытку чуть позже |