Développeurs

API de compression d’images

Compressez JPG, PNG, WebP et AVIF avec l’API de compression d’images de Bitinz. Des images plus légères dans votre flux, avec un quota mensuel gratuit.

Télécharger la spécification OpenAPI
Obtenir une clé API

Authentification

Créez une clé API dans votre tableau de bord, puis utilisez l’authentification HTTP Basic (utilisateur api, mot de passe = clé) ou envoyez Authorization: Bearer <key>.

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

Compresser une image

Envoyez l’image en POST comme corps de la requête à /api/v1/shrink. Paramètres de requête facultatifs : level (fast / default / best) et filename.

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

Réponse

Les requêtes réussies renvoient généralement 201 avec status done. L’en-tête Location et output.url pointent vers le téléchargement. Compression-Count indique votre utilisation du mois.

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

Acceptée et en attente : 202

Si la file d’attente est plus longue, la réponse peut être 202 Accepted avec status pending. Location pointe vers l’état de la tâche, pas vers le téléchargement. Conservez cette URL et interrogez-la au lieu de renvoyer l’image.

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

Interroger l’état de la tâche

Envoyez GET /api/v1/results/{id} à l’URL renvoyée dans Location toutes les 1 à 2 secondes. pending signifie en file d’attente (queuePosition indique sa place actuelle) ; processing signifie que la compression est en cours. Quand status vaut done, téléchargez depuis downloadUrl. failed signifie que la tâche n’a pas pu aboutir ; failure en indique la catégorie et note en explique la raison.

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

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

Télécharger le résultat

Les résultats peuvent être téléchargés jusqu’à leur expiration ; ensuite, l’URL renvoie 410.

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

Codes d’erreur

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

401 unauthorized / invalid_keyClé absente, inconnue ou révoquée
413 too_largeL’image dépasse la taille maximale
415 unsupported_imageTraitement synchrone : ce n’est pas une image PNG, JPEG, WebP ou AVIF prise en charge
422 image_too_largeTraitement synchrone : l’image compte plus de pixels que le service ne peut en traiter
failed / unsupportedLes tâches en file d’attente signalent les images non prises en charge dans le résultat par status: failed et failure: unsupported
failed / too_largeLes tâches en file d’attente signalent les images au-delà de la limite de traitement par status: failed et failure: too_large
429 quota_exceededLe quota mensuel est épuisé
503 busyLe serveur est occupé, réessayez dans un instant