API

API PixelToPath

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

10 бесплатных конвертаций каждый месяц · Кредитная карта не требуется

10 бесплатных конвертаций в месяц • 1 REST-запрос • Движки Potrace + VTracer • Кредиты никогда не сгорают

Быстрый старт

Три шага — и вы конвертируете изображения в SVG из терминала, скриптов или вашего приложения.

1 · Создайте аккаунт

Зарегистрируйтесь на клиентском портале с помощью электронной почты и пароля (от 10 символов). Кредитная карта не требуется.

2 · Создайте ключ API

Создайте ключ на портале. Он отображается только один раз — сохраните его в надежном месте. Ключи выглядят как ptp_live_… и могут быть отозваны в любое время.

3 · Вызовите /v1/convert

Отправьте ваше изображение в формате multipart/form-data с вашим ключом в заголовке Authorization. SVG возвращается в теле ответа.

Ваша первая конвертация

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 активных ключей для разделения ваших проектов. Бесплатная месячная квота рассчитывается на аккаунт, а не на ключ.
  • Мгновенный отзыв: отозванный ключ перестает работать немедленно, будь то через отзыв на портале или через API-ответ для заблокированного аккаунта.

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 — расстояние между цветовыми слоями.
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 — тело ответа является самим файлом 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Ошибка конвертации на стороне сервера — кредиты не списываются.

Лимиты запросов

Лимиты применяются к ключу API, а не к IP, поэтому общий офис или CI runner никогда не будут наказаны за чужой трафик.

Лимит Значение
Запросов в минуту на ключ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/изобр.
Купить изображения

Автоматическое начисление кредитов: ваш баланс обновляется в течение нескольких секунд после оплаты через платежный вебхук. При возврате средств списываются купленные кредиты, но не более текущего баланса. Безопасное оформление заказа через 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");

Часто задаваемые вопросы

Что считается одной конвертацией?

Один успешный вызов 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