Desenvolupadors

API de compressió d’imatges

Comprimeix JPG, PNG, WebP i AVIF amb l’API de compressió d’imatges de Bitinz. Imatges més lleugeres al teu flux de treball, amb quota mensual gratuïta.

Baixa l’especificació OpenAPI
Obtén una clau d’API

Autenticació

Crea una clau d’API al tauler i fes servir l’autenticació HTTP Basic (usuari api, contrasenya = la clau) o envia Authorization: Bearer <key>.

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

Comprimir una imatge

Envia la imatge per POST com a cos de la sol·licitud a /api/v1/shrink. Paràmetres de consulta opcionals: level (fast / default / best) i filename.

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

Resposta

Les sol·licituds correctes solen retornar 201 amb status done. La capçalera Location i output.url apunten a la baixada. Compression-Count és el teu ús d’aquest mes.

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

Acceptada i en espera: 202

Si la cua és llarga, es pot retornar 202 Accepted amb status pending. Location apunta a l’estat de la tasca, no a la baixada. Guarda aquest URL i consulta’l en lloc de tornar a enviar la imatge.

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

Consultar l’estat de la tasca

Envia GET /api/v1/results/{id} a l’URL retornat a Location cada 1–2 segons. pending vol dir en cua (queuePosition n’indica la posició actual); processing vol dir que la compressió està en curs. Quan status sigui done, baixa des de downloadUrl. failed vol dir que la tasca no s’ha pogut completar; failure n’indica la categoria i note n’explica el motiu.

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

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

Baixar el resultat

Els resultats es poden baixar fins que caduquen; després, l’URL retorna 410.

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

Codis d’error

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

401 unauthorized / invalid_keyClau absent, desconeguda o revocada
413 too_largeLa imatge supera el límit de mida
415 unsupported_imageCamí síncron: no és una imatge PNG, JPEG, WebP o AVIF compatible
422 image_too_largeCamí síncron: la imatge té més píxels dels que el servei pot processar
failed / unsupportedLes tasques en cua indiquen les imatges no compatibles al resultat amb status: failed i failure: unsupported
failed / too_largeLes tasques en cua indiquen les imatges que superen el límit de processament amb status: failed i failure: too_large
429 quota_exceededS’ha esgotat la quota mensual
503 busyEl servidor està ocupat; torna-ho a provar d’aquí a poc