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 OpenAPIAuthentification
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_key | Clé absente, inconnue ou révoquée |
| 413 too_large | L’image dépasse la taille maximale |
| 415 unsupported_image | Traitement synchrone : ce n’est pas une image PNG, JPEG, WebP ou AVIF prise en charge |
| 422 image_too_large | Traitement synchrone : l’image compte plus de pixels que le service ne peut en traiter |
| failed / unsupported | Les 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_large | Les 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_exceeded | Le quota mensuel est épuisé |
| 503 busy | Le serveur est occupé, réessayez dans un instant |