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ó OpenAPIAutenticació
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_key | Clau absent, desconeguda o revocada |
| 413 too_large | La imatge supera el límit de mida |
| 415 unsupported_image | Camí síncron: no és una imatge PNG, JPEG, WebP o AVIF compatible |
| 422 image_too_large | Camí síncron: la imatge té més píxels dels que el servei pot processar |
| failed / unsupported | Les tasques en cua indiquen les imatges no compatibles al resultat amb status: failed i failure: unsupported |
| failed / too_large | Les tasques en cua indiquen les imatges que superen el límit de processament amb status: failed i failure: too_large |
| 429 quota_exceeded | S’ha esgotat la quota mensual |
| 503 busy | El servidor està ocupat; torna-ho a provar d’aquí a poc |