Geliştiriciler

Görsel Sıkıştırma API’si

Bitinz görsel sıkıştırma API’siyle JPG, PNG, WebP ve AVIF sıkıştırın. İş akışınızda daha küçük görseller, her hesap için ücretsiz aylık kota.

OpenAPI belirtimini indir
API anahtarı al

Kimlik doğrulama

Panelinizde bir API anahtarı oluşturun, ardından HTTP Basic kimlik doğrulaması (kullanıcı api, parola = anahtar) kullanın veya Authorization: Bearer <key> gönderin.

curl --user api:YOUR_API_KEY ...
# or
curl -H "Authorization: Bearer YOUR_API_KEY" ...

Bir görseli sıkıştırma

Görseli istek gövdesi olarak /api/v1/shrink adresine POST ile gönderin. İsteğe bağlı sorgu parametreleri: level (fast / default / best) ve filename.

curl -i --user api:YOUR_API_KEY \
  --data-binary @photo.jpg \
  "https://bitinz.com/api/v1/shrink?level=default&filename=photo.jpg"

Yanıt

Başarılı istekler genellikle status değeri done olan 201 döndürür. Location başlığı ve output.url indirmeyi gösterir. Compression-Count bu ayki kullanımınızdır.

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"
}

Kabul edildi ve bekliyor: 202

Kuyruk uzunsa status değeri pending olan 202 Accepted dönebilir. Location indirmeyi değil, iş durumunu gösterir. Görseli yeniden göndermek yerine bu URL’yi saklayıp sorgulayın.

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"
}

İş durumunu sorgulama

Location ile dönen URL’ye her 1–2 saniyede bir GET /api/v1/results/{id} gönderin. pending sırada olduğunu (queuePosition güncel sırayı verir), processing sıkıştırmanın sürdüğünü gösterir. status done olduğunda downloadUrl üzerinden indirin. failed işin tamamlanamadığını gösterir; failure kategoriyi, note ise nedeni açıklar.

curl "https://bitinz.com/api/v1/results/<id>"

{
  "id": "<id>",
  "status": "done",
  "available": true,
  "downloadUrl": "/api/v1/results/<id>/download",
  "outputSize": 992450,
  "unchanged": false
}

Sonucu indirme

Sonuçlar süreleri dolana kadar indirilebilir; ardından URL 410 döndürür.

curl -o photo.min.jpg "https://bitinz.com/api/v1/results/<id>/download"

Hata kodları

{ "error": { "code": "...", "message": "..." } }

401 unauthorized / invalid_keyAnahtar yok, bilinmiyor veya iptal edilmiş
413 too_largeGörsel boyut sınırını aşıyor
415 unsupported_imageEşzamanlı yol: desteklenen bir PNG, JPEG, WebP veya AVIF görseli değil
422 image_too_largeEşzamanlı yol: görselde hizmetin işleyebileceğinden fazla piksel var
failed / unsupportedKuyruktaki işler desteklenmeyen görselleri sonuçta status: failed ve failure: unsupported olarak bildirir
failed / too_largeKuyruktaki işler işleme sınırını aşan görselleri status: failed ve failure: too_large olarak bildirir
429 quota_exceededAylık kota tükendi
503 busySunucu meşgul, biraz sonra yeniden deneyin