kalil0321/reverse-api-engineer
The agent that turns websites into APIs!
Reverse API Engineer – Webサイトをすぐに使えるAPIクライアントに変換
機能
- Webページを指定してやりたいことを伝えるだけです(例:Appleの求人情報をすべて取得する)。
- ブラウザが開き、手動で操作するか、AI駆動の「エージェント」がナビゲーションを行います。
- ページ読み込み中にすべてのネットワークリクエストをHAR (HTTP Archive) ファイルに記録します。
- 言語モデル(Claude、OpenCode、Ollama、Copilotなど)がそのトラフィックを読み取り、選択した言語(Python、JavaScript/TypeScript、Go、Java、C#、PHP、Ruby、またはC)で型安全なクライアントライブラリを作成します。
- 生成されたクライアントは、READMEとサンプルスクリプトと共にフォルダに保存され、すぐにコードへインポートできます。
重要性
- 「DevToolsを開く → cURLをコピー → リクエストを手動作成」という面倒なループを回避します。
- 文書化されていないJSONエンドポイントを公開しているサイトでも、適切なAPIのように扱うことができます。
- インタラクティブなキャプチャ(手動クリック)と、ログインやクリック、スクロールなどが可能なAIエージェントによる全自動キャプチャの両方をサポートしています。
インストール
# uv (推奨) または pip を使用
uv tool install reverse-api-engineer # または pip install reverse-api-engineer
- エージェントモード (デフォルト) はコアパッケージのみで動作します。
- 手動モード はオプションの
[manual]エクストラと Playwright Chromium のインストールが必要です:
uv tool install "reverse-api-engineer[manual]"
playwright install chromium
クイックスタート
reverse-api-engineer
> fetch all apple jobs from their careers page
# ブラウザウィンドウが開きます – ナビゲート、操作し、閉じる
# 生成されたコードが ./scripts/apple_jobs_api/ に保存されます
Shift+Tab でいつでもモードを切り替えられます。
モード
| モード | 仕組み |
|---|---|
manual |
ユーザーがブラウザを操作し、キャプチャ後にAIがクライアントを生成します。 |
agent |
AIエージェントがブラウザを自動操作します (Playwright MCP, Chrome-MCP, または Vercelの agent-browser)。 |
engineer |
保存済みのHARキャプチャから再生成を行います。 |
collector |
エージェントがWeb検索とフェッチを組み合わせて構造化データ (JSON/CSV) を抽出します。 |
設定
- 設定は
~/.reverse-api/config.jsonに保存され、CLI内の/settingsコマンドで編集可能です。 - LLMプロバイダー (
claude,opencode,cursor,copilot) とモデル(例:claude-sonnet-4-6)を選択できます。 - 出力言語を選択可能です (
python,javascript,typescript,go,java,csharp,php,ruby,c)。 - ローカルのOllamaやOpenCodeサーバーを自動起動したり、既存のサーバーに接続したりできます。
CLIの基本
/settings– モデル、SDK、エージェントプロバイダー、出力言語などを編集。/history– タイムスタンプ、トークン使用量、コストを含む過去の実行履歴を表示。/messages <run_id>– 実行時のモデルとの全会話を表示。/help– 全コマンドを表示。- 非インタラクティブ/スクリプト利用:
--jsonおよび--no-interactiveフラグを使用し、jqで処理しやすいJSON出力が可能。
出力
- 永続的な実行データ:
~/.reverse-api/runs/scripts/<run_id>/ - プロジェクト内のコピー:
./scripts/<descriptive_name>/ - コレクター結果:
./collected/<folder>/にitems.json,items.csv, README が含まれます。
注意点
- 生成されたコードは言語モデルによるものです。実行前に必ず確認してください。
- ボットを厳しくブロックするサイトでは、手動操作や追加の回避策が必要になる場合があります。
開発
git clone https://github.com/kalil0321/reverse-api-engineer.git
cd reverse-api-engineer
uv sync
uv run reverse-api-engineer
- ビルドスクリプト:
./scripts/clean_build.sh。 - Python 3.11+、選択したLLMのAPIキー、および(手動モードの場合)Playwright Chromiumが必要です。
ライセンス – MIT。
結論:Reverse API Engineerは、Webサイトのネットワークトラフィックをキャプチャし、大規模言語モデルに渡して、主要なプログラミング言語で利用可能な型安全なAPIクライアントを生成するPythonベースのCLIです。WebスクレイピングとAPI利用のギャップを埋め、最新のLLMを活用してリバースエンジニアリングのステップを自動化します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト