Endpoint Optimasi Gambar
Referensi teknis lengkap untuk endpoint pemrosesan gambar POST /v1/optimize.
Endpoint Optimasi Gambar
Endpoint utama untuk mengompresi dan mengonversi format gambar adalah:
POST https://api.smallpict.app/v1/optimize
(Alias: POST https://api.smallpict.app/v1/convert)
📥 Format Permintaan (JSON)
POST /v1/optimize HTTP/1.1
Host: api.smallpict.app
X-API-Key: sp_live_9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a0b
X-Timestamp: 1716301234
X-Signature: 3a9f8b2c4d6e8a0f1b3c5d7e9f2a4b6c8d0e1f3a5b7c9d1e3f5a7b9c1d3e5f7a
Content-Type: application/json
Idempotency-Key: c9b8a7f6-e5d4-4c3b-2a1f-0e9d8c7b6a5f
Parameter Request Body
{
"filename": "banner-produk.jpg",
"mime_type": "image/jpeg",
"filesize": 1654200,
"options": {
"format": "avif",
"quality": 80,
"max_width": 1920,
"lossless": false,
"strip_metadata": true
}
}
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
filename | string | Ya | Nama file asli (misal banner.png) |
mime_type | string | Ya | Tipe MIME konten (misal image/jpeg, image/png) |
filesize | integer | Ya | Ukuran file dalam satuan byte |
options.format | string | Tidak | Format tujuan: avif, webp, jpg, png (Default: webp) |
options.quality | integer | Tidak | Kualitas kompresi dari 1 hingga 100 (Default: 80) |
options.max_width | integer | Tidak | Batas resolusi sisi terpanjang dalam piksel |
options.lossless | boolean | Tidak | Mode kompresi lossless tanpa penurunan kualitas (Default: false) |
options.strip_metadata | boolean | Tidak | Membuang metadata EXIF kamera (Default: true) |
📤 Format Respons (200 OK)
API mengembalikan URL unggah langsung (presigned URL) dan ID pekerjaan:
{
"upload_url": "https://smallpict-staging.s3.amazonaws.com/uploads/user@example.com/a1b2c3d4/banner-produk.jpg?X-Amz-Signature=...",
"job_id": "job-a1b2c3d4",
"object_key": "uploads/user@example.com/a1b2c3d4/banner-produk.jpg",
"bucket": "smallpict-staging",
"status": "queued"
}
🔄 Pengecekan Status Pekerjaan Asinkron
GET https://api.smallpict.app/v1/optimize/status?job_id=job-a1b2c3d4
{
"job_id": "job-a1b2c3d4",
"status": "completed",
"url": "https://cdn.smallpict.app/opt/banner-produk.avif",
"format": "avif",
"bytes_saved": 1456200,
"savings_percentage": 88.03,
"created_at": "2026-08-23T08:00:00Z",
"updated_at": "2026-08-23T08:00:01Z"
}
