Szybki start
Tylko trzy kroki dzielą Cię od konwersji obrazów na SVG z Twojego terminala, skryptu lub aplikacji.
1 · Załóż konto
Zarejestruj się w portalu klienta podając e-mail i hasło (min. 10 znaków). Nie wymagamy podpinania karty kredytowej.
2 · Utwórz klucz API
W portalu utwórz klucz. Będzie on wyświetlony tylko raz — zachowaj go w bezpiecznym miejscu. Klucze zaczynają się od ptp_live_… i mogą zostać w każdej chwili unieważnione.
3 · Wywołaj /v1/convert
Wyślij swój obraz jako multipart/form-data, podając swój klucz w nagłówku Authorization. Plik SVG zostanie zwrócony w treści odpowiedzi.
Twoja pierwsza konwersja
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
Interaktywna dokumentacja: pixel-to-path.com/v1/docs (OpenAPI/Swagger).
Uwierzytelnianie
Każde żądanie jest uwierzytelniane za pomocą tokena Bearer w nagłówku Authorization:
Authorization: Bearer ptp_live_0123abc…
- Klucze są tajne: są przechowywane na serwerze w formie zaszyfrowanej i wyświetlane tylko raz przy tworzeniu. Zgubiłeś klucz? Unieważnij go i stwórz nowy.
- Jedno konto, kilka kluczy: utwórz do 5 aktywnych kluczy, aby oddzielić różne projekty. Twój miesięczny darmowy limit jest liczony na całe konto, a nie na pojedynczy klucz.
- Natychmiastowe unieważnienie: unieważniony klucz natychmiast przestaje działać, zarówno z poziomu portalu, jak i w odpowiedziach API dla zbanowanego konta.
POST /v1/convert
Przesłanie pliku i konwersja podczas jednego bezstanowego wywołania. Jedno udane wywołanie kosztuje najwyżej 1 kredyt — nieudane, nieprawidłowe lub zablokowane z powodu limitu wywołania są darmowe.
Żądanie (multipart/form-data)
| Pole | Typ | Domyślnie | Opis |
|---|---|---|---|
file |
file | — | Obraz do konwersji. PNG, JPEG, BMP lub WebP · max 20 MB · max 50 Mpx · min 64×64 px. |
colormode |
string | color |
<code>color</code> korzysta z silnika VTracer, <code>binary</code> z Potrace (czarno-białe). |
mode |
string | spline |
Tylko dla trybu koloru (VTracer) — ignorowane w trybie binarnym. spline | polygon | none |
hierarchical |
string | stacked |
Tylko dla trybu koloru (VTracer) — ignorowane w trybie binarnym. stacked | cutout |
filter_speckle |
int | 4 |
Tylko dla trybu koloru (VTracer) — ignorowane w trybie binarnym. 0–16 — usuwa małe plamy szumu. |
color_precision |
int | 6 |
Tylko dla trybu koloru (VTracer) — ignorowane w trybie binarnym. 1–8 — liczba istotnych bitów na kanał koloru. |
layer_difference |
int | 16 |
Tylko dla trybu koloru (VTracer) — ignorowane w trybie binarnym. 0–64 — odległość między warstwami kolorów. |
corner_threshold |
int | 60 |
0–180 — kąt wykrywania narożników (oba silniki). |
length_threshold |
float | 4.0 |
3.5–10 — minimalna długość segmentu (oba silniki). |
splice_threshold |
int | 45 |
0–180 — kąt dzielenia ścieżek (oba silniki). |
path_precision |
int | 3 |
0–8 — miejsca dziesiętne we współrzędnych ścieżki. |
invert |
bool | false |
Tylko dla trybu binarnego (Potrace) — ignorowane w trybie koloru. Wektoryzacja jasnych obszarów zamiast ciemnych. |
turdsize |
int | 2 |
Tylko dla trybu binarnego (Potrace) — ignorowane w trybie koloru. 0–20 — tłumi plamy do tej wielkości. |
alphamax |
float | 1.0 |
Tylko dla trybu binarnego (Potrace) — ignorowane w trybie koloru. 0–1.334 — próg wygładzania narożników. |
opttolerance |
float | 0.2 |
Tylko dla trybu binarnego (Potrace) — ignorowane w trybie koloru. 0–10 — tolerancja optymalizacji krzywych. |
Dwa silniki, wybierane przez "colormode"
API używa dokładnie tych samych silników, co darmowy konwerter online i aplikacja desktopowa:
binary (binarny) — Potrace
Czarno-biała wektoryzacja rysunków zarysowych, skanów, szkiców i logo. Ciemna część obrazu (odcienie szarości < 50%) jest wektoryzowana na białym tle. Precyzyjnie dostosuj efekt końcowy za pomocą turdsize (usuwanie szumów), alphamax (wygładzanie narożników) oraz opttolerance (optymalizacja ścieżek).
color (kolor) — VTracer
Warstwowa, kolorowa wektoryzacja dla ilustracji, kreskówek i zdjęć. Kontroluj poziom szczegółowości za pomocą filter_speckle, color_precision, layer_difference oraz dopasowania krzywych za pomocą mode (spline, polygon, none).
Obrazy są wstępnie przetwarzane dokładnie tak, jak na stronie internetowej: najdłuższy bok jest zmniejszany do 1500 pikseli przed konwersją, a API zwraca wykryty typ obrazu (line_art, logo, photo lub illustration) w nagłówku X-Detected-Type.
Odpowiedź
W przypadku sukcesu: 200 OK z image/svg+xml — sama odpowiedź zawiera plik SVG. Informacyjne nagłówki:
| Nagłówek | Opis |
|---|---|
X-Credits-Remaining | Pozostałe płatne kredyty na koncie, po odliczeniu kosztu za obecne wywołanie. |
X-Free-Remaining | Darmowe konwersje pozostałe w tym miesiącu. |
X-Detected-Type | Wykryty typ obrazu (informacyjnie): line_art, logo, photo lub illustration. |
X-Processing-Time | Czas przetwarzania serwera w sekundach. |
GET /v1/me
Status konta dla klucza, który wykonał wywołanie. Bezpłatne — nigdy nie jest odejmowane z puli kredytów ani limitów.
Przykładowa odpowiedź
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 }
}
Błędy
Każdy błąd zwraca spójną strukturę JSON. Nieudane wywołania nigdy nie pobierają kredytów.
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 | Kod | Kiedy występuje |
|---|---|---|
| 401 | invalid_api_key | Brakujący, nieprawidłowy, nieznany lub unieważniony klucz API. |
| 402 | quota_exceeded | Darmowy limit miesięczny został wyczerpany i brak pozostałych kredytów. |
| 403 | account_banned | Konto zostało zbanowane — wszystkie jego klucze są odrzucane. |
| 403 | ip_blocked | Adres IP jest na czarnej liście. |
| 413 | file_too_large | Plik większy niż 20 MB. |
| 422 | invalid_image / image_too_small / invalid_params | Nieprawidłowy plik, obraz jest za mały lub podano złą wartość parametru. |
| 429 | rate_limited | Przekroczono limit wywołań dla klucza (patrz niżej). Zawiera nagłówek Retry-After. |
| 500 | internal_error | Konwersja nie powiodła się po stronie serwera — kredyt nie został pobrany. |
Limity wywołań
Limity są stosowane na poziomie klucza API, nie na adres IP. Dzięki temu współdzielone biuro czy narzędzia CI nigdy nie są blokowane przez ruch innej osoby.
| Limit | Wartość |
|---|---|
| Żądania na minutę, dla danego klucza | 60 |
| Żądania na dzień, dla danego klucza | 2 000 |
| Równoczesne konwersje, dla danego klucza | 2 (kolejne żądania oczekują, następnie 429) |
| Maks. rozmiar pliku / rozdzielczość | 20 MB / 50 Mpx |
Cennik
Każde nowe konto otrzymuje 10 darmowych konwersji każdego miesiąca, nie wymagamy podania karty kredytowej. Potrzebujesz więcej? Kup pakiety przedpłacone na obrazy — dowolną ilość (w pakietach po 50), ze zniżkami ilościowymi. Nigdy nie wygasają i łączą się z miesięcznym, darmowym limitem (darmowe konwersje są zużywane jako pierwsze).
Za darmo
0 €/ miesiąc
- 10 konwersji / miesiąc
- Oba silniki (Potrace + VTracer)
- Do 5 kluczy API
Przedpłacone obrazy
0,050 €/ obraz
| Obrazy | 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 zakupiony obraz = 1 konwersja (kredyty nie wygasają)
- Nigdy nie wygasają, sumują się z darmowym pakietem
- Dowolna ilość: 0,040 €/obraz od 500 szt., nawet do 0,010 €/obraz
Automatyczne doładowanie: Twoje saldo zostanie zaktualizowane w ciągu kilku sekund po dokonaniu płatności, za pomocą webhooka. Zwroty pieniędzy odliczają kupione kredyty, maksymalnie do aktualnego salda konta. Bezpieczne płatności obsługuje Lemon Squeezy (podatek VAT obliczany automatycznie).
Przykłady kodu
Skopiuj, wklej i dopasuj. API korzysta z formatu multipart/form-data, więc można go używać z dowolnym klientem 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");
Często zadawane pytania
Co liczy się jako jedna konwersja?
Jedno udane żądanie POST /v1/convert, które zwróci plik SVG. Nieudane wywołania (zły plik, błędne parametry, limit zapytań, błąd serwera) oraz wywołania GET /v1/me nigdy nie pobierają kredytu.
Jak liczony jest miesięczny darmowy pakiet?
Dla całego konta, według kalendarza UTC — limit odnawia się pierwszego dnia miesiąca o północy (00:00 UTC). Tworzenie kilku kluczy API nie powiększa darmowej puli: wszystkie klucze z danego konta dzielą te same 10 darmowych konwersji.
Czy kredyty tracą ważność?
Nie. Zakupione kredyty zostają na koncie tak długo, aż z nich nie skorzystasz. Będą zużywane dopiero wtedy, gdy wykorzystasz pakiet 10 darmowych konwersji na dany miesiąc.
Jak uzyskać więcej konwersji w miesiącu?
Kup przedpłacone obrazy w portalu dla klientów — dowolną liczbę, w paczkach po 50. Zawsze dokładnie widzisz, ile obrazów otrzymujesz: 50 obrazów za 2,50 €, 500 obrazów za 20 €, 2 500 za 75 €, 10 000 za 200 €, 50 000 za 500 €. Kredyty są dodawane do konta automatycznie w ciągu kilku sekund od dokonania płatności — bez kluczy licencyjnych, niczego nie trzeba wpisywać ręcznie.
Co się stanie, jeśli zgubię klucz API?
Klucze są zaszyfrowane na serwerze, więc nie można ich odzyskać. Unieważnij utracony klucz w portalu i utwórz nowy — zmiana zostaje wdrożona natychmiast.
Jakie formaty obrazów są obsługiwane?
PNG, JPEG, BMP i WebP, o rozmiarze do 20 MB i do 50 megapikseli, a także co najmniej 64×64 pikseli. Obrazy o wymiarach większych niż 1500 px (najdłuższy bok) są zmniejszane przed konwersją, dokładnie tak samo jak na bezpłatnej stronie internetowej.
Wybierz swoją wersję
Ten sam potężny silnik - wybierz format pasujący do Twojego przepływu pracy.
Narzędzie Online
Za darmo
Konwertuj obrazy bezpośrednio w przeglądarce. Bez instalacji, bez konta.
Otwórz narzędzieAplikacja Desktopowa
Darmowe & open source
Pełny konwerter na Twoim komputerze, dla systemów Windows i Linux.
Pobierz za darmoAplikacja desktopowa Pro
39 € jednorazowo
Hot folder, masowa konwersja i CLI do wymagającej pracy.
Zdobądź wersję ProAPI
Darmowy pakiet + paczki kredytów
Jedno wywołanie REST: wyślij obraz, uzyskaj czysty SVG. 10 darmowych/mies.
Zdobądź klucz APIPorównaj wszystkie wersje i ceny →
Masz już konto? Zaloguj się do portalu klienta →
Gotowy na wektoryzację w dużej skali?
Załóż konto, weź klucz i stwórz pierwsze żądanie w zaledwie dwie minuty.
Odbierz darmowy klucz API