Mulai Cepat
Tiga langkah dan Anda sudah mengonversi gambar ke SVG dari terminal, skrip, atau aplikasi Anda.
1 · Buat akun Anda
Daftar di portal klien dengan email dan kata sandi Anda (10+ karakter). Tidak memerlukan kartu kredit.
2 · Buat kunci API
Di portal, buat sebuah kunci. Kunci hanya ditampilkan sekali — simpan dengan aman. Kunci terlihat seperti ptp_live_… dan dapat dicabut kapan saja.
3 · Panggil /v1/convert
Kirim gambar Anda sebagai multipart/form-data dengan kunci Anda di header Authorization. SVG akan dikembalikan dalam badan respons.
Konversi pertama Anda
curl -sS -f -X POST https://api.pixel-to-path.com/v1/convert \
-H "Authorization: Bearer ptp_live_YOUR_KEY" \
-F "[email protected]" \
-F "colormode=binary" \
-o logo.svg
Referensi interaktif: pixel-to-path.com/v1/docs (OpenAPI/Swagger).
Autentikasi
Setiap permintaan diautentikasi dengan token Bearer di header Authorization:
Authorization: Bearer ptp_live_0123abc…
- Kunci adalah rahasia: kunci disimpan dalam bentuk hash di sisi server dan hanya ditampilkan sekali saat pembuatan. Kunci hilang? Cabut dan buat yang baru.
- Satu akun, beberapa kunci: buat hingga 5 kunci aktif untuk memisahkan proyek Anda. Kuota gratis bulanan Anda dihitung per akun, bukan per kunci.
- Pencabutan instan: kunci yang dicabut akan langsung berhenti berfungsi, dari portal atau respons API pada akun yang diblokir.
POST /v1/convert
Unggah + konversi dalam satu panggilan tanpa status (stateless). Satu panggilan yang berhasil paling banyak membutuhkan 1 kredit — panggilan yang gagal, tidak valid, atau terkena batas laju tidak memakan biaya.
Permintaan (multipart/form-data)
| Bidang | Tipe | Default | Deskripsi |
|---|---|---|---|
file |
file | — | Gambar yang akan dikonversi. PNG, JPEG, BMP, atau WebP · maks 20 MB · maks 50 Mpx · min 64×64 px. |
colormode |
string | color |
<code>color</code> menggunakan mesin VTracer, <code>binary</code> menggunakan Potrace (hitam & putih). |
mode |
string | spline |
Hanya Color (VTracer) — diabaikan dalam mode biner. spline | polygon | none |
hierarchical |
string | stacked |
Hanya Color (VTracer) — diabaikan dalam mode biner. stacked | cutout |
filter_speckle |
int | 4 |
Hanya Color (VTracer) — diabaikan dalam mode biner. 0–16 — menghapus bercak noise kecil. |
color_precision |
int | 6 |
Hanya Color (VTracer) — diabaikan dalam mode biner. 1–8 — jumlah bit signifikan per kanal warna. |
layer_difference |
int | 16 |
Hanya Color (VTracer) — diabaikan dalam mode biner. 0–64 — jarak antar lapisan warna. |
corner_threshold |
int | 60 |
0–180 — sudut deteksi titik sudut (kedua mesin). |
length_threshold |
float | 4.0 |
3.5–10 — panjang segmen minimum (kedua mesin). |
splice_threshold |
int | 45 |
0–180 — sudut pemisahan jalur (kedua mesin). |
path_precision |
int | 3 |
0–8 — digit desimal dalam koordinat jalur. |
invert |
bool | false |
Hanya Binary (Potrace) — diabaikan dalam mode warna. Lacak area terang alih-alih area gelap. |
turdsize |
int | 2 |
Hanya Binary (Potrace) — diabaikan dalam mode warna. 0–20 — menekan bercak hingga ukuran ini. |
alphamax |
float | 1.0 |
Hanya Binary (Potrace) — diabaikan dalam mode warna. 0–1.334 — ambang penghalusan titik sudut. |
opttolerance |
float | 0.2 |
Hanya Binary (Potrace) — diabaikan dalam mode warna. 0–10 — toleransi optimasi kurva. |
Dua mesin, dipilih dengan "colormode"
API menjalankan mesin yang sama persis dengan konverter online gratis dan aplikasi desktop:
binary — Potrace
Pelacakan hitam & putih dari seni garis, pindaian, sketsa, dan logo. Bagian gelap dari gambar (skala abu-abu < 50%) dilacak di atas latar belakang putih. Sempurnakan output dengan turdsize (penghapusan noise), alphamax (penghalusan sudut), dan opttolerance (pengoptimalan jalur).
color — VTracer
Vektorisasi warna berlapis untuk ilustrasi, kartun, dan foto. Kontrol tingkat detail dengan filter_speckle, color_precision, layer_difference, dan penyesuaian kurva dengan mode (spline, polygon, none).
Gambar diproses persis seperti di situs web: sisi terpanjang diubah ukurannya menjadi 1500 px sebelum konversi, dan API mengembalikan tipe gambar yang terdeteksi (line_art, logo, photo, atau illustration) di header X-Detected-Type.
Respons
Saat berhasil: 200 OK dengan image/svg+xml — badan respons adalah file SVG itu sendiri. Header informatif:
| Header | Deskripsi |
|---|---|
X-Credits-Remaining | Kredit berbayar yang tersisa di akun, setelah pemotongan untuk panggilan ini. |
X-Free-Remaining | Sisa konversi gratis bulan ini. |
X-Detected-Type | Tipe gambar yang terdeteksi (info): line_art, logo, photo, atau illustration. |
X-Processing-Time | Waktu pemrosesan server dalam detik. |
GET /v1/me
Status akun untuk kunci yang digunakan untuk memanggilnya. Gratis — tidak pernah dihitung dalam kuota Anda, tidak pernah dipotong.
Contoh respons
GET /v1/me
Authorization: Bearer ptp_live_…
{
"key": { "name": "prod", "prefix": "ptp_live_0123abc", … },
"usage": {
"month": "2026-09", "free_used": 7, "free_limit": 10,
"free_remaining": 3, "resets_at": "2026-10-01T00:00:00+00:00"
},
"credits": { "balance": 120 }
}
Kesalahan
Setiap kesalahan mengembalikan struktur (envelope) JSON yang konsisten. Panggilan yang gagal tidak pernah menggunakan kredit.
HTTP/1.1 402 Payment Required
{
"error": {
"code": "quota_exceeded",
"message": "Monthly free quota used and no credits left.",
"usage": { "free_used": 10, "free_limit": 10, "credits": 0 }
}
}
| HTTP | Kode | Kapan |
|---|---|---|
| 401 | invalid_api_key | Kunci API hilang, salah format, tidak diketahui, atau dicabut. |
| 402 | quota_exceeded | Kuota gratis bulanan habis dan tidak ada kredit tersisa. |
| 403 | account_banned | Akun dilarang (banned) — semua kuncinya ditolak. |
| 403 | ip_blocked | IP pemanggil masuk dalam daftar blokir. |
| 413 | file_too_large | File lebih besar dari 20 MB. |
| 422 | invalid_image / image_too_small / invalid_params | Gambar tidak valid, terlalu kecil, atau nilai parameter tidak valid. |
| 429 | rate_limited | Batas laju per kunci terlampaui (lihat di bawah). Menyertakan header Retry-After. |
| 500 | internal_error | Konversi gagal di sisi server — tidak ada kredit yang dikenakan. |
Batas laju
Batasan berlaku per kunci API, bukan per IP, sehingga kantor atau CI runner yang berbagi koneksi tidak pernah dihukum karena lalu lintas orang lain.
| Batas | Nilai |
|---|---|
| Permintaan per menit, per kunci | 60 |
| Permintaan per hari, per kunci | 2 000 |
| Konversi serentak, per kunci | 2 (panggilan tambahan menunggu, lalu 429) |
| Ukuran / resolusi file maks | 20 MB / 50 Mpx |
Harga
Setiap akun baru mendapatkan 10 konversi gratis setiap bulan, tidak memerlukan kartu kredit. Butuh lebih banyak? Beli gambar prabayar — jumlah berapa pun (dalam kelipatan 50), dengan diskon volume. Kredit tidak pernah kedaluwarsa dan ditumpuk dengan kuota gratis bulanan Anda (konversi gratis digunakan terlebih dahulu).
Gambar prabayar
€0,050/ gambar
| Gambar | 50–450 | 500–2 450 | 2 500–9 950 | 10 000–49 950 | 50 000+ |
|---|---|---|---|---|---|
| €/image | 0.050 | 0.040 | 0.030 | 0.020 | 0.010 |
- 1 gambar dibeli = 1 konversi (kredit tidak pernah kedaluwarsa)
- Tidak pernah kedaluwarsa, terakumulasi dengan paket gratis
- Jumlah berapa pun: €0,040/gambar mulai dari 500, turun hingga €0,010/gambar
Kredit otomatis: saldo Anda diperbarui dalam hitungan detik setelah pembayaran, melalui webhook pembayaran. Pengembalian dana memotong kredit yang dibeli, dibatasi hingga saldo saat ini. Pembayaran aman oleh Lemon Squeezy (PPN ditangani secara otomatis).
Contoh kode
Salin-tempel dan sesuaikan. API menggunakan multipart/form-data biasa, sehingga klien HTTP apa pun dapat digunakan.
cURL
curl -sS -f -X POST https://api.pixel-to-path.com/v1/convert \
-H "Authorization: Bearer ptp_live_YOUR_KEY" \
-F "[email protected]" \
-F "colormode=color" \
-F "filter_speckle=4" \
-o photo.svg
Python
import requests
resp = requests.post(
"https://api.pixel-to-path.com/v1/convert",
headers={"Authorization": "Bearer ptp_live_YOUR_KEY"},
files={"file": open("photo.jpg", "rb")},
data={"colormode": "color", "filter_speckle": 4},
)
resp.raise_for_status()
print(resp.headers["X-Credits-Remaining"], "credits left")
with open("photo.svg", "wb") as f:
f.write(resp.content)
JavaScript
const form = new FormData();
form.append("file", new Blob([imageBytes]), "photo.jpg");
form.append("colormode", "color");
const resp = await fetch("https://api.pixel-to-path.com/v1/convert", {
method: "POST",
headers: { "Authorization": "Bearer ptp_live_YOUR_KEY" },
body: form,
});
if (!resp.ok) {
const { error } = await resp.json();
throw new Error(`${error.code}: ${error.message}`);
}
const svg = await resp.text();
console.log(resp.headers.get("X-Credits-Remaining"), "credits left");
Pertanyaan yang sering diajukan
Apa yang dihitung sebagai satu konversi?
Satu panggilan POST /v1/convert yang berhasil dan mengembalikan file SVG. Panggilan yang gagal (gambar tidak valid, parameter salah, batas laju, kesalahan server) dan panggilan GET /v1/me tidak pernah dikenakan biaya.
Bagaimana kuota gratis bulanan dihitung?
Per akun, berdasarkan bulan kalender UTC — diatur ulang pada tanggal 1 pukul 00:00 UTC. Membuat beberapa kunci API tidak menggandakan kuota gratis: semua kunci dari satu akun berbagi 10 konversi gratis yang sama.
Apakah kredit bisa kedaluwarsa?
Tidak. Kredit yang dibeli tetap berada di akun Anda hingga Anda menggunakannya. Kredit tersebut baru digunakan setelah 10 konversi bulanan gratis Anda habis.
Bagaimana cara mendapatkan lebih banyak konversi dalam sebulan?
Beli gambar prabayar dari portal klien — jumlah berapa pun, dalam kelipatan 50. Anda selalu dapat melihat jumlah gambar yang Anda dapatkan secara pasti: 50 gambar €2,50, 500 gambar €20, 2.500 €75, 10.000 €200, 50.000 €500. Kredit ditambahkan ke akun Anda secara otomatis dalam hitungan detik setelah pembayaran — tanpa kunci lisensi, tidak ada yang perlu dimasukkan.
Apa yang terjadi jika saya kehilangan kunci API saya?
Kunci disimpan dalam bentuk hash, sehingga tidak dapat dipulihkan. Cabut kunci yang hilang di portal dan buat yang baru — pencabutan berlaku segera.
Format gambar apa saja yang didukung?
PNG, JPEG, BMP, dan WebP, hingga 20 MB dan 50 megapiksel, setidaknya berukuran 64×64 piksel. Gambar yang lebih besar dari 1500 piksel pada sisi terpanjangnya akan diubah ukurannya sebelum konversi, persis seperti di situs web gratis.
Pilih Versi Anda
Mesin tangguh yang sama - pilih format yang sesuai dengan alur kerja Anda.
Alat Online
Gratis
Konversi gambar langsung di browser Anda. Tanpa instalasi, tanpa akun.
Buka alat iniAplikasi Desktop
Gratis & sumber terbuka
Konverter lengkap di mesin Anda, untuk Windows & Linux.
Unduh gratisAplikasi Desktop Pro
€39 sekali bayar
Hot folder, konversi massal, dan CLI untuk beban kerja berat.
Dapatkan ProAPI
Paket gratis + paket kredit
Satu panggilan REST: kirim gambar, dapatkan SVG bersih. 10 gratis/bulan.
Dapatkan kunci APIBandingkan semua versi & harga →
Sudah punya akun? Masuk ke portal klien →
Siap untuk vektorisasi dalam skala besar?
Buat akun Anda, dapatkan kunci, dan lakukan panggilan pertama Anda dalam waktu kurang dari dua menit.
Dapatkan kunci API gratis