FAA Aircraft Registry Scraper - Owner, Tail Number, Model
FAA Aircraft Registry Scraper
Extract US-registered aircraft data from the FAA Aircraft Registry with owner identity, manufacturer and model, registration history, airworthiness, and Mode S hex codes for ADS-B correlation. Covers all ~290K active tail numbers plus historical records.
FAA Aircraft Registry Scraper Features
- Extracts 30+ fields per aircraft — N-number, serial, make, model, owner name, address, registration dates, Mode S hex, and derived flags
- Four query modes: by N-number, by owner name, by manufacturer/model, or a pre-baked corporate-jet sweep
- Returns Mode S hex codes in base-16 for direct ADS-B Exchange / FlightAware correlation — the field most people actually need
- Flags corporate jets (Gulfstream, Dassault Falcon, Bombardier Global, Cessna Citation, Embraer Legacy, Hawker) and vintage / warbird aircraft automatically
- Filters by US state code, two-letter
- Optional exclusion of commercial-airline registrations for HNW-focused pulls
- Pure HTTP scraping through Apify's proxy — no browser, no manual cookies, no CAPTCHA solving
Who Uses FAA Aircraft Registry Data?
- Aviation vendors — surface fleet owners for MRO, fractional, and refurb sales outreach
- HNW lead gen — corporate-jet owners are a high-quality proxy for ultra-high-net-worth individuals and family offices
- Insurance underwriters — pull a book of registrants by make/model for risk modeling
- ESG and CO2 researchers — aggregate registrations by engine type and manufacture year to build emissions baselines
- Aircraft brokers — track ownership changes on a watchlist of tail numbers
- OSINT analysts — correlate Mode S hex codes with live ADS-B feeds for movement tracking
How FAA Aircraft Registry Scraper Works
- Pick a mode —
by_n_number,by_owner_name,by_manufacturer_model, orcorporate_jet_sweep. - Provide the matching input fields (N-numbers, owner names, or make/model pairs). State codes filter results further.
- The scraper walks the FAA Aircraft Inquiry web forms, fetches detail pages for each tail number, and returns a flat row per aircraft. You get owner identity, registration status, airworthiness data, and Mode S hex.
Input
Example — manufacturer/model search
{
"mode": "by_manufacturer_model",
"manufacturers": ["GULFSTREAM"],
"models": ["G650"],
"states": ["CA", "NY", "FL"],
"maxItems": 50
}
Example — owner-name search
{
"mode": "by_owner_name",
"ownerNames": ["NETJETS"],
"maxItems": 100
}
Example — N-number lookup
{
"mode": "by_n_number",
"nNumbers": ["N12345", "N102QS", "N221DG"],
"maxItems": 10
}
Example — corporate-jet sweep (default)
{
"mode": "corporate_jet_sweep",
"states": ["CA"],
"excludeCommercialAirlines": true,
"maxItems": 100
}
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | corporate_jet_sweep |
by_n_number, by_owner_name, by_manufacturer_model, or corporate_jet_sweep |
nNumbers |
array[string] | — | Tail numbers to look up. Accepts N12345 or just 12345 |
ownerNames |
array[string] | — | Owner-name search terms. Fuzzy / prefix match |
manufacturers |
array[string] | — | Manufacturer search terms (e.g., GULFSTREAM, DASSAULT) |
models |
array[string] | — | Model search terms. Combined pair-wise with manufacturers |
states |
array[string] | — | Two-letter state codes to include. Empty = all US states |
excludeCommercialAirlines |
boolean | false |
Drop rows matching common commercial-airline registrant patterns |
maxItems |
integer | 20 |
Cap on total records returned |
proxyConfiguration |
object | Apify default | Optional proxy override. FAA registry sits behind Akamai; the default Apify proxy is on |
FAA Aircraft Registry Scraper Output Fields
Example output
{
"n_number": "N221DG",
"serial_number": "6061",
"manufacturer": "GULFSTREAM AEROSPACE CORP",
"model": "GVI (G650)",
"aircraft_type": "Fixed Wing Multi-Engine",
"engine_type": "Turbo-fan",
"engine_count": 0,
"year_manufactured": 2013,
"registrant_name": "DAVID GEFFEN CO",
"registrant_type": "Corporation",
"registrant_address": "12011 SAN VICENTE BLVD STE 606",
"registrant_city": "LOS ANGELES",
"registrant_state": "CALIFORNIA",
"registrant_zip": "90049-4948",
"registrant_country": "UNITED STATES",
"certificate_issue_date": "07/01/2014",
"cert_expiration_date": "07/31/2027",
"registration_status": "Valid",
"airworthiness_class": "Standard",
"airworthiness_category": "Transport",
"airworthiness_date": "09/19/2013",
"mode_s_code_oct": "50362412",
"mode_s_code_hex": "A1E50A",
"dealer_flag": false,
"fractional_ownership_flag": false,
"is_corporate_jet": true,
"is_warbird_or_vintage": false,
"source_query": "GULFSTREAM / G650",
"source_url": "https://registry.faa.gov/aircraftinquiry/Search/NNumberResult?NNumberTxt=N221DG",
"scraped_at": "2026-04-23T08:33:44.919Z"
}
| Field | Type | Description |
|---|---|---|
n_number |
string | FAA tail number (N-number) |
serial_number |
string | Airframe serial number |
manufacturer |
string | Manufacturer name as published by the FAA |
model |
string | Model name. Detail pages may include the type certificate designation in parens (e.g., GVI (G650)) |
aircraft_type |
string | Fixed Wing Single-Engine, Fixed Wing Multi-Engine, Rotorcraft, etc. |
engine_type |
string | Reciprocating, Turbo-jet, Turbo-fan, Turbo-prop, Electric, etc. |
engine_count |
number | Number of engines when available, 0 otherwise |
year_manufactured |
number | Manufacture year, 0 when unknown |
registrant_name |
string | Registered owner name |
registrant_type |
string | Individual, Corporation, Partnership, LLC, Government, etc. |
registrant_address |
string | Owner street address (concatenated when multi-line) |
registrant_city |
string | Owner city |
registrant_state |
string | Owner state (full name from detail pages, two-letter from list pages) |
registrant_zip |
string | Owner ZIP |
registrant_country |
string | Owner country, usually UNITED STATES |
certificate_issue_date |
string | Current certificate issue date (MM/DD/YYYY) |
cert_expiration_date |
string | Certificate expiration date |
registration_status |
string | Valid, Expired, Reserved, Pending, etc. |
airworthiness_class |
string | Standard, Experimental, Restricted, etc. |
airworthiness_category |
string | Transport, Normal, Utility, etc. |
airworthiness_date |
string | Last airworthiness certificate date |
mode_s_code_oct |
string | Mode S transponder code in octal |
mode_s_code_hex |
string | Mode S transponder code in hex — used for ADS-B correlation |
dealer_flag |
boolean | true if dealer-registered |
fractional_ownership_flag |
boolean | true for NetJets / Flexjet-class fractional registrations |
is_corporate_jet |
boolean | Derived — matches known corporate-jet manufacturer/model patterns |
is_warbird_or_vintage |
boolean | Derived — year_manufactured ≤ 1955 or manufacturer pattern match |
source_query |
string | Query label that produced the record (e.g., GULFSTREAM / G650) |
source_url |
string | FAA registry detail URL for the record |
scraped_at |
string | ISO timestamp of extraction |
FAQ
How do I scrape the FAA aircraft registry?
FAA Aircraft Registry Scraper runs the web forms at registry.faa.gov the same way a browser does, then returns one row per aircraft. You pick a mode, supply inputs, and the scraper handles pagination, detail fetches, and rate-limit handling.
Can I look up a single N-number?
FAA Aircraft Registry Scraper supports that — set mode to by_n_number and pass nNumbers: ["N12345"]. The output is the full detail row, including Mode S hex.
How do I find all aircraft owned by a company?
FAA Aircraft Registry Scraper has a by_owner_name mode that searches the FAA's Name inquiry. It's a fuzzy / prefix match, so NETJETS returns both NETJETS SALES INC and NETJETS AVIATION INC. Pair it with excludeCommercialAirlines: true if you're filtering for HNW tail numbers.
Does this scraper return Mode S hex for ADS-B tracking?
FAA Aircraft Registry Scraper returns mode_s_code_hex on every detail row — that's the transponder code services like ADS-B Exchange, FlightAware, and OpenSky use to identify aircraft in live flight feeds. The base-8 octal code is also included if you need it.
How much does FAA Aircraft Registry Scraper cost to run?
FAA Aircraft Registry Scraper is priced pay-per-event: $0.10 per run start and $0.01 per record. A 100-record pull costs $1.10. The whole active US registry (290K records) is theoretically $2,900 plus compute, though the actor caps runs well before that — point it at a focused query and you'll pay for what you use.
Does it need a proxy?
FAA Aircraft Registry Scraper uses Apify's default proxy out of the box. The FAA site sits behind Akamai, which will block bare datacenter IPs after a few hundred requests, so the proxy is not optional. You don't have to configure anything — it's on by default.
Need More Features?
Need a full-registry CSV export, a different state filter, or a custom corporate-jet list? File an issue or get in touch.
Why Use FAA Aircraft Registry Scraper?
- Affordable — $0.01 per record, so a targeted sweep of Gulfstream G650 owners runs well under a dollar
- Complete — 30+ fields per aircraft including the Mode S hex that most scrapers skip, because parsing the FAA detail page is a mild pain
- Focused — four purpose-built modes instead of one dump-everything switch, which saves you from paying for records you didn't want