PlaneQuery.comSQL + LLM access to ADS-B and flight data since 2024-01-01
Latest ADS-B: Unavailable · 59.8B messages · 2.3TB | Latest flights: Unavailable · 139.3M flights | Preview: 1,000 rows / 1 GB scanned limit per queryData provided by ADSB.lol under Open Database License
Tables
adsb_messages: 58 columns; partitioned by hours(time)
Columns are based on readsb. Aircraft registration information comes from tar1090-db.
| Column | Type | Comment |
|---|---|---|
| time | timestamp (not null) | UTC millisecond precision |
| icao | string (not null) | lowercase hex e.g a835af |
| callsign | string | |
| registration | string | Aircraft tail number e.g N628TS |
| aircraft_type | string | Aircraft model/type e.g A319 |
| lat | double (not null) | Latitude in decimal degrees |
| lon | double (not null) | Longitude in decimal degrees |
| radius_of_containment_m | int | Position uncertainty (meters), derived from NIC |
| on_ground | boolean | on-ground bit in ADS-B message |
| baro_altitude_ft | int | Barometric altitude (feet) |
| geom_altitude_ft | int | Geometric altitude (GNSS/WGS84, feet) |
| baro_rate_fpm | int | Vertical rate from barometric altitude (ft/min) |
| geom_rate_fpm | int | Vertical rate from geometric altitude (ft/min) |
| ground_speed_kt | float | Ground speed (knots) |
| indicated_airspeed_kt | float | Indicated airspeed (knots) |
| true_airspeed_kt | float | True airspeed (knots) |
| mach | float | Mach number |
| track_deg | float | degrees, true north) |
| track_rate_deg_s | float | Rate of change of track (deg/sec) |
| roll_deg | float | Aircraft roll angle (degrees) |
| magnetic_heading_deg | float | Heading relative to magnetic north |
| true_heading_deg | float | Heading relative to true north |
| nav_qnh_hpa | float | Altimeter setting (QNH/QFE) in hPa |
| nav_altitude_mcp_ft | int | Selected altitude from MCP/autopilot (feet) |
| nav_altitude_fms_ft | int | Selected altitude from Flight Management System (FMS) (feet) |
| nav_heading_deg | float | Selected heading (typically magnetic) |
| nav_modes | array<string> | Active autopilot/flight modes (e.g. autopilot, vnav, lnav) |
| squawk | string | Mode A squawk code (4 octal digits) |
| emergency | string | Emergency status (e.g. none, general, hijack, etc.) |
| alert | boolean | ADS-B alert flag |
| spi | boolean | Special Position Identification flag |
| version | int | ADS-B version (0, 1, 2) |
| nic | int | Navigation Integrity Category (position integrity) |
| nic_baro | int | NIC for barometric altitude |
| nac_p | int | Navigation Accuracy Category (position) |
| nac_v | int | Navigation Accuracy Category (velocity) |
| sil | int | Source Integrity Level |
| sil_type | string | SIL interpretation (perhour / persample) |
| gva | int | Geometric Vertical Accuracy |
| sda | int | System Design Assurance |
| type | string | Message/data source type (adsb_icao, mlat, tisb, etc.) |
| flags | int | Bitmask flags (e.g. stale position, new flight leg, etc.) |
| rssi_dbfs | float | Signal strength (dBFS, negative values) |
| source | string | Data source/origin (e.g. ADSB, MLAT, TIS-B) |
| no_reg_data | boolean | True if no registration data is available |
| pia | boolean | Privacy ICAO Address flag |
| ladd | boolean | FAA LADD (blocked aircraft) flag |
| military | boolean | Military aircraft flag |
| interesting | boolean | Flag for notable/interesting aircraft |
| owner | string | Aircraft owner (external enrichment) |
| aircraft_description | string | Human-readable aircraft description |
| category | string | ADS-B emitter category (A0–D7) |
| wind_direction_deg | float | Estimated wind direction (degrees) |
| wind_speed_kt | float | Estimated wind speed (knots) |
| outside_air_temp_c | float | Outside air temperature (°C) |
| total_air_temp_c | float | Total air temperature (°C) |
| mlat | array<string> | Fields derived from MLAT calculations |
| tisb | array<string> | Fields derived from TIS-B data |
flights: 15 columns; partitioned by day(takeoff_time)
"takeoff_airport_ident" and "landing_airport_ident" use airport identifiers from the "ident" column in "airports.csv", sourced from OurAirports.com. Flights are derived from ADS-B data and may contain errors in areas with poor ADS-B coverage.
| Column | Type |
|---|---|
| icao | string |
| callsign | string |
| registration | string |
| takeoff_time | timestamp |
| takeoff_airport_ident | string |
| landing_time | timestamp |
| landing_airport_ident | string |
| pia | boolean |
| ladd | boolean |
| military | boolean |
| interesting | boolean |
| aircraft_type | string |
| owner | string |
| aircraft_description | string |
| category | string |
Python Quickstart
import boto3
import awswrangler as wr
session = boto3.Session(
aws_access_key_id="key_id",
aws_secret_access_key="secret_key",
region_name="us-east-2",
)
sql = """
SELECT *
FROM adsb_messages
WHERE time >= TIMESTAMP '2025-04-01 07:00:00'
AND time < TIMESTAMP '2025-04-01 08:00:00'
"""
df = wr.athena.read_sql_query(
sql=sql,
database='planequery_lake_prod',
workgroup='workgroup',
boto3_session=session,
ctas_approach=False,
)MCP Quickstart
# Codex
codex mcp add planequery -- npx -y mcp-remote "https://planequery.com/api/mcp" 3334
# Claude Desktop
claude_desktop_config.json:
{
"mcpServers": {
"planequery": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://planequery.com/api/mcp", "3334"]
}
}
}Comparison to other sites
| Provider | SQL interface | High Quality Flight Data | Uncensored | Click to Buy |
|---|---|---|---|---|
| FlightAware | No | Yes | No | Yes |
| Flightradar24 | No | Yes | No | Yes |
| ADSB Exchange | No | No | Yes | No. Pricing unknown. |
| OpenSky | Yes | No | Yes | No. Access granted to academia. Commercial access and pricing unknown or unavailable. |
| PlaneQuery.com | Yes | Yes | Yes | Yes |