FAA Aircraft Registry & Owner Lookup Scraper avatar

FAA Aircraft Registry & Owner Lookup Scraper

Pricing

from $12.75 / 1,000 results

Go to Apify Store
FAA Aircraft Registry & Owner Lookup Scraper

FAA Aircraft Registry & Owner Lookup Scraper

Look up U.S. aircraft by N-Number from the FAA registry. Get make, model, serial number, aircraft and engine type, registration status and dates, plus the registered owner's name and mailing address. Export to JSON, CSV or Excel.

Pricing

from $12.75 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

FAA Aircraft Registry & Owner Lookup Scraper

FAA Aircraft Registry & Owner Lookup Scraper

Here is one real result, with every field the actor returns:

{
"nNumber": "N628TS",
"serialNumber": "6177",
"manufacturerName": "GULFSTREAM AEROSPACE CORP",
"model": "GVI (G650ER)",
"mfrYear": "2015",
"aircraftType": "Fixed Wing Multi-Engine",
"engineType": "Turbo-fan",
"engineManufacturer": "ROLLS DEUT",
"engineModel": "BR700-725A112",
"category": "Transport",
"classification": "Standard",
"registrationStatus": "Valid",
"typeRegistration": "LLC",
"fractionalOwner": "NO",
"dealer": "No",
"typeCertificateHolder": "GULFSTREAM AEROSPACE CORP",
"typeCertificateDataSheet": "T00015AT",
"airworthinessCertificateNumber": "T252216",
"otherOwnerNames": [],
"certificateIssueDate": "03/31/2016",
"expirationDate": "03/31/2029",
"airworthinessDate": "03/31/2015",
"modeSCodeHex": "A835AF",
"modeSCodeOctal": "52032657",
"registrantName": "FALCON LANDING LLC",
"street": "1 ROCKET RD",
"city": "HAWTHORNE",
"state": "CALIFORNIA",
"county": "LOS ANGELES",
"zipCode": "90250-6844",
"country": "UNITED STATES",
"url": "https://registry.faa.gov/aircraftinquiry/Search/NNumberResult?nNumberTxt=N628TS",
"source": "FAA Aircraft Registry",
"observedAt": "2026-08-10T14:28:36.587Z"
}

The most complete FAA aircraft registry scraper available. It returns every field the FAA aircraft inquiry exposes for each registration, including the registered owner name and full mailing address, the airframe and engine specs, and the certificate dates and Mode S codes, so you can look up an owner from a tail number in one call.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor takes a list of U.S. aircraft registration numbers (tail numbers, or N-numbers), queries the FAA aircraft inquiry for each one, and writes one normalized record per aircraft to the run's dataset. Each record carries the registered owner name and full mailing address, any additional owner names, the airframe details (manufacturer, model, serial, year, type), the engine details, the certificate category and classification, the registration status and type, the certificate issue and expiration dates, the airworthiness date, and the Mode S transponder codes in hex and octal. Missing source values are returned as null or an empty array, never invented.

Data covers U.S.-registered aircraft only, as published by the FAA aircraft registry.

Quickstart

Open the actor, paste this into the input, and press Run. It looks up two tail numbers.

{
"nNumbers": ["N12345", "N628TS"],
"maxAircraft": 10
}

Provide at least one entry in nNumbers. The leading N is optional. maxAircraft caps how many are looked up.

Input reference

FieldTypeRequiredDefaultDescription
nNumbersstring[]yes["N12345","N628TS"]One or more U.S. aircraft registration numbers (tail numbers), for example N12345 or N628TS. The leading N is optional.
maxAircraftintegerno10Maximum number of aircraft to look up. Free Apify plans are capped at 10 per run.

Output reference

One dataset item per aircraft. Types: string, string[], or null when the source value is absent.

