API

PixelToPath API

Vektorisasi gambar secara terprogram dengan satu panggilan REST. Unggah file PNG, JPG, BMP, atau WebP, dan dapatkan SVG bersih yang siap produksi. Seni garis hitam & putih dilacak oleh Potrace, gambar berwarna oleh VTracer — mesin yang sama dengan konverter online gratis.

10 konversi gratis setiap bulan · Tidak memerlukan kartu kredit

10 konversi gratis / bulan • 1 panggilan REST • Mesin Potrace + VTracer • Kredit tidak pernah kedaluwarsa

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-RemainingKredit berbayar yang tersisa di akun, setelah pemotongan untuk panggilan ini.
X-Free-RemainingSisa konversi gratis bulan ini.
X-Detected-TypeTipe gambar yang terdeteksi (info): line_art, logo, photo, atau illustration.
X-Processing-TimeWaktu 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
401invalid_api_keyKunci API hilang, salah format, tidak diketahui, atau dicabut.
402quota_exceededKuota gratis bulanan habis dan tidak ada kredit tersisa.
403account_bannedAkun dilarang (banned) — semua kuncinya ditolak.
403ip_blockedIP pemanggil masuk dalam daftar blokir.
413file_too_largeFile lebih besar dari 20 MB.
422invalid_image / image_too_small / invalid_paramsGambar tidak valid, terlalu kecil, atau nilai parameter tidak valid.
429rate_limitedBatas laju per kunci terlampaui (lihat di bawah). Menyertakan header Retry-After.
500internal_errorKonversi 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 kunci60
Permintaan per hari, per kunci2 000
Konversi serentak, per kunci2 (panggilan tambahan menunggu, lalu 429)
Ukuran / resolusi file maks20 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).

Gratis

€0/bulan

  • 10 konversi / bulan
  • Kedua mesin (Potrace + VTracer)
  • Hingga 5 kunci API
Buat akun

Gambar prabayar

€0,050/ gambar

Harga volume — semakin banyak gambar yang Anda beli, semakin murah harganya
Gambar50–450500–2 4502 500–9 95010 000–49 95050 000+
€/image0.0500.0400.0300.0200.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
Beli 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 ini
💻

Aplikasi Desktop

Gratis & sumber terbuka

Konverter lengkap di mesin Anda, untuk Windows & Linux.

Unduh gratis
⌨️

Aplikasi Desktop Pro

€39 sekali bayar

Hot folder, konversi massal, dan CLI untuk beban kerja berat.

Dapatkan Pro
🔌

API

Paket gratis + paket kredit

Satu panggilan REST: kirim gambar, dapatkan SVG bersih. 10 gratis/bulan.

Dapatkan kunci API

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