Pengembang

API Kompresi Gambar

Kompres JPG, PNG, WebP, dan AVIF dengan API kompresi gambar Bitinz. Gambar lebih kecil di alur kerja Anda, dengan kuota bulanan gratis untuk setiap akun.

Unduh spesifikasi OpenAPI
Dapatkan kunci API

Autentikasi

Buat kunci API di dasbor Anda, lalu gunakan autentikasi HTTP Basic (pengguna api, kata sandi = kunci) atau kirim Authorization: Bearer <key>.

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

Kompres gambar

Kirim gambar dengan POST sebagai badan permintaan ke /api/v1/shrink. Parameter kueri opsional: level (fast / default / best) dan filename.

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

Respons

Permintaan yang berhasil biasanya mengembalikan 201 dengan status done. Header Location dan output.url mengarah ke unduhan. Compression-Count adalah pemakaian Anda bulan ini.

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

Diterima dan menunggu: 202

Antrean yang lebih panjang bisa mengembalikan 202 Accepted dengan status pending. Location mengarah ke status pekerjaan, bukan ke unduhan. Simpan URL ini dan pantau, alih-alih mengirim gambar lagi.

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

Pantau status pekerjaan

Kirim GET /api/v1/results/{id} ke URL yang dikembalikan di Location setiap 1–2 detik. pending berarti dalam antrean (queuePosition memberi posisinya saat ini); processing berarti kompresi sedang berjalan. Saat status bernilai done, unduh dari downloadUrl. failed berarti pekerjaan tidak bisa diselesaikan; failure menunjukkan kategorinya dan note menjelaskan alasannya.

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

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

Unduh hasilnya

Hasil bisa diunduh sampai kedaluwarsa; setelah itu URL mengembalikan 410.

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

Kode galat

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

401 unauthorized / invalid_keyKunci tidak ada, tidak dikenal, atau sudah dicabut
413 too_largeGambar melebihi batas ukuran
415 unsupported_imageJalur sinkron: bukan gambar PNG, JPEG, WebP, atau AVIF yang didukung
422 image_too_largeJalur sinkron: jumlah piksel gambar melebihi kemampuan layanan
failed / unsupportedPekerjaan dalam antrean melaporkan gambar yang tidak didukung sebagai status: failed dan failure: unsupported
failed / too_largePekerjaan dalam antrean melaporkan gambar di atas batas pemrosesan sebagai status: failed dan failure: too_large
429 quota_exceededKuota bulanan sudah habis
503 busyServer sedang sibuk, coba lagi sebentar lagi