Быстрый старт
Три шага — и вы конвертируете изображения в 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 | Код | Когда |
|---|---|---|
| 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 | Ошибка конвертации на стороне сервера — кредиты не списываются. |
Лимиты запросов
Лимиты применяются к ключу API, а не к IP, поэтому общий офис или CI runner никогда не будут наказаны за чужой трафик.
| Лимит | Значение |
|---|---|
| Запросов в минуту на ключ | 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/изобр.
Автоматическое начисление кредитов: ваш баланс обновляется в течение нескольких секунд после оплаты через платежный вебхук. При возврате средств списываются купленные кредиты, но не более текущего баланса. Безопасное оформление заказа через 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 для высоких нагрузок.
Купить ProAPI
Бесплатный тариф + пакеты кредитов
Один REST-запрос: отправьте изображение, получите чистый SVG. 10 бесплатно в месяц.
Получить ключ APIУже есть аккаунт? Войти на клиентский портал →
Готовы к масштабной векторизации?
Создайте аккаунт, получите ключ и сделайте свой первый вызов менее чем за две минуты.
Получить бесплатный ключ API