api_looter is an open-source developer tool that provides a curated list of free APIs. Easily search, explore, and test APIs right from your browser! π οΈπ
- π Searchable API Directory: Find APIs fast with instant search.
- π Detailed API View: See descriptions, endpoints, and required parameters.
- π§ͺ Live API Testing: Fill out forms and make real API callsβsee results instantly.
- π‘ User-Friendly Interface: Clean, responsive design for productivity.
- π Open Source: MIT licensed and ready for contributions!
Home page with searchable API directory
Detailed API view and live testing
-
Clone the repository:
git clone https://github.com/Computer-Anything/api_looter.git
-
Navigate to the project directory:
cd api_looter
-
Install dependencies:
pip install -r requirements.txt
-
Set up the database:
python -m flask db init python -m flask db migrate python -m flask db upgrade
-
Seed the database with sample data:
python -m app.seed
-
Run the application:
flask run
-
Open your browser: Go to http://127.0.0.1:5000 to start adding and testing some API's api_looter!
If you prefer to run the application using Docker, you can use the provided docker-compose.yml
file.
-
Build and run the Docker containers:
docker-compose up --build
-
Access the application: Open your browser and go to http://localhost:5000.
-
Stop the containers: To stop the containers, press
Ctrl + C
in the terminal where you ran thedocker-compose
command. -
Remove the containers: If you want to remove the containers and free up resources, run:
docker-compose down
-
Access the database: You can access the PostgreSQL database using a database client like pgAdmin or DBeaver. The connection details are as follows:
- Host:
db
- Port:
5432
- Database:
api_looter
- User:
postgres
- Password:
password
- Host:
To add a new API, simply add an APIModel
entry to the apis
list in app/seed.py
.
No code changes are needed for most APIs!
Example:
APIModel(
name="My Cool API",
description="Does something awesome.",
endpoint="https://api.example.com/endpoint",
parameters=[
{"name": "param1", "label": "Parameter 1", "type": "text", "required": True}
]
),
Advanced:
If your API returns data in a very unique way and you want to customize how the response is displayed, you can add a helper function in app/api_helpers.py
.
This is optional and only needed for special cases!
For most APIs, just editing seed.py
is all you need.
Contributions, issues, and feature requests are welcome! Feel free to open an issue or submit a pull request.
This project uses ruff for linting. To check your code:
pip install ruff
ruff .
You can adjust which warnings are ignored in pyproject.toml
.
- Flask: Web framework for Python.
- PSQL: Database for storing API data.
- HTML/CSS: For the frontend.
- JavaScript: For dynamic API testing.
Licensed under the MIT License. Happy hacking! π»β¨