Разработчици

API за компресиране на изображения

Компресирайте JPG, PNG, WebP и AVIF с API за компресиране на изображения на Bitinz. По-малки изображения в работния процес и безплатна месечна квота.

Изтегляне на спецификацията OpenAPI
Вземете API ключ

Удостоверяване

Създайте 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Сървърът е зает, опитайте отново след малко