curl コマンドを貼り付けて 「変換」を押すと、JSON オブジェクトに分解しますcURL を貼り付け

このツールでできること

ターミナル履歴、Stack Overflow の回答、ベンダーの API ドキュメントなどから cURL コマンドをコピーしてきて、自分のアプリや別のツールで扱える形に変換したいことはありませんか。この変換ツールは cURL コマンドから URL、メソッド、ヘッダー、認証情報、クエリパラメータ、ボディを取り出し、リクエスト全体を表す整理された JSON オブジェクトを出力します。

パーサーは 100% ブラウザ内で動作します — cURL コマンド、ヘッダー内の API キーやトークン、ボディのペイロードはどれもお使いのマシンから外に出ません。実務で使う cURL コマンドには、外に出したくない bearer トークンや Cookie、セッション ID が含まれていることが多いので、これは重要なポイントです。ここでの処理はすべて JavaScript で、他のブラウザ側ツールと同じ仕組みです。

行継続(\)、シングルクオートとダブルクオート、よく使われるすべてのフラグ(-X--request-H--header-d--data--data-raw--data-urlencode-u--user)、そして JSON ボディに対応しています — ボディが有効な JSON であれば、文字列ではなくネストしたオブジェクトとしてパースして出力します。

使い方

3 ステップです。Chrome DevTools、Postman のエクスポート、Stack Overflow など、どこから持ってきた cURL コマンドでも動きます。

1

cURL コマンドを貼り付ける

左側のエディタにコマンドを貼り付けます。複数行(\ による継続あり)でも問題ありません。Chrome DevTools の 「cURL としてコピー」からそのまま貼り付けても、ブラウザヘッダー用に追加された大量の -H フラグはきれいにパースされます。

稼働中のセッションからリクエストを取得している場合、コマンドには有効なトークン付きの Authorization ヘッダーが含まれている可能性が高いです。パーサーはローカルで動くのでトークンがネットワークに出ることはありませんが、JSON 出力を他の人と共有するならトークンはローテーションしておきましょう。

2

「変換」を押す

緑色の 「変換」ボタンをクリックします。パーサーがコマンドを読み取り、リクエストを分解した JSON オブジェクトを構築します — methodurlqueryParamsheadersauthbody(ペイロードが JSON ならパース済み)、bodyRaw(元の文字列)。

3

JSON を使う

出力をテストフィクスチャ、Postman へのインポート、OpenAPI のサンプル、リトライスクリプト、その他リクエストをデータとして保存しておきたい場所にコピーしてください。再ビルドもコマンドラインツールも不要です。

実際に時間を節約できる場面

DevTools の cURL を Postman リクエストに変換

Chrome の <strong>「cURL としてコピー」</strong>は巨大な 1 行を吐き出します。ここに貼り付けて構造化された JSON を取り出せば、フラグを 1 つずつ手で拾わなくても Postman、Insomnia、コードテンプレートでリクエストを組み立て直せます。

シェルスクリプトをコードに移行する

古いシェルスクリプトに、ヘッダーやボディがハードコーディングされた cURL 呼び出しが含まれているケース。それぞれを JSON に変換しておけば、Python、Go、TypeScript で同等の HTTP クライアント呼び出しを転記ミスなく再生成できます。

テストフィクスチャを作る

ブラウザから実際のリクエスト形状をキャプチャして JSON に変換し、結合テストやモックサーバーのフィクスチャとして配置できます。リクエストの形が本番とぴったり一致します。

API ドキュメントを書く

ベンダーから cURL の例を渡された場合。それを JSON に変換し、分解されたリクエストを社内ドキュメントや OpenAPI のサンプルに埋め込みます — 生の curl 文字列よりずっと読みやすくなります。

よくある質問

入力した cURL コマンドはどこかに送信されますか?

いいえ。パーサーはすべてブラウザ内で JavaScript として動きます。コマンドの内容 — URL、ヘッダー、認証トークン、ボディのペイロード — はサーバーに送信されません。DevTools の Network タブを開いた状態で「変換」を押せば、リクエストがゼロであることを確認できます。

Chrome の「cURL としてコピー」の出力に対応していますか?

はい。Chrome はブラウザヘッダーごとに -H フラグを並べ、バックスラッシュで行継続した長い 1 行を出力します。これらはすべて正しくパースされます。Firefox の「cURL としてコピー」や Safari の同等機能でも同じです。

--data-urlencode やフォームエンコードされたボディはどうなりますか?

対応しています。--data-urlencode key=value のペアはオブジェクトとして body にまとめられます。Content-Type: application/x-www-form-urlencoded のペイロードを 1 つの -d フラグで渡している場合は、ボディの文字列も URL デコードしてオブジェクト化するので、フォームのフィールドが見える形になります。

JSON ボディは正しく扱えますか?

はい。ボディのペイロードが有効な JSON(RFC 8259 の仕様に従うもの)としてパースできれば、出力の body キーにパース済みのオブジェクト/配列が入ります。元の生の文字列は必要なときのために bodyRaw に保持されます。

どのフラグを認識しますか?

よく使われるものに対応しています — -X--request(メソッド)、-H--header-d--data--data-raw--data-binary--data-urlencode-u--user(Basic 認証)、-b--cookie。認識できないフラグ(--insecure-v など)は options 配列にまとめられるので、何が落ちたかが分かります。

非常に長いコマンドでも使えますか?

はい — パーサーは数キロバイトのコマンドでも問題なく扱えます。すべてローカルで動くので、アップロードもネットワーク遅延もレート制限もありません。

関連ツール

HTTP リクエストや JSON を扱っているなら、これらのツールも一緒に使えます。