API di compressione immagini
Comprimi JPG, PNG, WebP e AVIF con l’API di compressione immagini di Bitinz. Immagini più leggere nel tuo flusso di lavoro, con quota mensile gratuita.
Scarica la specifica OpenAPIAutenticazione
Crea una chiave API nella dashboard, poi usa l’autenticazione HTTP Basic (utente api, password = chiave) oppure invia Authorization: Bearer <key>.
curl --user api:YOUR_API_KEY ... # or curl -H "Authorization: Bearer YOUR_API_KEY" ...
Comprimere un’immagine
Invia l’immagine con POST come corpo della richiesta a /api/v1/shrink. Parametri di query facoltativi: level (fast / default / best) e filename.
curl -i --user api:YOUR_API_KEY \ --data-binary @photo.jpg \ "https://bitinz.com/api/v1/shrink?level=default&filename=photo.jpg"
Risposta
Le richieste riuscite di solito restituiscono 201 con status done. L’intestazione Location e output.url puntano al download. Compression-Count è il tuo utilizzo del mese.
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"
}Accettata e in attesa: 202
Con una coda più lunga può essere restituito 202 Accepted con status pending. Location punta allo stato del lavoro, non al download. Conserva questo URL e interrogalo invece di inviare di nuovo l’immagine.
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"
}Interrogare lo stato del lavoro
Invia GET /api/v1/results/{id} all’URL restituito in Location ogni 1–2 secondi. pending significa in coda (queuePosition indica la posizione attuale); processing significa che la compressione è in corso. Quando status è done, scarica da downloadUrl. failed significa che il lavoro non è stato completato; failure ne indica la categoria e note spiega il motivo.
curl "https://bitinz.com/api/v1/results/<id>"
{
"id": "<id>",
"status": "done",
"available": true,
"downloadUrl": "/api/v1/results/<id>/download",
"outputSize": 992450,
"unchanged": false
}Scaricare il risultato
I risultati si possono scaricare fino alla scadenza; dopo, l’URL restituisce 410.
curl -o photo.min.jpg "https://bitinz.com/api/v1/results/<id>/download"
Codici di errore
{ "error": { "code": "...", "message": "..." } }
| 401 unauthorized / invalid_key | Chiave mancante, sconosciuta o revocata |
| 413 too_large | L’immagine supera il limite di dimensione |
| 415 unsupported_image | Percorso sincrono: non è un’immagine PNG, JPEG, WebP o AVIF supportata |
| 422 image_too_large | Percorso sincrono: l’immagine ha più pixel di quanti il servizio possa elaborarne |
| failed / unsupported | I lavori in coda segnalano le immagini non supportate nel risultato con status: failed e failure: unsupported |
| failed / too_large | I lavori in coda segnalano le immagini oltre il limite di elaborazione con status: failed e failure: too_large |
| 429 quota_exceeded | La quota mensile è esaurita |
| 503 busy | Il server è occupato, riprova tra poco |