π Free Public API Service - A collection of utility APIs for developers, providing gender detection, sentiment analysis, skill normalization, datetime parsing, and more.
Live Website | Documentation | Report Issues
- π Gender Detection - Predict gender from first names
- π Sentiment Analysis - Analyze text sentiment (positive/negative/neutral)
- π οΈ Skill Normalization - Clean and standardize technology/skill names
- π DateTime Parser - Parse and normalize various datetime formats
- π€ Profile Generator - Generate fake user profile data
- π§ Neural Network Playground - Interactive visualization of neural networks
- β‘ Rate Limited - 5000 requests/day, 500 requests/hour per endpoint
- π Secure - HTTPS, security headers, input validation
- π Performance - Response compression, optimized for speed
- π¨ Interactive Demos - UI demo pages for each API
GET /api/v1/gender?name=Emily
Response:
{
"name": "Emily",
"gender": "female",
"time": 0.001
}GET /api/v1/senti?text=I love this!
Response:
{
"probability": {
"neg": 0.123,
"neutral": 0.234,
"pos": 0.643
},
"label": "pos"
}GET /api/v1/clean_skill?skill=JavaScript
Response:
{
"raw": "JavaScript",
"cleaned": "js",
"time": 0.002
}GET /api/v1/clean_datetime?datetime=January 2020
Response:
{
"raw": "January 2020",
"cleaned": "2020-01-01",
"time": 0.003
}GET /api/v1/profile_faker
Response:
{
"name": "John Doe",
"email": "[email protected]",
"address": "123 Main St",
...
}GET /health
Response:
{
"status": "healthy",
"service": "api.duyet.net",
"version": "2.0.0"
}# Pull and run
docker pull duyetdev/api-duyet
docker run -p 8080:8080 duyetdev/api-duyet
# Or build locally
docker build -t api-duyet .
docker run -p 8080:8080 api-duyetVisit http://localhost:8080
Prerequisites:
- Python 3.12+
- pip
Setup:
# Clone the repository
git clone https://github.com/duyetdev/api.duyet.net
cd api.duyet.net
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the server
export FLASK_DEBUG=true
python main.pyVisit http://localhost:8080
pip install -r requirements-dev.txt
pre-commit install# Format code
black .
isort .
# Lint
flake8
mypy .
# Security scan
bandit -r . -c pyproject.toml
# Run all pre-commit hooks
pre-commit run --all-files# Run all tests
pytest
# Run with coverage
pytest --cov
# Run specific test file
pytest tests/test_api_gender.py
# Run with verbose output
pytest -vapi.duyet.net/
βββ api/ # API implementation modules
β βββ gender.py # Gender detection logic
β βββ clean_skill.py # Skill normalization
β βββ clean_datetime.py # DateTime parsing
β βββ profile_faker.py # Fake profile generation
β βββ utils.py # Utility functions
βββ templates/ # HTML templates
β βββ index.html # Main documentation page
β βββ gender.html # Gender API demo
β βββ senti.html # Sentiment API demo
β βββ nn/ # Neural network playground
βββ static/ # Static assets (CSS, JS)
βββ tests/ # Test suite
β βββ conftest.py
β βββ test_api_gender.py
β βββ test_api_clean_skill.py
β βββ test_api_all.py
βββ main.py # Flask application entry point
βββ requirements.txt # Production dependencies
βββ requirements-dev.txt # Development dependencies
βββ app.yaml # Google App Engine configuration
βββ Dockerfile # Docker configuration
βββ pyproject.toml # Tool configurations
βββ .pre-commit-config.yaml # Pre-commit hooks
# Deploy to App Engine
gcloud app deploy
# View logs
gcloud app logs tail -s default
# Open in browser
gcloud app browse# Build image
docker build -t api-duyet:latest .
# Run container
docker run -d -p 8080:8080 --name api-duyet api-duyet:latest
# Push to registry
docker tag api-duyet:latest gcr.io/your-project/api-duyet:latest
docker push gcr.io/your-project/api-duyet:latestWe welcome contributions! Please see CONTRIBUTING.md for details and CLAUDE.md for project philosophy and guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
pytest) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Have an idea for a new API endpoint? Create an issue with your suggestion!
- Rate Limits: 5000 requests/day, 500 requests/hour per endpoint
- Uptime: 99.9%+
- Response Time: < 100ms average
- Free Forever: No API keys required
- All external API calls use HTTPS
- Security headers (HSTS, CSP, X-Frame-Options, etc.)
- Input validation on all endpoints
- Regular security scanning with Bandit
- Rate limiting to prevent abuse
- Backend: Flask 3.1.2, Python 3.12
- Deployment: Google App Engine
- Web Server: Gunicorn
- Testing: Pytest
- Code Quality: Black, Flake8, MyPy, Bandit
- Frontend: TypeScript, D3.js, Material Design Lite
- CI/CD: GitHub Actions
- π Major Update: Migrated from Python 2.7 to Python 3.12
- π Security improvements (HTTPS, headers, input validation)
- β‘ Performance optimization (compression, caching)
- π§ͺ Added comprehensive test suite (pytest)
- π Improved documentation and API responses
- π³ Docker support for local development
- π§ Modern development tooling (Black, MyPy, pre-commit)
- π€ CI/CD pipeline with GitHub Actions
- Initial release with basic API endpoints
This project follows a clear set of principles and guidelines documented in CLAUDE.md.
Core Values:
- Free & Accessible - No API keys, generous rate limits
- Developer-First - Helpful errors, clear docs, fast responses
- Production-Grade - Secure, tested, modern practices
Key Principles:
- Keep it simple, but not simpler
- Every error is an opportunity to teach
- Security is not optional
- Clarity over cleverness
For detailed architecture principles, code style guidelines, security best practices, and lessons learned from past bugs, see CLAUDE.md.
This project is licensed under the MIT License - see the LICENSE file for details.
Van-Duyet Le (@duyetdev)
If you find this project useful, please give it a β star on GitHub!
- Neural Network Playground based on TensorFlow Playground
- Thanks to all contributors who have helped improve this project
- Built with β€οΈ for the developer community
Made with β€οΈ by duyet.net
