Built A Comprehensive Geo API With Countries, Airports & 140K+ Cities – Feedback Welcome!

*TL;DR**:* Built a comprehensive geographic API that combines countries, airports, and cities in one fast endpoint. Looking for feedback from fellow developers!

What I Built
After getting frustrated with having to integrate 3+ different APIs for basic geographic data in my e-commerce projects, I decided to build something better:

**🌍 Geo Data Master API** – One API for all your geographic needs:
– ✅ 249 countries with ISO alpha-2/alpha-3 codes
– ✅ Major airports worldwide with IATA codes & coordinates
– ✅ 140K+ cities from GeoNames with population data
– ✅ Multi-language support with official status
– ✅ Real-time autocomplete for cities and airports

Tech Stack
– Backend: FastAPI (Python) for performance
– Caching: Redis for sub-millisecond responses
– Database: SQLite with optimized queries
– Infrastructure: Docker + NGINX + SSL
– Data Sources: ISO standards + GeoNames

Why I Built This
Working on traveling projects, I constantly needed:
– Country dropdowns with proper ISO codes
– Airport data for shipping calculations
– City autocomplete for address forms
– Language detection for localization

Instead of juggling REST Countries API + some airport service + city data, now it’s one clean API.

Performance

  • Sub-millisecond response times (Redis caching)
  • 99.9% uptime with monitoring
  • Handles 10k+ requests/minute easily

What I’m Looking For

  1. Feedback on the API design and endpoints
  2. Use cases I might have missed
  3. Feature requests from the community
  4. Beta testers (generous free tier available)

I’ve made it available on RapidAPI – you can test all endpoints instantly without any setup. The free tier includes 500 requests/day which should be plenty for testing and small projects.

Try it out: https://rapidapi.com/omertabib3005/api/geodatamaster

Happy to answer any technical questions about the implementation!

submitted by /u/COVID-20S
[link] [comments]

Leave a Reply

Your email address will not be published. Required fields are marked *