Швидкий старт
Три кроки — і ви зможете конвертувати зображення в SVG з терміналу, скриптів або свого застосунку.
1 · Створіть акаунт
Зареєструйтеся на клієнтському порталі, вказавши email та пароль (10+ символів). Кредитна картка не потрібна.
2 · Створіть API-ключ
На порталі створіть ключ. Він відображається лише один раз — збережіть його в надійному місці. Ключі починаються з ptp_live_…, їх можна відкликати в будь-який момент.
3 · Викличте /v1/convert
Надішліть зображення у форматі multipart/form-data, додавши ключ у заголовок Authorization. Відповідь міститиме готовий SVG-файл у тілі (body).
Ваша перша конвертація
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
Інтерактивна довідка: pixel-to-path.com/v1/docs (OpenAPI/Swagger).
Аутентифікація
Кожен запит аутентифікується за допомогою Bearer-токена в заголовку Authorization:
Authorization: Bearer ptp_live_0123abc…
- Ключі — це секретні дані: вони зберігаються на сервері у хешованому вигляді і відображаються лише один раз під час створення. Втратили ключ? Відкличте його і створіть новий.
- Один акаунт, кілька ключів: ви можете створити до 5 активних ключів для розділення своїх проєктів. Безкоштовний ліміт рахується на акаунт, а не на кожен ключ.
- Миттєве відкликання: відкликаний ключ перестає працювати відразу. Це також стосується заблокованих акаунтів.
POST /v1/convert
Завантаження та конвертація за один stateless-виклик (без збереження стану). Успішний запит знімає максимум 1 кредит. За невдалі, невалідні або відхилені через перевищення ліміту виклики кредити не знімаються.
Запит (multipart/form-data)
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
file |
file | — | Зображення для конвертації. PNG, JPEG, BMP або WebP · макс. 20 МБ · макс. 50 Мп · мін. 64×64 пкс. |
colormode |
string | color |
<code>color</code> використовує рушій VTracer, <code>binary</code> — Potrace (чорно-білий). |
mode |
string | spline |
Тільки для Color (VTracer) — ігнорується в бінарному режимі. spline | polygon | none |
hierarchical |
string | stacked |
Тільки для Color (VTracer) — ігнорується в бінарному режимі. stacked | cutout |
filter_speckle |
int | 4 |
Тільки для Color (VTracer) — ігнорується в бінарному режимі. 0–16 — видаляє дрібні плями шуму. |
color_precision |
int | 6 |
Тільки для Color (VTracer) — ігнорується в бінарному режимі. 1–8 — кількість значущих біт на колірний канал. |
layer_difference |
int | 16 |
Тільки для Color (VTracer) — ігнорується в бінарному режимі. 0–64 — відстань між кольоровими шарамi. |
corner_threshold |
int | 60 |
0–180 — кут виявлення кутів (обидва рушії). |
length_threshold |
float | 4.0 |
3.5–10 — мінімальна довжина сегмента (обидва рушії). |
splice_threshold |
int | 45 |
0–180 — кут розбиття шляхів (обидва рушії). |
path_precision |
int | 3 |
0–8 — десяткові знаки у координатах шляхів. |
invert |
bool | false |
Тільки для Binary (Potrace) — ігнорується в кольоровому режимі. Трасувати світлі ділянки замість темних. |
turdsize |
int | 2 |
Тільки для Binary (Potrace) — ігнорується в кольоровому режимі. 0–20 — пригнічує плями до цього розміру. |
alphamax |
float | 1.0 |
Тільки для Binary (Potrace) — ігнорується в кольоровому режимі. 0–1.334 — поріг згладжування кутів. |
opttolerance |
float | 0.2 |
Тільки для Binary (Potrace) — ігнорується в кольоровому режимі. 0–10 — допуск оптимізації кривих. |
Два рушії, що обираються за допомогою "colormode"
API використовує ті самі рушії, що й безкоштовний онлайн-конвертер або десктопний додаток:
binary — Potrace
Чорно-біле трасування лінійної графіки, сканів, ескізів та логотипів. Темна частина зображення (відтінки сірого < 50%) трасується на білому тлі. Налаштуйте результат за допомогою параметрів turdsize (видалення шуму), alphamax (згладжування кутів) та opttolerance (оптимізація шляхів).
color — VTracer
Багатошарова кольорова векторизація для ілюстрацій, мультфільмів та фотографій. Контролюйте рівень деталізації за допомогою filter_speckle, color_precision, layer_difference та налаштуйте згладжування кривих за допомогою mode (spline, polygon, none).
Зображення попередньо обробляються так само, як і на вебсайті: найдовша сторона зменшується до 1500 пкс перед конвертацією, а API повертає виявлений тип зображення (line_art, logo, photo або illustration) у заголовку X-Detected-Type.
Відповідь
У разі успіху: 200 OK з image/svg+xml — саме тіло (body) є файлом SVG. Інформативні заголовки:
| Заголовок | Опис |
|---|---|
X-Credits-Remaining | Залишок платних кредитів на акаунті після списання за цей виклик. |
X-Free-Remaining | Залишок безкоштовних конвертацій на цей місяць. |
X-Detected-Type | Виявлений тип зображення (інфо): line_art, logo, photo або illustration. |
X-Processing-Time | Час обробки на сервері (у секундах). |
GET /v1/me
Статус акаунта для ключа, використаного для виклику. Безкоштовно — ніколи не враховується в квоті і не списує кредити.
Приклад відповіді
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 }
}
Помилки
Кожна помилка повертається в єдиному JSON-форматі. За невдалі виклики кредити ніколи не списуються.
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 | Код | Коли виникає |
|---|---|---|
| 401 | invalid_api_key | Відсутній, неправильний, невідомий або відкликаний API-ключ. |
| 402 | quota_exceeded | Безкоштовна квота вичерпана, кредитів не залишилось. |
| 403 | account_banned | Акаунт заблоковано — усі його ключі відхиляються. |
| 403 | ip_blocked | IP-адреса абонента у чорному списку. |
| 413 | file_too_large | Розмір файлу перевищує 20 МБ. |
| 422 | invalid_image / image_too_small / invalid_params | Недійсне зображення, надто мале зображення або невірне значення параметра. |
| 429 | rate_limited | Перевищено ліміт запитів для ключа (див. нижче). Включає заголовок Retry-After. |
| 500 | internal_error | Помилка конвертації на сервері — кредит не списується. |
Обмеження (Rate limits)
Обмеження діють на кожен API-ключ, а не на IP-адресу. Тому спільний офіс або CI-сервер ніколи не постраждають від чужого трафіку.
| Обмеження | Значення |
|---|---|
| Запитів на хвилину, на ключ | 60 |
| Запитів на день, на ключ | 2 000 |
| Одночасних конвертацій, на ключ | 2 (додаткові виклики чекають, потім 429) |
| Макс. розмір файлу / роздільна здатність | 20 МБ / 50 Мп |
Ціни
Кожен новий акаунт отримує 10 безкоштовних конвертацій щомісяця, кредитна картка не потрібна. Потрібно більше? Купуйте передплачені зображення — будь-яку кількість (пакетами по 50 шт.) зі знижкою за об’єм. Вони ніколи не згорають і сумуються з безкоштовним місячним лімітом (спершу списуються безкоштовні).
Безкоштовно
0 €/місяць
- 10 конвертацій / місяць
- Обидва рушії (Potrace + VTracer)
- До 5 API-ключів
Передплачені зображення
0,050 €/ зображення
| Зображення | 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 куплене зображення = 1 конвертація (кредити не згорають)
- Ніколи не згорають, сумуються з безкоштовним лімітом
- Будь-яка кількість: 0,040 €/зображення від 500 шт., аж до 0,010 €/зображення
Автоматичне поповнення: баланс оновлюється через кілька секунд після оплати за допомогою webhook'у. Повернення коштів списує куплені кредити, обмежені поточним балансом. Безпечне оформлення замовлення через Lemon Squeezy (ПДВ обчислюється автоматично).
Приклади коду
Скопіюйте та адаптуйте під свої потреби. API працює зі звичайним multipart/form-data, тому підійде будь-який 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");
Часті запитання (FAQ)
Що вважається за одну конвертацію?
Один успішний виклик POST /v1/convert, що повертає SVG. Невдалі виклики (невалідне зображення, неправильні параметри, перевищення ліміту, помилка сервера) та запити GET /v1/me ніколи не списуються.
Як рахується місячна безкоштовна квота?
На акаунт, за календарним місяцем UTC — обнуляється 1-го числа о 00:00 UTC. Створення кількох API-ключів не множить безкоштовний ліміт: усі ключі акаунта спільно використовують ті самі 10 безкоштовних конвертацій.
Чи згорають кредити?
Ні. Придбані кредити залишаються на акаунті, поки ви їх не використаєте. Вони списуються лише після того, як буде вичерпано 10 безкоштовних місячних конвертацій.
Як отримати більше конвертацій на місяць?
Купуйте передплачені зображення на клієнтському порталі — будь-яку кількість пакетами по 50 шт. Ви завжди бачите, скільки зображень отримуєте: 50 за 2,50 €, 500 за 20 €, 2 500 за 75 €, 10 000 за 200 €, 50 000 за 500 €. Кредити додаються на ваш баланс автоматично протягом кількох секунд після оплати — без ліцензійних ключів та зайвих налаштувань.
Що робити, якщо я втрачу свій API-ключ?
Ключі зберігаються у хешованому вигляді, тому їх неможливо відновити. Відкличте втрачений ключ на порталі та створіть новий — зміни застосовуються миттєво.
Які формати зображень підтримуються?
PNG, JPEG, BMP та WebP, до 20 МБ та 50 мегапікселів, щонайменше 64×64 пікселів. Зображення, більші за 1500 пкс по найдовшій стороні, перед конвертацією зменшуються, як і на безкоштовному вебсайті.
Оберіть свою версію
Той самий потужний рушій - виберіть формат для вашої роботи.
Онлайн-інструмент
Безкоштовно
Конвертуйте зображення прямо в браузері. Без встановлення, без акаунта.
Відкрити інструментДесктопний додаток
Безкоштовно та Open Source
Повний конвертер на вашому комп'ютері для Windows та Linux.
Завантажити безкоштовноДесктоп-застосунок Pro
39 € одноразово
Гаряча папка, пакетна конвертація та CLI для великих навантажень.
Отримати ProAPI
Безкоштовний рівень + пакети кредитів
Один REST-виклик: надсилаєте зображення, отримуєте чистий SVG. 10 безкоштовних/місяць.
Отримати API-ключПорівняти всі версії та ціни →
Вже є акаунт? Увійти в клієнтський портал →
Готові векторизувати у великих масштабах?
Створіть акаунт, отримайте ключ і зробіть свій перший виклик менш ніж за дві хвилини.
Отримати безкоштовний API-ключ