Flight Tracker
Track flights in real-time and search flight schedules between airports.
Quick Commands
Live Flight Tracking
Flights over a region (bounding box)
# 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
curl -s "https://opensky-network.org/api/states/all?icao24=<aircraft-icao>" | jq .
Get live flight info
# 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:
# 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 (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
GET https://opensky-network.org/api/states/all
Optional parameters:
lamin,lomin,lamax,lomax: Bounding boxicao24: 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