Tooling for adding APIs to the Gorilla LLM "API Zoo."
Point the backend at API documentation URLs and it scrapes each page, uses an
LLM to extract structured API details (name, call signature, arguments,
example code, etc.), and can open a GitHub pull request against the upstream
ShishirPatil/gorilla apizoo data
set on your behalf via GitHub OAuth.
- backend/ — Python service (Flask/WSGI) that extracts API details from documentation HTML. Includes gunicorn/nginx/systemd deployment notes in backend/README.txt.
- frontend/ — Next.js (TypeScript + Tailwind) web client.
Note: the frontend is an early scaffold; the backend holds the implemented logic.
- Backend: Python, Flask + Flask-Cors, LangChain / OpenAI for extraction, BeautifulSoup + html2text for HTML processing, served via gunicorn in deployment.
- Frontend: Next.js 14, TypeScript, and Tailwind CSS.
Requirements: Python 3.x.
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in backend/ with the variables the service reads (see
Environment variables below), then run it.
Development (Flask, with reload):
python addapi_server.py # serves on http://localhost:8080Production-style (gunicorn + WSGI entrypoint):
gunicorn --bind 0.0.0.0:8080 wsgi:appEither way, a quick health check is available at GET /hello. See
backend/README.txt for the gunicorn/nginx/systemd
deployment notes.
The backend reads the following from the environment (via .env):
| Variable | Used for |
|---|---|
OPENAI_API_KEY |
LLM-based extraction of API details from documentation. |
GITHUB_CLIENT_ID |
GitHub OAuth — exchanging codes and validating access tokens. |
GITHUB_CLIENT_SECRET |
GitHub OAuth — exchanging codes and validating access tokens. |
Do not commit your .env; it is already covered by backend/.gitignore.
cd frontend
npm install
npm run dev # serves on http://localhost:3000