Wasanidi programu

API ya kubana picha

Bana JPG, PNG, WebP na AVIF kwa API ya kubana picha ya Bitinz. Picha ndogo zaidi katika mtiririko wako wa kazi, na kiwango cha bure cha kila mwezi.

Pakua vipimo vya OpenAPI
Pata ufunguo wa API

Uthibitishaji

Unda ufunguo wa API kwenye dashibodi yako, kisha tumia uthibitishaji wa HTTP Basic (mtumiaji api, nenosiri = ufunguo) au tuma Authorization: Bearer <key>.

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

Kubana picha

Tuma picha kwa POST kama mwili wa ombi kwenda /api/v1/shrink. Vigezo vya hiari vya hoja: level (fast / default / best) na filename.

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

Jibu

Maombi yaliyofaulu kwa kawaida hurudisha 201 yenye status done. Kichwa cha Location na output.url huelekeza kwenye upakuaji. Compression-Count ni matumizi yako mwezi huu.

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

Limekubaliwa na linasubiri: 202

Foleni ikiwa ndefu, 202 Accepted yenye status pending inaweza kurudishwa. Location huelekeza kwenye hali ya kazi, si kwenye upakuaji. Hifadhi URL hii na uiulize hali badala ya kutuma picha tena.

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

Uliza hali ya kazi

Tuma GET /api/v1/results/{id} kwa URL iliyorudishwa kwenye Location kila sekunde 1–2. pending inamaanisha iko kwenye foleni (queuePosition hutoa nafasi yake ya sasa); processing inamaanisha ubanaji unaendelea. status ikiwa done, pakua kutoka downloadUrl. failed inamaanisha kazi haikuweza kukamilika; failure hutaja aina na note hueleza sababu.

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

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

Pakua matokeo

Matokeo yanaweza kupakuliwa hadi muda wake uishe; baada ya hapo URL hurudisha 410.

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

Misimbo ya hitilafu

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

401 unauthorized / invalid_keyUfunguo haupo, haujulikani au umebatilishwa
413 too_largePicha inazidi kikomo cha ukubwa
415 unsupported_imageNjia ya moja kwa moja: si picha ya PNG, JPEG, WebP au AVIF inayotumika
422 image_too_largeNjia ya moja kwa moja: picha ina pikseli nyingi kuliko huduma inavyoweza kuchakata
failed / unsupportedKazi za foleni huripoti picha zisizotumika katika matokeo kama status: failed na failure: unsupported
failed / too_largeKazi za foleni huripoti picha zinazozidi kikomo cha uchakataji kama status: failed na failure: too_large
429 quota_exceededKiwango cha kila mwezi kimeisha
503 busySeva ina shughuli nyingi, jaribu tena baada ya muda mfupi