public aircraft & flightroute api
Built in Rust
for Docker,
using PostgreSQL
& Redis
See typescript branch for original typescript version
Please report any incorrect data to the issues page, with the Data tag.
With thanks to;
https://api.adsbdb.com/v[semver.major]/aircraft/[MODE_S]
{
"response":{
"aircraft":{
"type": string,
"icao_type": string,
"manufacturer": string,
"mode_s": string,
"n_number": string,
"registered_owner_country_iso_name": string,
"registered_owner_country_name": string,
"registered_owner_operator_flag_code": string,
"registered_owner": string,
"url_photo":string || null,
"url_photo_thumbnail":string || null
}
}
}
Unknown aircraft return status 404 with
{ "response": "unknown aircraft"}
Convert from MODE-S string to N-Number string
https://api.adsbdb.com/v[semver.major]/mode-s/[MODE_S]
{
"response": string
}
Convert from N-Number string to Mode_S string
https://api.adsbdb.com/v[semver.major]/n-number/[N-NUMBER]
{
"response": string
}
https://api.adsbdb.com/v[semver.major]/callsign/[CALLSIGN]
{
"response": {
"flightroute":{
"callsign": string,
"origin_airport_country_iso_name": string,
"origin_airport_country_name": string,
"origin_airport_elevation": number,
"origin_airport_iata_code": string,
"origin_airport_icao_code": string,
"origin_airport_latitude": number,
"origin_airport_longitude": number,
"origin_airport_municipality": string,
"origin_airport_name": string,
"destination_airport_country_iso_name": string,
"destination_airport_country_name": string,
"destination_airport_elevation": number,
"destination_airport_iata_code": string,
"destination_airport_icao_code": string,
"destination_airport_latitude": number,
"destination_airport_longitude": number,
"destination_airport_municipality": string,
"destination_airport_name": string
}
}
}
For a small number of flightroutes, midpoints are also included
{
"midpoint_airport_country_iso_name": string,
"midpoint_airport_country_name": string,
"midpoint_airport_elevation": number,
"midpoint_airport_iata_code": string,
"midpoint_airport_icao_code": string,
"midpoint_airport_latitude": number,
"midpoint_airport_longitude": number,
"midpoint_airport_municipality": string,
"midpoint_airport_name": string
}
Unknown callsign return status 404 with
{ "response": "unknown callsign"}
https://api.adsbdb.com/v[semver.major]/aircraft/[MODE_S]?callsign=[CALLSIGN]
{
"response": {
"aircraft":{
"type": string,
"icao_type": string,
"manufacturer": string,
"mode_s": string,
"n_number": string,
"registered_owner_country_iso_name": string,
"registered_owner_country_name": string,
"registered_owner_operator_flag_code": string,
"registered_owner": string,
"url_photo":string || null,
"url_photo_thumbnail":string || null
},
"flightroute":{
"callsign": string,
"origin_airport_country_iso_name": string,
"origin_airport_country_name": string,
"origin_airport_elevation": number,
"origin_airport_iata_code": string,
"origin_airport_icao_code": string,
"origin_airport_latitude": number,
"origin_airport_longitude": number,
"origin_airport_municipality": string,
"origin_airport_name": string,
"destination_airport_country_iso_name": string,
"destination_airport_country_name": string,
"destination_airport_elevation": number,
"destination_airport_iata_code": string,
"destination_airport_icao_code": string,
"destination_airport_latitude": number,
"destination_airport_longitude": number,
"destination_airport_municipality": string,
"destination_airport_name": string
}
}
}
If an unknown callsign is provided as a query param, but the aircraft is known, response will be status 200 with just aircraft
See releases
download (x86_64_musl one liner)
wget https://www.github.com/mrjackwills/adsbdb/releases/latest/download/adsbdb_linux_x86_64_musl.tar.gz &&
tar xzvf adsbdb_linux_x86_64_musl.tar.gz adsbdb
Operate docker compose containers via
./run.sh
Requires postgres & redis to both be operational and seeded with valid data
# Watch
cargo watch -q -c -w src/ -x 'test -- --test-threads=1 --nocapture'
# Run all
cargo test -- --test-threads=1 --nocapture