빠른 시작
단 3단계만으로 터미널, 스크립트 또는 앱에서 이미지를 SVG로 변환할 수 있습니다.
1 · 계정 생성
이메일과 비밀번호(10자 이상)로 고객 포털에 등록하세요. 신용카드는 필요하지 않습니다.
2 · API 키 생성
포털에서 키를 생성하세요. 키는 한 번만 표시되므로 안전하게 보관하세요. 키는 ptp_live_… 형식이며 언제든지 취소할 수 있습니다.
3 · /v1/convert 호출
Authorization 헤더에 키를 포함하여 multipart/form-data 형식으로 이미지를 전송하세요. 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).
인증
모든 요청은 Authorization 헤더의 Bearer 토큰으로 인증됩니다:
Authorization: Bearer ptp_live_0123abc…
- 키는 비밀입니다: 서버 측에서 해시되어 저장되며 생성 시 한 번만 표시됩니다. 키를 분실하셨나요? 키를 취소하고 새로 생성하세요.
- 하나의 계정, 여러 개의 키: 최대 5개의 활성 키를 생성하여 프로젝트를 분리할 수 있습니다. 월별 무료 할당량은 키가 아닌 계정당 계산됩니다.
- 즉각적인 취소: 취소된 키는 포털에서 또는 차단된 계정의 API 응답에서 즉시 작동을 멈춥니다.
POST /v1/convert
단일 상태 비저장 호출로 업로드와 변환을 수행합니다. 성공한 호출은 최대 1 크레딧을 소비하며 실패, 유효하지 않은 또는 속도 제한에 걸린 호출은 비용이 발생하지 않습니다.
요청 (multipart/form-data)
| 필드 | 유형 | 기본값 | 설명 |
|---|---|---|---|
file |
file | — | 변환할 이미지. PNG, JPEG, BMP 또는 WebP · 최대 20 MB · 최대 50 Mpx · 최소 64×64 px. |
colormode |
string | color |
<code>color</code>는 VTracer 엔진을 사용하고, <code>binary</code>는 Potrace(흑백)를 사용합니다. |
mode |
string | spline |
컬러(VTracer) 전용 — 이진 모드에서는 무시됩니다. spline | polygon | none |
hierarchical |
string | stacked |
컬러(VTracer) 전용 — 이진 모드에서는 무시됩니다. stacked | cutout |
filter_speckle |
int | 4 |
컬러(VTracer) 전용 — 이진 모드에서는 무시됩니다. 0–16 — 작은 노이즈 덩어리를 제거합니다. |
color_precision |
int | 6 |
컬러(VTracer) 전용 — 이진 모드에서는 무시됩니다. 1–8 — 색상 채널당 유효 비트 수. |
layer_difference |
int | 16 |
컬러(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 |
이진(Potrace) 전용 — 컬러 모드에서는 무시됩니다. 어두운 영역 대신 밝은 영역을 트레이싱합니다. |
turdsize |
int | 2 |
이진(Potrace) 전용 — 컬러 모드에서는 무시됩니다. 0–20 — 이 크기까지의 노이즈를 제거합니다. |
alphamax |
float | 1.0 |
이진(Potrace) 전용 — 컬러 모드에서는 무시됩니다. 0–1.334 — 코너 스무딩 임계값. |
opttolerance |
float | 0.2 |
이진(Potrace) 전용 — 컬러 모드에서는 무시됩니다. 0–10 — 곡선 최적화 허용 오차. |
"colormode"에 따라 선택되는 두 가지 엔진
API는 무료 온라인 변환기 및 데스크톱 앱과 완전히 동일한 엔진을 실행합니다:
binary — Potrace
라인 아트, 스캔, 스케치 및 로고의 흑백 트레이싱. 이미지의 어두운 부분(그레이스케일 < 50%)이 흰색 배경 위에 트레이싱됩니다. turdsize(노이즈 제거), alphamax(코너 스무딩) 및 opttolerance(경로 최적화)로 출력을 미세 조정하세요.
color — VTracer
일러스트레이션, 만화 및 사진을 위한 계층형 컬러 벡터화. filter_speckle, color_precision, layer_difference로 디테일 수준을, mode(스플라인, 다각형, 없음)로 곡선 맞춤을 제어하세요.
이미지는 웹사이트와 정확히 동일하게 전처리됩니다. 변환 전에 가장 긴 면이 1500px로 크기 조정되며, API는 감지된 이미지 유형(line_art, logo, photo 또는 illustration)을 X-Detected-Type 헤더로 반환합니다.
응답
성공 시: image/svg+xml과 함께 200 OK — 본문은 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 | 파일 크기가 20MB를 초과합니다. |
| 422 | invalid_image / image_too_small / invalid_params | 유효하지 않은 이미지, 너무 작은 이미지 또는 유효하지 않은 매개변수 값입니다. |
| 429 | rate_limited | 키당 속도 제한을 초과했습니다(아래 참조). Retry-After 헤더가 포함됩니다. |
| 500 | internal_error | 서버 측에서 변환에 실패했습니다 — 크레딧이 청구되지 않습니다. |
속도 제한
제한은 IP가 아닌 API 키당 적용되므로, 공유 사무실이나 CI 러너는 다른 사람의 트래픽으로 인해 불이익을 받지 않습니다.
| 제한 | 값 |
|---|---|
| 분당 요청, 키당 | 60 |
| 일당 요청, 키당 | 2 000 |
| 동시 변환, 키당 | 2 (추가 호출은 대기 후 429 반환) |
| 최대 파일 크기 / 해상도 | 20 MB / 50 Mpx |
가격
모든 신규 계정은 신용카드 없이 매월 10회의 무료 변환을 받습니다. 더 필요하신가요? 선불 이미지를 대량 할인과 함께 50개 단위로 원하는 만큼 구매하세요. 만료되지 않으며 월별 무료 할당량과 함께 중첩됩니다 (무료 변환이 먼저 소진됩니다).
선불 이미지
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회 (크레딧은 만료되지 않음)
- 만료 없음, 무료 티어와 중첩됨
- 수량 무관: 500개부터 이미지당 0.040€, 최저 0.010€까지
자동 크레딧 충전: 잔액은 결제 웹훅을 통해 결제 후 몇 초 내에 업데이트됩니다. 환불 시 구매한 크레딧이 차감되며, 현재 잔액까지만 차감됩니다. Lemon Squeezy를 통한 안전한 결제(VAT 자동 처리).
코드 예시
복사하여 붙여넣고 조정하세요. 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");
자주 묻는 질문
1회 변환의 기준은 무엇인가요?
SVG를 반환하는 하나의 성공적인 POST /v1/convert 호출입니다. 실패한 호출(잘못된 이미지, 잘못된 매개변수, 속도 제한, 서버 오류) 및 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 키를 분실하면 어떻게 되나요?
키는 해시되어 저장되므로 복구할 수 없습니다. 포털에서 분실한 키를 취소하고 새 키를 생성하세요 — 즉시 적용됩니다.
어떤 이미지 형식이 지원되나요?
최대 20MB 및 50메가픽셀, 최소 64×64 픽셀의 PNG, JPEG, BMP 및 WebP. 가장 긴 면이 1500px보다 큰 이미지는 변환 전에 무료 웹사이트와 정확히 동일하게 크기가 조정됩니다.
버전 선택
동일한 강력한 엔진 - 워크플로에 맞는 형식을 선택하세요.
온라인 도구
무료
브라우저에서 직접 이미지를 변환하세요. 설치 불필요, 계정 불필요.
도구 열기데스크톱 앱
무료 및 오픈 소스
내 컴퓨터에 설치되는 완벽한 변환기, Windows 및 Linux용.
무료 다운로드데스크톱 앱 Pro
39€ 일회성 결제
대규모 작업을 위한 핫 폴더, 일괄 변환 및 CLI 지원.
Pro 구매하기API
무료 티어 + 크레딧 팩
하나의 REST 호출: 이미지를 보내고 깔끔한 SVG를 받으세요. 월 10회 무료.
API 키 발급받기이미 계정이 있으신가요? 고객 포털에 로그인하기 →
대규모로 벡터화할 준비가 되셨나요?
2분 이내에 계정을 만들고, 키를 받아 첫 번째 호출을 실행하세요.
무료 API 키 발급받기