Introduction
# Flight Tracker
Track flights in real-time and search flight schedules between airports.
## Quick Commands
### Live Flight Tracking
#### Flights over a region (bounding box) ```bash # Switzerland (lat_min, lat_max, lon_min, lon_max) curl -s "https://opensky-network.org/api/states/all?lamin=45.8&lomin=5.9&lamax=47.8&lomax=10.5" | \ jq -r '.states[] | "\(.[1]) - \(.[2]) | Alt: \(.[7])m | Speed: \(.[9])m/s | From: \(.[5])"' ```
### Track specific flight by callsign ```bash curl -s "https://opensky-network.org/api/states/all?icao24=<aircraft-icao>" | jq . ```
#### Get live flight info ```bash # Use helper script python3 scripts/track.py --region switzerland python3 scripts/track.py --callsign SWR123 python3 scripts/track.py --airport LSZH ```
### Flight Schedules
Search for scheduled flights between airports:
```bash # Basic usage (shows search links) python3 scripts/schedule.py HAM ZRH
# With specific date python3 scripts/schedule.py --from HAM --to ZRH --date 2026-01-15
# With API key (optional, for detailed results) export AVIATIONSTACK_API_KEY='your_key_here' python3 scripts/schedule.py HAM ZRH ```
**Without API key:** Shows helpful search links (Google Flights, FlightRadar24, airline websites)
**With API key:** Fetches live schedule data with departure/arrival times, terminals, gates, and status
Free API key available at [aviationstack.com](https://aviationstack.com) (100 requests/month)
## Regions
Pre-defined regions in the script:
- **switzerland**: Swiss airspace - **europe**: European airspace (rough bounds) - **zurich**: Area around Zurich - **geneva**: Area around Geneva
## API Endpoints
### All states ```bash GET https://opensky-network.org/api/states/all ```
Optional parameters: - `lamin`, `lomin`, `lamax`, `lomax`: Bounding box - `icao24`: Specific aircraft (hex code) - `time`: Unix timestamp (0 = now)
### Response Format
Each flight state contains: ``` [0] icao24 - Aircraft ICAO24 address (hex) [1] callsign - Flight callsign (e.g., "SWR123") [2] origin_country - Country name [5] origin - Origin airport (if available) [7] baro_altitude - Altitude in meters [9] velocity - Speed in m/s [10] heading - Direction in degrees [11] vertical_rate - Climb/descent rate in m/s ```
## Airport Codes
### ICAO (for live tracking) - **LSZH** - Zurich - **LSGG** - Geneva - **LSZB** - Bern - **LSZA** - Lugano - **LFSB** - Basel-Mulhouse (EuroAirport)
### IATA (for schedules) - **ZRH** - Zurich - **GVA** - Geneva - **BSL** - Basel - **BRN** - Bern - **LUG** - Lugano - **HAM** - Hamburg - **FRA** - Frankfurt - **MUC** - Munich - **BER** - Berlin - **LHR** - London Heathrow - **CDG** - Paris CDG - **AMS** - Amsterdam
## Notes
### Live Tracking (OpenSky Network) - Free API with rate limits (anonymous: 400/day) - Real-time data from ADS-B receivers worldwide - No API key required - Data updated every 10 seconds - Create account for higher limits and historical data
### Flight Schedules (AviationStack) - Optional API key for detailed schedule data - Free tier: 100 requests/month - Without API: provides search links to Google Flights, FlightRadar24, etc. - Supports date-specific queries