Guida rapida
Tre passaggi e starai convertendo immagini in SVG dal tuo terminale, dai tuoi script o dalla tua app.
1 · Crea il tuo account
Registrati sul portale clienti con la tua email e una password (10+ caratteri). Nessuna carta di credito richiesta.
2 · Crea una chiave API
Nel portale, crea una chiave. Ti verrà mostrata una sola volta — conservala in un luogo sicuro. Le chiavi si presentano come ptp_live_… e possono essere revocate in qualsiasi momento.
3 · Chiama /v1/convert
Invia la tua immagine come multipart/form-data con la tua chiave nell'header Authorization. L'SVG viene restituito nel corpo della risposta.
La tua prima conversione
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
Riferimento interattivo: pixel-to-path.com/v1/docs (OpenAPI/Swagger).
Autenticazione
Ogni richiesta è autenticata con un token Bearer nell'header Authorization:
Authorization: Bearer ptp_live_0123abc…
- Le chiavi sono segrete: vengono salvate tramite hash lato server e mostrate solo una volta al momento della creazione. Chiave smarrita? Revocala e creane una nuova.
- Un account, più chiavi: crea fino a 5 chiavi attive per separare i tuoi progetti. La quota mensile gratuita viene conteggiata per account, non per chiave.
- Revoca immediata: una chiave revocata smette di funzionare immediatamente, sia che venga revocata dal portale sia se l'account viene bannato.
POST /v1/convert
Caricamento e conversione in una singola chiamata senza stato (stateless). Una chiamata andata a buon fine costa al massimo 1 credito — le chiamate fallite, non valide o limitate dal rate limiting non costano nulla.
Richiesta (multipart/form-data)
| Campo | Tipo | Predefinito | Descrizione |
|---|---|---|---|
file |
file | — | L'immagine da convertire. PNG, JPEG, BMP o WebP · max 20 MB · max 50 Mpx · min 64×64 px. |
colormode |
string | color |
<code>color</code> usa il motore VTracer, <code>binary</code> usa Potrace (bianco e nero). |
mode |
string | spline |
Solo per Color (VTracer) — ignorato in modalità binary. spline | polygon | none |
hierarchical |
string | stacked |
Solo per Color (VTracer) — ignorato in modalità binary. stacked | cutout |
filter_speckle |
int | 4 |
Solo per Color (VTracer) — ignorato in modalità binary. 0–16 — rimuove piccole macchie di rumore. |
color_precision |
int | 6 |
Solo per Color (VTracer) — ignorato in modalità binary. 1–8 — numero di bit significativi per canale di colore. |
layer_difference |
int | 16 |
Solo per Color (VTracer) — ignorato in modalità binary. 0–64 — distanza tra i livelli di colore. |
corner_threshold |
int | 60 |
0–180 — angolo di rilevamento degli angoli (entrambi i motori). |
length_threshold |
float | 4.0 |
3.5–10 — lunghezza minima del segmento (entrambi i motori). |
splice_threshold |
int | 45 |
0–180 — angolo di giunzione dei percorsi (entrambi i motori). |
path_precision |
int | 3 |
0–8 — cifre decimali nelle coordinate del percorso. |
invert |
bool | false |
Solo per Binary (Potrace) — ignorato in modalità color. Traccia le aree chiare invece di quelle scure. |
turdsize |
int | 2 |
Solo per Binary (Potrace) — ignorato in modalità color. 0–20 — sopprime le imperfezioni fino a questa dimensione. |
alphamax |
float | 1.0 |
Solo per Binary (Potrace) — ignorato in modalità color. 0–1.334 — soglia di smussatura degli angoli. |
opttolerance |
float | 0.2 |
Solo per Binary (Potrace) — ignorato in modalità color. 0–10 — tolleranza per l'ottimizzazione delle curve. |
Due motori, scelti tramite "colormode"
L'API esegue esattamente gli stessi motori del convertitore online gratuito e dell'app desktop:
binary — Potrace
Tracciamento in bianco e nero di disegni al tratto, scansioni, schizzi e loghi. La parte scura dell'immagine (scala di grigi < 50%) viene tracciata su sfondo bianco. Affina il risultato con turdsize (rimozione del rumore), alphamax (smussatura degli angoli) e opttolerance (ottimizzazione dei percorsi).
color — VTracer
Vettorializzazione a colori a livelli per illustrazioni, cartoni animati e foto. Controlla il livello di dettaglio con filter_speckle, color_precision, layer_difference e l'adattamento delle curve con mode (spline, polygon, none).
Le immagini vengono pre-elaborate esattamente come sul sito web: il lato più lungo viene ridimensionato a 1500 px prima della conversione, e l'API restituisce il tipo di immagine rilevato (line_art, logo, photo o illustration) nell'header X-Detected-Type.
Risposta
In caso di successo: 200 OK con image/svg+xml — il corpo della risposta è il file SVG stesso. Header informativi:
| Header | Descrizione |
|---|---|
X-Credits-Remaining | Crediti a pagamento rimasti sull'account, dopo l'addebito per questa chiamata. |
X-Free-Remaining | Conversioni gratuite rimaste questo mese. |
X-Detected-Type | Tipo di immagine rilevata (info): line_art, logo, photo o illustration. |
X-Processing-Time | Tempo di elaborazione del server in secondi. |
GET /v1/me
Stato dell'account per la chiave utilizzata per chiamare questo endpoint. Gratuito — non viene mai conteggiato nella tua quota gratuita, né addebitato.
Esempio di risposta
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 }
}
Errori
Ogni errore restituisce un wrapper JSON coerente. Le chiamate fallite non consumano mai crediti.
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 | Codice | Quando |
|---|---|---|
| 401 | invalid_api_key | Chiave API mancante, malformata, sconosciuta o revocata. |
| 402 | quota_exceeded | Quota gratuita mensile esaurita e nessun credito rimasto. |
| 403 | account_banned | L'account è bannato — tutte le sue chiavi vengono rifiutate. |
| 403 | ip_blocked | L'IP del chiamante è nella lista nera (blocklist). |
| 413 | file_too_large | File più grande di 20 MB. |
| 422 | invalid_image / image_too_small / invalid_params | Immagine non valida, immagine troppo piccola o valore del parametro non valido. |
| 429 | rate_limited | Limite di frequenza (rate limit) per chiave superato (vedi sotto). Include un header Retry-After. |
| 500 | internal_error | Conversione fallita lato server — nessun credito viene addebitato. |
Limiti di frequenza (Rate limits)
I limiti si applicano per chiave API, non per IP, in modo che un ufficio condiviso o un runner CI non venga mai penalizzato per il traffico di qualcun altro.
| Limite | Valore |
|---|---|
| Richieste al minuto, per chiave | 60 |
| Richieste al giorno, per chiave | 2 000 |
| Conversioni simultanee, per chiave | 2 (le chiamate in eccesso attendono, poi 429) |
| Dimensione / risoluzione massima del file | 20 MB / 50 Mpx |
Prezzi
Ogni nuovo account riceve 10 conversioni gratuite ogni mese, senza necessità di carta di credito. Hai bisogno di più? Acquista immagini prepagate — in qualsiasi quantità (in lotti di 50), con sconti per volume. Non scadono mai e si sommano alla tua quota mensile gratuita (le conversioni gratuite vengono consumate per prime).
Gratuito
€0/mese
- 10 conversioni / mese
- Entrambi i motori (Potrace + VTracer)
- Fino a 5 chiavi API
Immagini prepagate
€0.050/ immagine
| Immagini | 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 immagine acquistata = 1 conversione (i crediti non scadono mai)
- Non scade mai, si somma al piano gratuito
- Qualsiasi quantità: €0.040/immagine da 500, fino a €0.010/immagine
Accredito automatico: il tuo saldo viene aggiornato entro pochi secondi dal pagamento, tramite il webhook di pagamento. I rimborsi sottraggono i crediti acquistati, fino al limite del saldo corrente. Pagamento sicuro tramite Lemon Squeezy (IVA gestita automaticamente).
Esempi di codice
Copia, incolla e adatta. L'API usa un semplice multipart/form-data, quindi funziona con qualsiasi client HTTP.
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");
Domande frequenti
Cosa conta come una conversione?
Una chiamata POST /v1/convert andata a buon fine che restituisce un SVG. Le chiamate fallite (immagine non valida, parametri errati, rate limit raggiunto, errore del server) e le chiamate GET /v1/me non vengono mai addebitate.
Come viene conteggiata la quota gratuita mensile?
Per account, in base al mese solare UTC — si azzera il 1° di ogni mese alle 00:00 UTC. Creare diverse chiavi API non moltiplica la quota gratuita: tutte le chiavi di un account condividono le stesse 10 conversioni gratuite.
I crediti scadono?
No. I crediti acquistati rimangono sul tuo account finché non li usi. Vengono consumati solo dopo che le tue 10 conversioni gratuite mensili sono esaurite.
Come posso ottenere più conversioni in un mese?
Acquista immagini prepagate dal portale clienti — in qualsiasi quantità, in lotti di 50. Vedi sempre esattamente quante immagini ottieni: 50 immagini €2.50, 500 immagini €20, 2.500 €75, 10.000 €200, 50.000 €500. I crediti vengono aggiunti al tuo account automaticamente entro pochi secondi dal pagamento — nessuna chiave di licenza, niente da inserire.
Cosa succede se perdo la mia chiave API?
Le chiavi vengono salvate tramite hash, quindi non possono essere recuperate. Revoca la chiave smarrita nel portale e creane una nuova — ha effetto immediato.
Quali formati di immagine sono supportati?
PNG, JPEG, BMP e WebP, fino a 20 MB e 50 megapixel, con almeno 64×64 pixel. Le immagini più grandi di 1500 px sul loro lato più lungo vengono ridimensionate prima della conversione, esattamente come sul sito web gratuito.
Scegli la tua Versione
Stesso potente motore - scegli il formato adatto al tuo flusso di lavoro.
Strumento Online
Gratis
Converti le immagini direttamente nel tuo browser. Nessuna installazione, nessun account.
Apri lo strumentoApp Desktop
Gratuito e open source
Il convertitore completo sulla tua macchina, per Windows e Linux.
Scarica gratisApp Desktop Pro
39€ una tantum
Hot folder, conversione batch e CLI per carichi di lavoro intensi.
Ottieni ProAPI
Piano gratuito + pacchetti crediti
Una chiamata REST: invia un'immagine, ottieni un SVG pulito. 10 gratuiti/mese.
Ottieni una chiave APIConfronta tutte le versioni & i prezzi →
Hai già un account? Accedi al portale clienti →
Pronto per vettorializzare su larga scala?
Crea il tuo account, ottieni una chiave ed esegui la tua prima chiamata in meno di due minuti.
Ottieni la tua chiave API gratuita