クイックスタート
3つのステップで、ターミナル、スクリプト、またはアプリから画像をSVGに変換できます。
1 · アカウントを作成する
メールアドレスとパスワード(10文字以上)でクライアントポータルに登録します。クレジットカードは不要です。
2 · APIキーを作成する
ポータルでキーを作成します。これは1度だけ表示されるので、安全に保管してください。キーは 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).
認証
すべてのリクエストは、AuthorizationヘッダーにあるBearerトークンで認証されます:
Authorization: Bearer ptp_live_0123abc…
- キーは機密情報です: サーバー側でハッシュ化されて保存され、作成時に1度だけ表示されます。キーを紛失した場合は、無効化して新しいものを作成してください。
- 1つのアカウントで複数のキー: プロジェクトを分けるために、最大5つのアクティブなキーを作成できます。毎月の無料枠は、キーごとではなくアカウントごとにカウントされます。
- 即時無効化: 無効化されたキーは、ポータルから、またはアカウントがBANされた場合の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"で選べる2つのエンジン
APIは、無料のオンラインコンバーターやデスクトップアプリと全く同じエンジンを実行します:
binary — Potrace
線画、スキャン画像、スケッチ、ロゴの白黒トレース。画像の暗い部分 (グレースケール < 50%) が白い背景上にトレースされます。turdsize (ノイズ除去)、alphamax (角の滑らかさ)、opttolerance (パスの最適化) で出力を微調整できます。
color — VTracer
イラスト、カートゥーン、写真向けのレイヤー状のカラーベクター化。filter_speckle、color_precision、layer_difference で詳細レベルを制御し、mode (spline, polygon, none) でカーブフィッティングを制御します。
画像はウェブサイトと全く同じように前処理されます: 変換前に長辺が1500 pxにリサイズされ、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 | アカウントがBANされている — すべてのキーが拒否されます。 |
| 403 | ip_blocked | 呼び出し元のIPがブロックリストに登録されている。 |
| 413 | file_too_large | ファイルが20 MBを超えている。 |
| 422 | invalid_image / image_too_small / invalid_params | 無効な画像、画像が小さすぎる、または無効なパラメータ値。 |
| 429 | rate_limited | キーごとのレート制限を超過した (下記参照)。Retry-Afterヘッダーが含まれます。 |
| 500 | internal_error | サーバー側で変換に失敗した — クレジットは請求されません。 |
レート制限
制限はIPごとではなくAPIキーごとに適用されるため、共有オフィスやCIランナーが他人のトラフィックのせいでペナルティを受けることはありません。
| 制限 | 値 |
|---|---|
| 1分あたりのリクエスト数、キーごと | 60 |
| 1日あたりのリクエスト数、キーごと | 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枚から1画像あたり€0.040、最大€0.010/画像まで割引
自動クレジット: 支払いのWebhookを介して、決済後数秒以内に残高が更新されます。払い戻しは購入したクレジットを差し引き、現在の残高が上限となります。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 の呼び出し1回です。失敗した呼び出し(無効な画像、間違ったパラメータ、レート制限、サーバーエラー)や GET /v1/me の呼び出しに対しては決して請求されません。
毎月の無料枠はどのようにカウントされますか?
アカウントごとにUTCカレンダー月でカウントされ、毎月1日の00:00 UTCにリセットされます。複数のAPIキーを作成しても無料枠は倍増しません。1つのアカウントのすべてのキーは、同じ10回の無料変換を共有します。
クレジットに有効期限はありますか?
いいえ。購入したクレジットは使用するまでアカウントに残ります。毎月10回の無料変換を使い切った後にのみ消費されます。
月にさらに変換回数を増やすにはどうすればよいですか?
クライアントポータルからプリペイド画像を購入してください — 50枚単位で任意の数量を指定できます。いくらで何枚の画像が得られるかは常に正確に表示されます: 50画像 €2.50、500画像 €20、2,500画像 €75、10,000画像 €200、50,000画像 €500。支払後数秒でクレジットがアカウントに自動的に追加されます — ライセンスキーや入力するものは何もありません。
APIキーを紛失した場合はどうなりますか?
キーはハッシュ化されて保存されるため、復元することはできません。ポータルで紛失したキーを無効化し、新しいキーを作成してください — すぐに反映されます。
どの画像フォーマットがサポートされていますか?
PNG、JPEG、BMP、およびWebPで、最大20 MB、50メガピクセル、最小64×64ピクセルです。長辺が1500ピクセルを超える画像は、無料のウェブサイトと全く同じように、変換前にサイズ変更されます。
バージョンを選択
同じ強力なエンジン - ワークフローに合った形式を選択してください。
オンラインツール
無料
ブラウザで直接画像を変換します。インストール不要、アカウント不要。
ツールを開くデスクトップアプリ
無料 & オープンソース
マシン上のフルコンバーター、Windows & Linux向け。
無料でダウンロードデスクトップアプリ Pro
€39 買い切り
重いワークロード向けのホットフォルダ、一括変換、およびCLI。
Proを入手API
無料枠 + クレジットパック
1つのREST呼び出し:画像を送信し、クリーンなSVGを受け取ります。月10回無料。
APIキーを取得すでにアカウントをお持ちですか? クライアントポータルにサインイン →
大規模にベクター化する準備はできましたか?
アカウントを作成し、キーを取得して、2分以内に最初の呼び出しを行いましょう。
無料のAPIキーを取得