API & SDK

Integrasikan SmallPict ke dalam aplikasi kustom Anda menggunakan REST API atau SDK resmi kami.

Gambaran Umum

SmallPict menyediakan REST API yang kuat dan SDK resmi untuk developer yang ingin mengintegrasikan optimasi gambar langsung ke dalam backend kustom mereka, bukan hanya sebatas plugin WordPress.

Dengan menggunakan API, Anda dapat dengan mudah mengompres, mengonversi (ke WebP, AVIF), dan mengubah ukuran gambar secara langsung sebelum menyimpannya ke infrastruktur Anda sendiri atau menyajikannya melalui CDN kami yang akan datang.

Autentikasi

Semua permintaan API memerlukan autentikasi menggunakan API key. Anda dapat membuat API key dari bagian API Keys di Dashboard SmallPict Anda.

Praktik Keamanan Terbaik: Jangan pernah mengekspos API key Anda di kode frontend (seperti React, Vue, atau Vanilla JS). Selalu buat permintaan ke SmallPict dari server backend Anda.

Kirimkan API key Anda di header Authorization sebagai token Bearer:

Authorization: Bearer sp_test_1234567890abcdef

Endpoint REST API

Endpoint utama untuk memproses gambar adalah:

POST https://api.tuxnoob.com/v1/images/optimize

Parameter Permintaan

  • image: (Wajib) File gambar yang akan dioptimasi (multipart/form-data).
  • format: (Opsional) Format output (contoh: webp, avif, jpg).
  • quality: (Opsional) Kualitas optimasi dari 50 hingga 100.

Contoh Permintaan (cURL)

curl -X POST https://api.tuxnoob.com/v1/images/optimize \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=@/path/to/image.png" \
  -F "format=webp" \
  -F "quality=85"

SDK Resmi (Segera Hadir)

Kami sedang aktif mengembangkan SDK resmi untuk membuat integrasi menjadi lebih mudah.

Node.js SDK

import { SmallPict } from '@smallpict/sdk';

const client = new SmallPict('YOUR_API_KEY');

const optimized = await client.images.optimize({
  file: buffer,
  format: 'webp',
  quality: 80
});

Python SDK

from smallpict import SmallPict

client = SmallPict(api_key="YOUR_API_KEY")

optimized = client.images.optimize(
    file=open("image.png", "rb"),
    format="webp",
    quality=80
)

Go SDK

import "github.com/tuxnoob/smallpict-sdk-go"

client := smallpict.NewClient("YOUR_API_KEY")

optimized, err := client.Images.Optimize(context.Background(), smallpict.OptimizeOptions{
    File:    fileBytes,
    Format:  "webp",
    Quality: 80,
})

Batas Rate & Kuota

  • Kuota: Optimasi gambar dihitung terhadap batas paket bulanan Anda (contoh: 20 MB untuk Paket Free).
  • Batas Rate: Untuk memastikan stabilitas sistem, permintaan bersamaan dibatasi. Melampaui batas rate akan mengembalikan status HTTP 429 Too Many Requests. Tunggu sebentar sebelum mencoba lagi.

Catatan: Logika rate limiting internal dan header tidak diekspos untuk tujuan keamanan.

Paket Harga API/SDK

Untuk pengembang yang membangun aplikasi kustom, SmallPict menawarkan tiga tingkatan khusus yang dirancang untuk skala:

  • Ignite: Ideal untuk proyek sampingan dan MVP. Termasuk kuota API besar dengan perutean CDN BYOK (Bawa Kunci Anda Sendiri).
  • Velocity: Dibangun untuk produk SaaS yang sedang berkembang. Batas API yang lebih tinggi dan fitur transformasi lanjutan, menggunakan CDN BYOK.
  • Momentum: Kinerja tingkat perusahaan. Termasuk panggilan API tak terbatas (tunduk pada penggunaan wajar) dan CDN Terkelola Penuh yang didukung oleh SmallPict, sehingga Anda tidak perlu membawa akun Cloudflare Anda sendiri.

Konfigurasi CDN: BYOK vs Terkelola

Saat mengintegrasikan API/SDK SmallPict, Anda memiliki kendali atas bagaimana gambar yang dioptimalkan dikirimkan ke pengguna akhir Anda:

Bring Your Own CDN (BYOK)

Tersedia pada paket Ignite dan Velocity, BYOK memungkinkan Anda menghubungkan akun Cloudflare atau AWS CloudFront (Segera Hadir) yang ada langsung ke SmallPict.

  • SmallPict menangani semua pengoptimalan dan transformasi gambar.
  • Penyedia CDN Anda sendiri menangani edge caching dan tagihan bandwidth.
  • Ini memberi Anda kendali penuh atas perutean domain, aturan WAF, dan header caching Anda.

Untuk mengatur BYOK, buka Pengaturan CDN di Dasbor Anda, pilih penyedia Anda, dan masukkan token API Anda (untuk Cloudflare, pastikan Anda memberikan izin Zone.Cache Purge dan Zone.Zone Settings: Read).

CDN Terkelola

Tersedia pada paket Momentum, SmallPict menyediakan dan mengelola jaringan edge global untuk Anda.

  • Tidak diperlukan konfigurasi.
  • Bandwidth termasuk langsung dalam langganan SmallPict Anda.
  • Gambar di-cache secara otomatis dan disajikan dari titik kehadiran global terdekat.