Προγραμματιστές

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Σύγχρονη διαδρομή: η εικόνα έχει περισσότερα pixel από όσα μπορεί να επεξεργαστεί η υπηρεσία
failed / unsupportedΟι εργασίες σε ουρά αναφέρουν τις μη υποστηριζόμενες εικόνες στο αποτέλεσμα ως status: failed και failure: unsupported
failed / too_largeΟι εργασίες σε ουρά αναφέρουν τις εικόνες πάνω από το όριο επεξεργασίας ως status: failed και failure: too_large
429 quota_exceededΤο μηνιαίο όριο εξαντλήθηκε
503 busyΟ διακομιστής είναι απασχολημένος, δοκιμάστε ξανά σε λίγο