FieldTypeDescription
nNumberstringThe aircraft registration (tail) number.
serialNumberstringAirframe serial number.
manufacturerNamestringAirframe manufacturer.
modelstringAircraft model.
mfrYearstringYear of manufacture.
aircraftTypestringAircraft type, for example Fixed Wing Multi-Engine.
engineTypestringEngine type, for example Turbo-fan.
engineManufacturerstringEngine manufacturer.
engineModelstringEngine model.
categorystringAircraft category, for example Transport.
classificationstringAirworthiness classification, for example Standard.
registrationStatusstringRegistration status, for example Valid.
typeRegistrationstringRegistrant type, for example LLC, Individual, Corporation.
fractionalOwnerstringWhether the aircraft has fractional ownership.
dealerstringWhether the registrant is a dealer.
typeCertificateHolderstringHolder of the type certificate.
typeCertificateDataSheetstringType certificate data sheet number.
airworthinessCertificateNumberstringAirworthiness certificate number.
otherOwnerNamesstring[]Additional registered owner names. Empty array when none.
certificateIssueDatestringCertificate issue date (MM/DD/YYYY).
expirationDatestringRegistration expiration date (MM/DD/YYYY).
airworthinessDatestringAirworthiness date (MM/DD/YYYY).
modeSCodeHexstringMode S transponder code in hex.
modeSCodeOctalstringMode S transponder code in octal.
registrantNamestringRegistered owner name.
streetstringOwner mailing street.
citystringOwner city.
statestringOwner state.
countystringOwner county.
zipCodestringOwner ZIP code.
countrystringOwner country.
urlstringFAA inquiry URL for the aircraft.
sourcestringAlways FAA Aircraft Registry.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent only on a failed lookup: an item with a populated error field is written instead.

Example output record

Real record from a live run (input {"nNumbers": ["N12345", "N628TS"], "maxAircraft": 10}):

{
"nNumber": "N628TS",
"serialNumber": "6177",
"manufacturerName": "GULFSTREAM AEROSPACE CORP",
"model": "GVI (G650ER)",
"mfrYear": "2015",
"aircraftType": "Fixed Wing Multi-Engine",
"engineType": "Turbo-fan",
"engineManufacturer": "ROLLS DEUT",
"engineModel": "BR700-725A112",
"category": "Transport",
"classification": "Standard",
"registrationStatus": "Valid",
"typeRegistration": "LLC",
"fractionalOwner": "NO",
"dealer": "No",
"typeCertificateHolder": "GULFSTREAM AEROSPACE CORP",
"typeCertificateDataSheet": "T00015AT",
"airworthinessCertificateNumber": "T252216",
"otherOwnerNames": [],
"certificateIssueDate": "03/31/2016",
"expirationDate": "03/31/2029",
"airworthinessDate": "03/31/2015",
"modeSCodeHex": "A835AF",
"modeSCodeOctal": "52032657",
"registrantName": "FALCON LANDING LLC",
"street": "1 ROCKET RD",
"city": "HAWTHORNE",
"state": "CALIFORNIA",
"county": "LOS ANGELES",
"zipCode": "90250-6844",
"country": "UNITED STATES",
"url": "https://registry.faa.gov/aircraftinquiry/Search/NNumberResult?nNumberTxt=N628TS",
"source": "FAA Aircraft Registry",
"observedAt": "2026-08-10T14:28:36.587Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~faa-aircraft-registry-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"nNumbers":["N628TS"],"maxAircraft":10}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~faa-aircraft-registry-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"nNumbers":["N12345","N628TS","N90R"],"maxAircraft":100}'

Apify CLI:

apify call scrapers_lat/faa-aircraft-registry-scraper \
--input '{"nNumbers":["N628TS"]}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per aircraft record returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a lookup errors, the actor writes an item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxAircraft.

FAQ and troubleshooting

A tail number returned no data. Why? The N-number may be deregistered, reserved, or not on file with the FAA. Deregistered numbers are not always searchable. Failed lookups are not charged.

Do I include the leading N? Optional. N628TS and 628TS both work.

Can I find an aircraft owner from a tail number? Yes. The registrantName plus street, city, state, county, zipCode give the registered owner and mailing address as published by the FAA.

Why are dates in MM/DD/YYYY? The FAA registry publishes dates in that format and the actor returns them as shown, without reformatting.

Is this an official FAA tool? No. This actor is independent and has no affiliation with the FAA. It reads only data that is publicly available through the FAA aircraft registry.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the FAA. Accesses only publicly available FAA aircraft registry data.