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 indirKimlik 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_key | Anahtar yok, bilinmiyor veya iptal edilmiş |
| 413 too_large | Görsel boyut sınırını aşıyor |
| 415 unsupported_image | Eşzamanlı yol: desteklenen bir PNG, JPEG, WebP veya AVIF görseli değil |
| 422 image_too_large | Eşzamanlı yol: görselde hizmetin işleyebileceğinden fazla piksel var |
| failed / unsupported | Kuyruktaki işler desteklenmeyen görselleri sonuçta status: failed ve failure: unsupported olarak bildirir |
| failed / too_large | Kuyruktaki işler işleme sınırını aşan görselleri status: failed ve failure: too_large olarak bildirir |
| 429 quota_exceeded | Aylık kota tükendi |
| 503 busy | Sunucu meşgul, biraz sonra yeniden deneyin |