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
Example API call to generate random dog photos
-
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 environment:
cp .env.development .env
-
Run the application:
python run.py
-
Open your browser: Go to http://localhost:8000 to start exploring and testing APIs!
That's it! No database setup needed - all API data is stored in app/data.py.
For production-like testing with Docker:
-
Set up environment:
cp .env.staging .env # Edit .env and fill in: SECRET_KEY, REDIS_PASSWORD, CLOUDFLARE_TUNNEL_TOKEN -
Build and run:
docker-compose -f docker-compose.staging.yml up --build
-
Access the application: Open your browser and go to http://localhost:5000
-
Set up environment:
cp .env.production .env # Edit .env and fill in production credentials -
Deploy:
docker-compose -f docker-compose.prod.yml up -d --build
See docs/setup/PRODUCTION.md for detailed deployment guide.
# Staging
docker-compose -f docker-compose.staging.yml down
# Production
docker-compose -f docker-compose.prod.yml downThis project uses environment-specific templates:
.env.development- Local development (copy to.env).env.staging- Staging deployment.env.production- Production deployment
Required variables:
SECRET_KEY- Flask secret keyREDIS_URL- Redis connection (memory://for dev,redis://...for production)REDIS_PASSWORD- Redis password (staging/production only)CLOUDFLARE_TUNNEL_TOKEN- Cloudflare tunnel token (staging/production only)FLASK_ENV- Environment name (development,staging, orproduction)
See .env.development for a complete example.
Want to contribute an API? It's super easy!
- Edit
app/data.py- Add your API to theAPISlist:
{
"id": 15, # Next available ID
"name": "Your API Name",
"description": "What this API does.",
"endpoint": "https://api.example.com/v1/endpoint",
"parameters": [], # Add parameters if needed
"why_use": "Why would a developer use this API?",
"how_use": "How do developers commonly use this API?",
"category": "Data", # Images, Fun, Data, or Cryptocurrency
"has_handler": False # Set to True only if you need custom response parsing
},- Validate:
python validate_apis.py- Test locally:
python run.py
# Visit http://localhost:8000 and test your API- Submit a PR!
The domain whitelist auto-updates - no manual configuration needed!
See CONTRIBUTING.md for detailed guide including custom handlers.
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! π»β¨