製品
HTTP API
ベース URL は https://promptflowengine.com/api/v1。入力も出力も JSON です。認証はなく、何も保存しません。プロンプトのテキストはログに記録されません。すべてのレスポンスに x-request-id ヘッダーが付きます。
連携は初めてですか? PromptFlowEngine を接続するでは、拡張機能、MCP、この API を比較し、テスト済みの TypeScript クライアントとトラブルシューティングも紹介しています。
エンドポイント
| メソッド | パス | ボディ | 戻り値 |
|---|---|---|---|
| GET | /health | — | ステータス、エンジンと API のバージョン |
| GET | /models | — | エンコーディングと参考価格を含むモデルカタログ |
| GET | /rules | — | ルールカタログ、評価軸、ペナルティ |
| POST | /analyze | prompt, model? | 検出結果、品質、トークン、セキュリティ、要件、意図 |
| POST | /validate | prompt | valid(重大な検出結果なし)、検出結果 |
| POST | /optimize | prompt, model?, mode?, goal?, tokenBudget? | 選ばれた候補、検証結果付きの全候補、変更内容、差分、増減、提案 |
| POST | /restructure | prompt, model?, scaffold? | セクション構成のプロンプト、各行を prompt または engine とラベル付けしたセクション、件数、前後の分析 |
| POST | /compare | a, b, model? | 差分、トークン・コスト・品質の増減、解消・発生した検出結果 |
| POST | /tokens | prompt, model? | トークン数、方法、セクション別の件数、推定コスト |
| POST | /scan | prompt | インジェクションのリスクとシグネチャ、機密データの件数と位置、区切られていない変数 |
| POST | /sanitize | text | 機密性の高い値をプレースホルダーに置き換えたテキスト |
mode:conservative | balanced | structured。goal:tokens | quality | balanced。model:/models の任意の ID(デフォルトは gpt-4.1)。scaffold:真偽値、デフォルトは true。再構成を参照してください。
認証
ありません。API はキー、トークン、Cookie を受け付けず、送られてきても無視します。保護すべきユーザーデータを保持せず、すべてのリクエストが自身のボディだけから計算されて忘れられるため、ブラウザ、スクリプト、Chrome 拡張機能から安全に呼び出せます。不正利用は後述のレート制限で抑えます。
例
curl -s https://promptflowengine.com/api/v1/optimize \
-H 'content-type: application/json' \
-d '{"prompt":"Please summarize the notes. Please summarize the notes.","mode":"balanced"}' \
| jq '{selected: .selected.text, tokenDelta, changes: [.changes[].title]}'"goal":"tokens" を指定すると、エンジンは代わりに Please summarize the notes. を残します。文頭の Summarize は 2 トークンかかるため、その候補のほうが 1 トークン安くなります。
{
"selected": "Summarize the notes.",
"tokenDelta": -4,
"changes": ["Removed repeated sentences", "Removed filler and politeness phrases"]
}再構成の例
curl -s https://promptflowengine.com/api/v1/restructure \
-H 'content-type: application/json' \
-d '{"prompt":"fix login issue and make google login work and dont break anything"}' \
| jq '{intent, topics, counts, sections: [.sections[].heading]}'{
"intent": "debugging",
"topics": ["authentication"],
"counts": { "prompt": 4, "engine": 20, "codebase": 0 },
"sections": ["Role", "Objective", "Requirements", "Constraints", "Edge cases", "Testing", "Acceptance criteria", "Expected output"]
}プロンプト全文は text に入っています。
制限
- リクエストボディは最大 256 KB、各テキストフィールドは最大 100,000 文字。
- クライアント IP ごとに毎分 60 件の POST リクエスト。超えると
retry-after: 60付きの429が返ります。 - CORS は認証情報なしで開放(
*)されているため、ブラウザから直接 API を呼び出せます。
エラー
{ "error": { "type": "invalid_request", "message": "\"prompt\" is required.", "requestId": "…" } }| ステータス | type |
|---|---|
| 400 | invalid_request:フィールドの欠落または型の誤り、不正な JSON、誤った content type |
| 404 | not_found:不明なエンドポイントまたは API バージョン |
| 405 | method_not_allowed |
| 413 | payload_too_large |
| 429 | rate_limited |
| 500 | internal_error(内部の詳細は公開されません) |
セキュリティ
- すべてのフィールドの型を検査します。不明なモデル、モード、目標は推測せずに拒否します。
- レスポンスは
cache-control: no-storeと、すべてを拒否する Content Security Policy 付きで返るため、ページとして表示されることはありません。 - ログに記録するのはルート、ステータス、所要時間、サイズ区分です。プロンプトのテキストは記録しません。
/scanと/analyzeは機密データの場所を報告しますが、値は報告しません。通信中の秘匿性をこれに頼らないでください。先に CLI や Chrome 拡張機能でローカルで伏せ字にしてください。- プロンプトはテキストとして分析されるだけで、実行もモデルへの送信もされないため、入力内のプロンプトインジェクションが API の挙動を変えることはありません。
サポート
ご質問、上限の引き上げ、API の問題:support@promptflowengine.com。リクエストのルートとエラーの type を添えてください。API キーや、秘密情報を含むプロンプトのテキストは決して送らないでください。