Point de terminaison d'optimisation d'image
Référence technique officielle pour le point d'accès principal de traitement d'images POST /v1/optimize.
Le point d'accès principal pour optimiser, transcoder, réduire l'échelle et redimensionner les images est :
POST https://api.smallpict.app/v1/optimize
(Alias : POST https://api.smallpict.app/v1/convert)
Format de requête (Charge utile JSON)
POST /v1/optimize HTTP/1.1Host: api.smallpict.appX-API-Key: sp_sdk_9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a0bX-Timestamp: 1716301234X-Signature: 3a9f8b2c4d6e8a0f1b3c5d7e9f2a4b6c8d0e1f3a5b7c9d1e3f5a7b9c1d3e5f7aContent-Type: application/jsonIdempotency-Key: c9b8a7f6-e5d4-4c3b-2a1f-0e9d8c7b6a5fSchéma du corps de la requête
{ "filename": "hero-banner.jpg", "mime_type": "image/jpeg", "filesize": 1654200, "options": { "format": "avif", "quality": 80, "max_dimension": 1600, "max_width": 1920, "max_height": 1080, "lossless": false, "strip_metadata": true }}| Champ | Type | Requis | Description |
|---|---|---|---|
filename | string | Oui | Nom de fichier d'origine de l'image (ex. banner.png) |
mime_type | string | Oui | Type MIME (ex. image/jpeg, image/png, image/webp) |
filesize | integer | Oui | Taille totale en octets (doit être > 0) |
options.format | string | Non | Format cible : avif, webp, original / keep, jpg, png (Par défaut : webp) |
options.quality | integer | Non | Qualité de compression entre 1 et 100 (Par défaut : 80) |
options.max_dimension | integer | Non | Contrainte proportionnelle sur la dimension du côté le plus long en pixels (ex. 1600, 1920, 2048, 2560) |
options.max_width | integer | Non | Contrainte de largeur maximale en pixels |
options.max_height | integer | Non | Contrainte de hauteur maximale en pixels |
options.lossless | boolean | Non | Active la compression sans perte au pixel près (Par défaut : false) |
options.strip_metadata | boolean | Non | Supprime les métadonnées EXIF et les profils de couleur (Par défaut : true) |
Paramètres de transformation directe d'image
Les routes de transformation cloud acceptent des paramètres d'URL pour le redimensionnement instantané :
GET https://api.smallpict.app/v1/transform?url=...&format=webp&quality=80&max_dimension=1600
?format=avif|webp|original?quality=1..100?max_dimension=1600?max_width=1920?max_height=1080
Réponse du serveur (200 OK)
Après initialisation réussie, SmallPict renvoie une URL de téléversement pré-signée sécurisée et un identifiant de tâche :
{ "upload_url": "https://upload.smallpict.app/uploads/a1b2c3d4/hero-banner.jpg?signature=...", "job_id": "job-a1b2c3d4", "object_key": "uploads/a1b2c3d4/hero-banner.jpg", "status": "queued"}Envoyez les octets de l'image vers upload_url avec une requête HTTP PUT, puis consultez l'état de la tâche. Utilisez le lien de téléversement sécurisé exactement tel qu'il est renvoyé : il expire rapidement et ne sert qu'à ce téléversement.
Suivi de l'état de la tâche
Consultez l'avancement de la conversion à l'aide de :
GET https://api.smallpict.app/v1/optimize/status?job_id=job-a1b2c3d4
Réponse une fois terminée (200 OK)
{ "job_id": "job-a1b2c3d4", "status": "completed", "url": "https://cdn.smallpict.app/opt/hero-banner.avif", "format": "avif", "bytes_saved": 1456200, "savings_percentage": 88.03, "created_at": "2026-08-23T08:00:00Z", "updated_at": "2026-08-23T08:00:01Z"}