Integuru v0: Reverse Engineering Internal APIs with an LLM Agent
The first AI agent that builds permissionless integrations through reverse engineering platforms' internal APIs.
At a glance
- What is it?
- Integuru v0 is a Python agent that turns browser network captures into runnable integration code for platforms without official APIs. It is early-stage, AGPL-3.0 licensed, and tied to OpenAI models.
- Who is it for?
- Adopt Integuru v0 if you need a quick prototype for a personal or internal automation against a site without an official API, you are comfortable with AGPL-3.0, and you accept sending your HAR data to OpenAI. Do not adopt it if you require stable production integrations, support for non-OpenAI models, or a maintained codebase; the repository is archived and points to a commercial successor.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 83 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Integuru v0 Actually Solves
Many platforms expose no public API, or the API that exists is too limited for a specific workflow. Integuru v0 targets that gap by generating Python code that calls the platform's internal, undocumented endpoints. The intended user is someone who can log into a web app in a browser, perform an action manually, and then wants that action automated. The README's example is downloading utility bills from a portal. Instead of inspecting network traffic by hand and writing requests code, you capture the traffic and let the agent figure out the calls. The project is explicit that this is the earliest public version, and the team has moved on to a newer product at integuru.com. That context matters: this repository is a snapshot, not an actively developed tool.
The Mechanism: From HAR to Dependency Graph to Code
The core idea is to treat a browser session as a source of truth. You run create_har.py, which spawns a browser and records all network requests into a HAR file. You also provide a cookie file and a prompt describing the action you performed. The agent then identifies which request in the HAR corresponds to the desired action, such as the URL that returns the utility bill. Next, it looks at that request's parameters and finds which ones are dynamic, like accountId or userId. It searches other requests in the HAR for those values, then links those requests as dependencies. This repeats until every dependency resolves to a request that only needs the authentication cookies. The result is a dependency graph. The agent then traverses the graph from leaf nodes up to the master node, converting each request into a runnable Python function. The README describes this as a five-step process, and it is the most concrete part of the project's design.
Setup and Commands: Poetry, Jupyter, and a Browser
Setup follows a standard Python project pattern. You need an OpenAI API key set as OPENAI_API_KEY. The README recommends a model at least as capable as o1-mini, with o1-preview as ideal. Install dependencies with poetry install, then open a poetry shell. The project registers a Jupyter kernel with poetry run ipython kernel install --user --name=integuru, so you can run the notebook main.ipynb. The first real step is poetry run python create_har.py, which opens a browser. You log in, complete any two-factor authentication, and perform the action you want to automate. The tool saves network_requests.har and cookies.json. Then you run poetry run integuru --prompt "download utility bills" --model gpt-4o. The CLI accepts --har-path, --cookie-path, --max_steps (default 20), and --input_variables. The --generate-code flag controls whether full integration code is produced. The README notes that gpt-4o is recommended for graph generation because it supports function calling, while code generation may switch to o1-preview if available.
Limitations and Failure Modes
The most obvious limitation is that the tool depends on a specific OpenAI model family. If your account lacks access to o1-class models, code generation may not work as intended. The README says input variables are only supported for graph generation, not for code generation, so you cannot yet parameterize the generated code with values like a selected year. Another limitation is the reliance on a HAR file from a single browser session. If the platform changes its frontend, the internal API endpoints may change, and the generated code will break. The tool does not handle authentication refresh beyond the captured cookies, and the README notes that you must complete 2FA before capturing cookies. For sites with short-lived session tokens, the generated integration will stop working quickly. Finally, the repository is archived, meaning no further fixes are coming to this version.
Privacy and Licensing: What You Send to OpenAI
The README includes a privacy policy section. It states that collected data is stored locally in network_requests.har and cookies.json. It also states that the tool uses cloud-based LLMs, specifically OpenAI's GPT-4o and o1-preview. The policy explicitly says the LLM is not trained or improved by usage. That is a meaningful assurance, but it does not change the fact that your HAR file, which contains URLs, parameters, and possibly sensitive data, is sent to OpenAI's servers. The license is AGPL-3.0. That has implications if you embed or modify the code in a service you offer to others; you would need to share your source. For internal use, the license is less restrictive. This is not legal advice, but you should check the AGPL terms if you plan to distribute any modifications.
Alternatives and Comparisons
The closest alternative is a manual approach: use browser developer tools to inspect network requests, copy them as cURL commands, and write a script with requests or httpx. That gives you full control and no dependency on an LLM, but it is time-consuming and requires you to understand the request graph yourself. Another alternative is an open-source RPA tool like Playwright or Selenium, which automates the browser UI directly. That approach is more robust to API changes because it interacts with the rendered page, but it is slower and more brittle when the UI changes. Integuru v0 sits in between: it automates the analysis of network traffic, but it still produces code that can break when the platform changes. The README does not mention any other tool, so this comparison is based on general knowledge.
Maintenance and Upgrade Path
The repository's last push was 2026-06-24, but the README clearly states this is the earliest public version and directs users to integuru.com for the current version. There are no recent releases listed. The CI workflow runs tests on Python 3.12 with poetry and pytest, but that only ensures the existing tests pass, not that the tool works against current platforms. The project is archived, so you should not expect bug fixes or updates. If you need a maintained version, you would have to look at the commercial product or fork the code yourself. The upgrade cost is effectively zero because there is no upgrade path within this repository; you either stay on this snapshot or move to a different product.
Editorial conclusion
Adopt Integuru v0 if you need a quick prototype for a personal or internal automation against a site without an official API, you are comfortable with AGPL-3.0, and you accept sending your HAR data to OpenAI. Do not adopt it if you require stable production integrations, support for non-OpenAI models, or a maintained codebase; the repository is archived and points to a commercial successor. Before using it, verify that your target platform's terms permit this kind of access and that your OpenAI account has access to gpt-4o and o1-class models, since the tool depends on both.
Community notes