Ontwikkelaars

API voor afbeeldingscompressie

Comprimeer JPG, PNG, WebP en AVIF met de API voor afbeeldingscompressie van Bitinz. Kleinere afbeeldingen in je workflow, met een gratis maandquotum.

OpenAPI-specificatie downloaden
API-sleutel aanvragen

Authenticatie

Maak een API-sleutel aan in je dashboard en gebruik HTTP Basic-authenticatie (gebruiker api, wachtwoord = sleutel) of stuur Authorization: Bearer <key>.

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

Een afbeelding comprimeren

Stuur de afbeelding met POST als body van het verzoek naar /api/v1/shrink. Optionele queryparameters: level (fast / default / best) en filename.

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

Antwoord

Geslaagde verzoeken geven meestal 201 terug met status done. De header Location en output.url verwijzen naar de download. Compression-Count is je gebruik deze maand.

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

Geaccepteerd en wachtend: 202

Bij een langere wachtrij kan 202 Accepted met status pending terugkomen. Location verwijst naar de taakstatus, niet naar de download. Bewaar deze URL en vraag die op in plaats van de afbeelding opnieuw te sturen.

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

Taakstatus opvragen

Stuur elke 1–2 seconden GET /api/v1/results/{id} naar de URL uit Location. pending betekent in de wachtrij (queuePosition geeft de huidige plek); processing betekent dat er gecomprimeerd wordt. Is status done, download dan via downloadUrl. failed betekent dat de taak niet kon worden afgerond; failure geeft de categorie en note de reden.

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

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

Het resultaat downloaden

Resultaten kun je downloaden tot ze verlopen; daarna geeft de URL 410 terug.

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

Foutcodes

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

401 unauthorized / invalid_keySleutel ontbreekt, is onbekend of ingetrokken
413 too_largeDe afbeelding overschrijdt de groottelimiet
415 unsupported_imageSynchroon pad: geen ondersteunde PNG-, JPEG-, WebP- of AVIF-afbeelding
422 image_too_largeSynchroon pad: de afbeelding heeft meer pixels dan de dienst kan verwerken
failed / unsupportedTaken in de wachtrij melden niet-ondersteunde afbeeldingen in het resultaat als status: failed en failure: unsupported
failed / too_largeTaken in de wachtrij melden afbeeldingen boven de verwerkingslimiet als status: failed en failure: too_large
429 quota_exceededHet maandquotum is op
503 busyDe server is druk, probeer het zo opnieuw