Turn a Website Into an API: The Reverse API Engineer Setup
Set up the free GitHub tool that watches a site's own network calls and writes you a working API client for them.
Back to all free guidesIn the reel I showed Reverse API Engineer, the free GitHub repo that turns websites into APIs you can call. Here's the setup, the modes and the one prompt to start with. You don't need to open DevTools or copy a single cURL command, which is the whole point of it.
What it does, in a minute
- You give it a website and a goal. The README's own example is "fetch all apple jobs from their careers page".
- A browser opens the site. You click around yourself, or an AI agent does it for you.
- It records the site's network calls. Everything the page sends to its back end gets saved to a HAR file (a log of every request).
- A model reads that traffic and writes the client. You get a working API client in Python, JavaScript, TypeScript, Go, Java, C#, PHP, Ruby, C or PowerShell.
- You get files you can use straight away. For the Apple example it lands in
./scripts/apple_jobs_api/withapi_client.py, aREADME.mdandexample_usage.py. - It's free and open source. MIT licence, over 2,800 stars on GitHub.
Before you start
- Python 3.11 or newer. Type
python3 --versionin your terminal to check. - Linux, an Apple Silicon Mac or 64-bit Windows. Intel Macs and 32-bit Windows aren't supported any more.
- A model to write the client. Claude is the default, and agent mode needs an API key for it. The free route is OpenCode, further down.
Install it
uv tool install reverse-api-engineerNo uv? pip install reverse-api-engineer works too.
Want manual mode, where you drive the browser yourself? It needs one extra package and a browser:
uv tool install "reverse-api-engineer[manual]"
playwright install chromiumYour first run
Type reverse-api-engineer, then tell it what you want in plain English. Swap in the site and the data you're after:
fetch all apple jobs from their careers pageThe browser opens. Click around the way you normally would, close it when you're done, and the client gets written into ./scripts/.
The four modes
Press Shift+Tab to switch between them:
- Manual. You drive the browser, and the AI writes the client from the traffic it captured.
- Agent. An AI agent drives the browser for you, so you don't have to click anything.
- Engineer. It rebuilds a client from a capture you've already made, without opening the site again. It needs a saved HAR file, so it works after manual,
autoandagent-browserruns, not the default Chrome one. - Collector. It skips the client and hands you the data itself as JSON or CSV.
Agent mode drives your own Chrome by default, so you stay logged in to the sites you use. That needs Node.js 20.19 or newer, and Chrome 146 or newer with auto-connect turned on at chrome://inspect/#remote-debugging. The auto provider needs no Chrome setup at all.
Run it on a free model
Claude does the writing by default. To switch, type /settings in the tool and pick the opencode SDK. Fresh OpenCode setups default to its free big-pickle model. You can also pick Ollama there for a model running on your own machine.
Use it from your coding agent
This one command teaches Claude Code, Codex, Cursor or OpenCode how to drive the tool:
npx skills add kalil0321/reverse-api-engineerThen just ask your agent for what you need, like "get me a typed client for the job search on this careers page".
Where it won't work
- Sites with heavy bot detection can block the capture or need you to step in by hand. The README says so itself.
- Read a site's terms before you pull data off it. LinkedIn and Instagram both ban automated scraping, so keep it away from your own accounts there.
The repo has the full README, and it's worth a skim before your first run: github.com/kalil0321/reverse-api-engineer.