{"openapi":"3.1.0","info":{"title":"Flight Tracking API","version":"1.0.0","description":"Real-time aircraft positions from live ADS-B data (OpenSky Network). Query all aircraft inside a geographic bounding box or track a single aircraft by its ICAO24 transponder address — returns position, barometric & geometric altitude, ground speed, heading, vertical rate, squawk and country of registration. Ideal for live maps, flight dashboards and proximity alerts.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/flights-api","description":"oanor gateway"}],"tags":[{"name":"Live"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/aircraft":{"get":{"operationId":"get_v1_aircraft","tags":["Live"],"summary":"Current state of one aircraft by ICAO24","description":"","parameters":[{"name":"icao24","in":"query","required":true,"description":"6-character hex transponder address, e.g. 3c6444","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/states":{"get":{"operationId":"get_v1_states","tags":["Live"],"summary":"Live aircraft inside a bounding box","description":"","parameters":[{"name":"lamin","in":"query","required":true,"description":"Lower-bound latitude (-90..90)","schema":{"type":"string"},"example":"47"},{"name":"lomin","in":"query","required":true,"description":"Lower-bound longitude (-180..180)","schema":{"type":"string"},"example":"5"},{"name":"lamax","in":"query","required":true,"description":"Upper-bound latitude (-90..90)","schema":{"type":"string"},"example":"55"},{"name":"lomax","in":"query","required":true,"description":"Upper-bound longitude (-180..180)","schema":{"type":"string"},"example":"15"},{"name":"on_ground","in":"query","required":false,"description":"Filter by on-ground state (true/false)","schema":{"type":"string"},"example":"false"},{"name":"country","in":"query","required":false,"description":"Filter by country of registration (substring)","schema":{"type":"string"},"example":"Germany"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"bbox":{"lamax":55,"lamin":47,"lomax":15,"lomin":5},"time":1780182639,"count":7,"aircraft":[{"spi":false,"icao24":"3e557d","squawk":"1000","callsign":"FSE1D","latitude":47.9428,"longitude":11.9568,"on_ground":false,"velocity_ms":194.85,"last_contact":1780182639,"velocity_kmh":701.46,"time_position":1780182639,"geo_altitude_m":12496.8,"origin_country":"Germany","true_track_deg":257.65,"velocity_knots":378.76,"baro_altitude_m":12192,"position_source":"ADS-B","vertical_rate_ms":0},{"spi":false,"icao24":"3cbdeb","squawk":"1000","callsign":"BFD65H","latitude":49.3405,"longitude":6.6647,"on_ground":false,"velocity_ms":212.92,"last_contact":1780182639,"velocity_kmh":766.51,"time_position":1780182639,"geo_altitude_m":12710.16,"origin_country":"Germany","true_track_deg":285.41,"velocity_knots":413.88,"baro_altitude_m":12359.64,"position_source":"ADS-B","vertical_rate_ms":-10.08},{"spi":false,"icao24":"3cce70","squawk":"2132","callsign":"FCK1EL","latitude":48.386,"longitude":12.1909,"on_ground":false,"velocity_ms":83.42,"last_contact":1780182639,"velocity_kmh":300.31,"time_position":1780182639,"geo_altitude_m":1203.96,"origin_country":"Germany","true_track_deg":177.53,"velocity_knots":162.16,"baro_altitude_m":1089.66,"position_source":"ADS-B","vertical_rate_ms":0},{"spi":false,"icao24":"3c5433","squawk":"5741","callsign":"BCS4KN","latitude":47.0515,"longitude":5.8693,"on_ground":false,"velocity_ms":225.69,"last_contact":1780182639,"velocity_kmh":812.48,"time_position":1780182639,"geo_altitude_m":11399.52,"origin_country":"Germany","true_track_deg":321.01,"velocity_knots":438.71,"baro_altitude_m":10972.8,"position_source":"ADS-B","vertical_rate_ms":0},{"spi":false,"icao24":"3c542e","squawk":"2265","callsign":"BCS2RA","latitude":49.3538,"longitude":5.1289,"on_ground":false,"velocity_ms":243.06,"last_contact":1780182639,"velocity_kmh":875.02,"time_position":1780182639,"geo_altitude_m":11635.74,"origin_country":"Germany","true_track_deg":72.26,"velocity_knots":472.47,"baro_altitude_m":11262.36,"position_source":"ADS-B","vertical_rate_ms":-0.33},{"spi":false,"icao24":"3c7425","squawk":"1000","callsign":"TUI9MD","latitude":49.3605,"longitude":8.5934,"on_ground":false,"velocity_ms":224.02,"last_contact":1780182639,"velocity_kmh":806.47,"time_position":1780182639,"geo_altitude_m":11338.56,"origin_country":"Germany","true_track_deg":15.31,"velocity_knots":435.46,"baro_altitude_m":10972.8,"position_source":"ADS-B","vertical_rate_ms":0},{"spi":false,"icao24":"3e0a3e","squawk":"0037","callsign":"BPO461","latitude":51.4822,"longitude":11.9739,"on_ground":false,"velocity_ms":55.28,"last_contact":1780182639,"velocity_kmh":199.01,"time_position":1780182638,"geo_altitude_m":800.1,"origin_country":"Germany","true_track_deg":38.58,"velocity_knots":107.46,"baro_altitude_m":708.66,"position_source":"ADS-B","vertical_rate_ms":0.33}]},"meta":{"timestamp":"2026-05-30T23:10:49.022Z","request_id":"12dbfbaa-7c27-4773-a253-8c953338f619"},"status":"ok","message":"Live aircraft retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Field reference & data source","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"fields":{"icao24":"Unique 24-bit transponder address (hex)","squawk":"Transponder code","callsign":"Flight callsign (8 chars)","latitude":"WGS-84 latitude (deg)","longitude":"WGS-84 longitude (deg)","on_ground":"Aircraft is on the ground","velocity_ms":"Ground speed (m/s)","velocity_kmh":"Ground speed (km/h)","geo_altitude_m":"Geometric altitude (m)","origin_country":"Country of registration","true_track_deg":"Heading clockwise from north (deg)","velocity_knots":"Ground speed (knots)","baro_altitude_m":"Barometric altitude (m)","position_source":"ADS-B | ASTERIX | MLAT | FLARM","vertical_rate_ms":"Climb (+) / descent (−) rate (m/s)"},"source":"OpenSky Network","endpoints":{"/v1/states":"Live aircraft in a bounding box (lamin, lomin, lamax, lomax; each side ≤ 30°). Optional on_ground, country filter.","/v1/aircraft":"Current state of one aircraft by icao24 (6-hex transponder address)."},"description":"Live ADS-B aircraft state vectors"},"meta":{"timestamp":"2026-05-30T23:10:49.095Z","request_id":"79e5c54a-40d9-48b3-aeb0-8e71d87e47d8"},"status":"ok","message":"Meta retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":5000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1500,"monthly_call_quota":50000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":4900,"monthly_call_quota":500000,"rps_limit":20,"hard_limit":true},{"slug":"enterprise","name":"Enterprise","price_cents_month":19900,"monthly_call_quota":5000000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/flights-api"}