API

PixelToPath API

1回のREST呼び出しでプログラムから画像をベクター化します。PNG、JPG、BMP、またはWebPファイルをアップロードして、本番環境ですぐに使えるクリーンなSVGを受け取ります。白黒の線画はPotrace、カラー画像はVTracerによってトレースされます。これらは無料のオンラインコンバーターと同じエンジンです。

毎月10回の無料変換 · クレジットカード不要

月10回の無料変換 • 1つのREST呼び出し • Potrace + VTracer エンジン • クレジットの有効期限なし

クイックスタート

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_specklecolor_precisionlayer_difference で詳細レベルを制御し、mode (spline, polygon, none) でカーブフィッティングを制御します。

画像はウェブサイトと全く同じように前処理されます: 変換前に長辺が1500 pxにリサイズされ、APIは検出された画像タイプ (line_artlogophoto または illustration) を X-Detected-Type ヘッダーで返します。

レスポンス

成功時: 200 OKimage/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_keyAPIキーがない、形式が正しくない、不明、または無効化されている。
402quota_exceeded毎月の無料枠を使い切っており、クレジットが残っていない。
403account_bannedアカウントがBANされている — すべてのキーが拒否されます。
403ip_blocked呼び出し元のIPがブロックリストに登録されている。
413file_too_largeファイルが20 MBを超えている。
422invalid_image / image_too_small / invalid_params無効な画像、画像が小さすぎる、または無効なパラメータ値。
429rate_limitedキーごとのレート制限を超過した (下記参照)。Retry-Afterヘッダーが含まれます。
500internal_errorサーバー側で変換に失敗した — クレジットは請求されません。

レート制限

制限はIPごとではなくAPIキーごとに適用されるため、共有オフィスやCIランナーが他人のトラフィックのせいでペナルティを受けることはありません。

制限
1分あたりのリクエスト数、キーごと60
1日あたりのリクエスト数、キーごと2 000
同時変換数、キーごと2 (超過した呼び出しは待機し、その後429)
最大ファイルサイズ / 解像度20 MB / 50 Mpx

料金

すべての新しいアカウントには、クレジットカード不要で毎月10回の無料変換が付与されます。もっと必要ですか?プリペイド画像を購入できます — 任意の数量(50枚単位)で、ボリュームディスカウントもあります。有効期限はなく、毎月の無料枠とスタックします(無料の変換が先に消費されます)。

無料

€0/月

  • 月10回の変換
  • 両方のエンジン (Potrace + VTracer)
  • 最大5つのAPIキー
アカウントを作成

プリペイド画像

€0.050/ 画像

ボリューム価格 — 購入する画像が多いほど、1枚あたりの価格は安くなります
画像数50–450500–2 4502 500–9 95010 000–49 95050 000+
€/image0.0500.0400.0300.0200.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キーを取得