API

API PixelToPath

Векторизуйте зображення програмно за допомогою одного REST-виклику. Завантажте файл PNG, JPG, BMP або WebP і отримайте назад чистий, готовий до використання SVG. Чорно-білу графіку трасує Potrace, а кольорові зображення — VTracer (ті самі рушії, що й у безкоштовному онлайн-конвертері).

10 безкоштовних конвертацій щомісяця · Кредитна картка не потрібна

10 безкоштовних конвертацій / місяць • 1 REST-виклик • Рушії Potrace + VTracer • Кредити ніколи не згорають

Швидкий старт

Три кроки — і ви зможете конвертувати зображення в 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 Код Коли виникає
401invalid_api_keyВідсутній, неправильний, невідомий або відкликаний API-ключ.
402quota_exceededБезкоштовна квота вичерпана, кредитів не залишилось.
403account_bannedАкаунт заблоковано — усі його ключі відхиляються.
403ip_blockedIP-адреса абонента у чорному списку.
413file_too_largeРозмір файлу перевищує 20 МБ.
422invalid_image / image_too_small / invalid_paramsНедійсне зображення, надто мале зображення або невірне значення параметра.
429rate_limitedПеревищено ліміт запитів для ключа (див. нижче). Включає заголовок Retry-After.
500internal_errorПомилка конвертації на сервері — кредит не списується.

Обмеження (Rate limits)

Обмеження діють на кожен API-ключ, а не на IP-адресу. Тому спільний офіс або CI-сервер ніколи не постраждають від чужого трафіку.

Обмеження Значення
Запитів на хвилину, на ключ60
Запитів на день, на ключ2 000
Одночасних конвертацій, на ключ2 (додаткові виклики чекають, потім 429)
Макс. розмір файлу / роздільна здатність20 МБ / 50 Мп

Ціни

Кожен новий акаунт отримує 10 безкоштовних конвертацій щомісяця, кредитна картка не потрібна. Потрібно більше? Купуйте передплачені зображення — будь-яку кількість (пакетами по 50 шт.) зі знижкою за об’єм. Вони ніколи не згорають і сумуються з безкоштовним місячним лімітом (спершу списуються безкоштовні).

Безкоштовно

0 €/місяць

  • 10 конвертацій / місяць
  • Обидва рушії (Potrace + VTracer)
  • До 5 API-ключів
Створити акаунт

Передплачені зображення

0,050 €/ зображення

Ціни за об’єм — чим більше зображень ви купуєте, тим дешевшим стає кожне з них
Зображення50–450500–2 4502 500–9 95010 000–49 95050 000+
€/image0.0500.0400.0300.0200.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 для великих навантажень.

Отримати Pro
🔌

API

Безкоштовний рівень + пакети кредитів

Один REST-виклик: надсилаєте зображення, отримуєте чистий SVG. 10 безкоштовних/місяць.

Отримати API-ключ

Готові векторизувати у великих масштабах?

Створіть акаунт, отримайте ключ і зробіть свій перший виклик менш ніж за дві хвилини.

Отримати безкоштовний API-ключ