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 OpenAPIAutentikasi
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_key | Kunci tidak ada, tidak dikenal, atau sudah dicabut |
| 413 too_large | Gambar melebihi batas ukuran |
| 415 unsupported_image | Jalur sinkron: bukan gambar PNG, JPEG, WebP, atau AVIF yang didukung |
| 422 image_too_large | Jalur sinkron: jumlah piksel gambar melebihi kemampuan layanan |
| failed / unsupported | Pekerjaan dalam antrean melaporkan gambar yang tidak didukung sebagai status: failed dan failure: unsupported |
| failed / too_large | Pekerjaan dalam antrean melaporkan gambar di atas batas pemrosesan sebagai status: failed dan failure: too_large |
| 429 quota_exceeded | Kuota bulanan sudah habis |
| 503 busy | Server sedang sibuk, coba lagi sebentar lagi |