FAA Aircraft Registry & Pilot Certification Lookup
Pricing
from $17.00 / 1,000 aircraft records
FAA Aircraft Registry & Pilot Certification Lookup
Look up FAA aircraft registration by N-Number (owner, manufacturer, model, engine, status), FAA pilot certificates by name (type, ratings, limits) and NTSB accident or incident history for the same tail number. Export CSV, Excel, JSON. No login or API key. 3 record types in one dataset.
Pricing
from $17.00 / 1,000 aircraft records
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
FAA Aircraft Registry & Pilot Certification Lookup searches the whole FAA aircraft registry by state, owner, manufacturer, model, year and status, or looks up any US N-Number (owner, model, engine, Mode S code, status, dates), with linked NTSB accidents, deregistered aircraft, reserved N-Numbers and FAA pilot certificates by name. Export CSV, Excel, JSON or API. No login, no API key. Priced per record: $0.02 aircraft, $0.01 pilot certificate, $0.01 NTSB incident.
FAA aircraft registry search and N-Number lookup in one Actor by RecordsData. It reads the nightly FAA Releasable Aircraft Database, the FAA airmen (pilot) certificate registry and the NTSB accident database, so one run can replace three separate government searches. Every row carries a recordType.
✈️ FAA aircraft registry search: what does this Actor do?
- Search the registry without an N-Number. Filter by
state,ownerName,manufacturer,model,yearFrom,yearToandstatus(filters combine with AND). The Actor stops as soon asmaxItemsis reached. - Look up N-Numbers, one in
nNumberor many innNumbers, with linked NTSB accidents and incidents. - Search deregistered aircraft and reserved N-Numbers with
searchIn. - Find an FAA-certificated pilot by name and get each certificate: type, issue date, ratings and limits.
- Monitor the registry with
onlyNew; seen rows are skipped before charging.
📊 FAA registry data: what can you extract?
Every row has a recordType: aircraft-record, deregistered-record, reserved-record, airmen-record or incident-record. Fields with no value at the source are left out. Codes are decoded to labels; the raw statusCode is kept next to status.
| Record type | Fields |
|---|---|
aircraft-record | nNumber, status, statusCode, serialNumber, manufacturerName, model, mfrYear, typeAircraft, aircraftCategory, typeEngine, engineManufacturer, engineModel, engineCount, engineHorsepower, seats, weightClass, cruiseSpeedMph, airworthinessClass, airworthinessDate, typeRegistration, registeredOwnerName, registeredOwnerStreet, registeredOwnerCity, registeredOwnerState, registeredOwnerZipCode, registeredOwnerCounty, registeredOwnerCountry, coOwnerNames, certificateIssueDate, expirationDate, lastActionDate, modeSCodeHex, modeSCodeOctal, registryUpdatedAt, scrapedAt and more |
deregistered-record | nNumber, serialNumber, manufacturerName, model, mfrYear, cancelDate, statusAtCancellation, exportCountry, last owner name, city, state, ZIP and county (no street) |
reserved-record | nNumber, reservedBy, reservedByCity, reservedByState, reservedByZipCode, reservationDate, reservationType, reservationExpiryNoticeDate, changedToNNumber, purgeDate (no street) |
airmen-record | fullName, certificateType, issueDate, ratings, limits, scrapedAt |
incident-record | nNumber, ntsbNumber, completionStatus, mode, city, state, country, vehicleMake, vehicleModel, highestInjuryLevel, reportType, scrapedAt |
The dataset has six views (overview, aircraft, deregistered, reserved, pilots, incidents).
🧾 Sample output
Input {"nNumber": "N1234", "lastName": "Armstrong", "firstName": "Neil"}. The aircraft sample is an earlier real row, shortened, that predates the newer columns (Mode S, seats, county, co-owners).
{"recordType": "aircraft-record","nNumber": "N1234","status": "Valid","manufacturerName": "EPIC AIRCRAFT LLC","model": "E1000","typeAircraft": "Fixed Wing Single-Engine","typeEngine": "Turbo-prop","registeredOwnerName": "EPIC N1234 LLC","registeredOwnerState": "UTAH","scrapedAt": "2026-10-03T12:00:00.000Z"}
A reserved-record row for N100KX has changedToNNumber N504KQ and reservationType "N-Number change in process". In the N1234 test, the lookup returned 1 aircraft record and 3 NTSB incidents, and the pilot search returned 1 certificate.
💰 FAA registry cost: how much does it cost?
You pay per record delivered, only for rows saved with real data.
| Event | Price per record | Per 1,000 |
|---|---|---|
aircraft-record (one FAA registration) | $0.02 Free plan, down to $0.017 on Gold and above | $20 ($17) |
airmen-record (one pilot certificate) | $0.01 | $10 |
incident-record (one NTSB accident or incident) | $0.01 | $10 |
deregistered-record (one aircraft removed from the registry) | $0.02 | $20 |
reserved-record (one reserved N-Number) | $0.015 | $15 |
Deregistered and reserved rows have flat prices on every plan. Worked examples at Free-plan prices: 200 deregistered Cessna rows cost 200 x $0.02 = $4.00; 100 reserved N-Numbers cost 100 x $0.015 = $1.50; 500 Cessna aircraft rows from Utah cost $10.00; 1,000 aircraft rows cost $20.00; the N1234 plus Armstrong test (1 aircraft, 3 incidents, 1 pilot certificate) costs $0.02 + $0.03 + $0.01 = $0.06. You are not charged for not-found rows, error rows, empty searches or rows skipped by onlyNew, and the run respects your maximum charge.
🚀 How to search the FAA aircraft registry (3 steps)
- Open the Actor. To search the registry, clear the N-Number field (the Console pre-fills
N1234) and fill State, Manufacturer, Owner name, Model, years or Status. For a pilot, enter a last name. - Leave Max Items at 10 or raise it (Free accounts: 10 per run).
- Click Start, then download the dataset as CSV, Excel, JSON or XML.
⚙️ Input
| Field | Type | Description |
|---|---|---|
nNumber | string | One US N-Number, for example N12345, with linked NTSB incidents. When set, registry filters are ignored. |
nNumbers | array | More N-Numbers in the same run; duplicates removed. |
includeIncidents | boolean | Add linked NTSB rows per N-Number. Default true. |
searchIn | select | registered (default), deregistered or reserved. |
state | select | Owner state or territory, 59 codes. For reserved numbers, the holder's state. |
ownerName | string | Text in the owner or a co-owner name, not case sensitive. |
manufacturer | string | Manufacturer contains, for example Cessna. Not for reserved numbers. |
model | string | Model contains, for example 172. Not for reserved numbers. |
yearFrom, yearTo | integer | Year built range, 1900 to 2100. |
status | select | any, valid, unregistered or questionable (registered aircraft only). |
lastName, firstName | string | FAA pilot lookup by name. |
maxItems | integer | Maximum rows across all record types. Default 10, maximum 1,000,000; Free accounts: 10. |
onlyNew, stateKey, resetSeen | boolean, string, boolean | Monitor: only records not delivered before, a name for separate watch lists, and a reset. |
You must provide an N-Number, a registry filter or a last name; otherwise the run ends before anything is charged (see the FAQ).
Cessna aircraft in Utah, no N-Number:
{ "state": "UT", "manufacturer": "Cessna", "maxItems": 100 }
Daily watch for new Cessna 172s in Texas:
{ "state": "TX", "model": "172", "yearFrom": 2015, "status": "valid", "onlyNew": true, "stateKey": "tx-172", "maxItems": 500 }
📦 Output
Rows go to the default dataset. The overview view mixes all record types. Dates stay in MM/DD/YYYY and ZIP+4 keeps its hyphen.
If nothing matches, the run ends as succeeded and charges nothing. If the FAA zip layout changes, a search fails loudly with nothing charged, and N-Number lookups fall back to the old FAA page. If the FAA or NTSB site is unreachable and no rows could be delivered, the run fails with a clear message and charges nothing.
🔍 FAA aircraft registry scraper vs alternatives
Apify Store listings read on 2026-10-10.
| This Actor | scrapesage | parseforge | |
|---|---|---|---|
| Price | $0.02 per aircraft ($0.017 top tiers) | header from $3.22 per 1,000 | $0.009 per result |
| Registry filters | state, owner, make, model, year, status | more: city, ZIP, seats, dates | many, across seven FAA files |
| Deregistered, reserved | both, own columns | deregistered via status codes | both, raw files |
| Only-new monitor | yes, skipped rows free | yes | not stated in their listing |
| Pilots and NTSB | pilots and NTSB incidents | not stated in their listing | not stated in their listing |
scrapesage is cheaper per aircraft and has more filters. gio21 ($0.005 start plus a per-aircraft fee) matches our main filters. scrapers_lat ($12.75 per 1,000) takes an N-Number list only. parseforge sells the raw FAA files, including tables we do not return. Our edge is pilot certificates and linked NTSB history in the same dataset. If you only need cheap bulk aircraft rows, scrapesage is the better fit.
💼 FAA registry use cases
Aircraft pre-purchase screening, aviation lead generation by state or model, fleet and ownership monitoring with onlyNew, insurance underwriting checks and journalism or safety research.
🔌 FAA registry API, schedule and integrations
curl -X POST "https://api.apify.com/v2/acts/recordsdata~faa-aircraft-airmen-registry/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"state": "UT", "manufacturer": "Cessna", "maxItems": 10}'
Schedule a daily run with onlyNew, and send results to Sheets, Slack or a database with Zapier, Make or n8n.
🤖 FAA Aircraft Registry & Pilot Certification Lookup MCP server for AI agents
AI agents can call this Actor through the Apify MCP server at https://mcp.apify.com?tools=RecordsData/faa-aircraft-airmen-registry. The URL loads only this Actor as a tool.
Add this to your MCP client configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=RecordsData/faa-aircraft-airmen-registry"}}}
Example agent prompt:
Use the FAA Aircraft Registry lookup to list up to 20 valid Cessna 172 aircraft registered in Texas since 2015, with owner and Mode S code, and tell me how many NTSB incidents are linked to the first N-Number.
Choose this tool for FAA registration data, deregistered or reserved N-Numbers, a named pilot's certificates, or the NTSB history of a tail number. Leave nNumber empty when searching by filters.
⚖️ Is it legal to look up FAA aircraft and pilot records?
The FAA aircraft registry, the FAA airmen certification database and the NTSB accident database are public government records. This Actor reads the FAA's published files and public pages and does not log in or bypass any protection. Follow the sources' terms and your local privacy rules, especially for owner and pilot names.
❓ Frequently asked questions
Does FAA Aircraft Registry & Pilot Certification Lookup return only aircraft ownership, or also pilots and accidents?
It returns several kinds of record in one dataset: FAA aircraft registrations (for N-Numbers or a registry search), deregistered aircraft, reserved N-Numbers, FAA pilot certificates found by name, and NTSB accident or incident records linked to an N-Number. Each row carries a recordType so you can filter them.
Why did my FAA registry lookup return 0 results?
The Actor returns nothing when the filters match no aircraft, when an N-Number is not in the data and has no NTSB history, when the pilot name is not in the airmen registry, or when a last-name-only search matches more than 50 pilots. For a once-registered N-Number, set searchIn to deregistered. Empty results are free.
Do I need an FAA or NTSB API key to use this actor?
No. It reads the FAA's public nightly registry file, the public FAA airmen database and the public NTSB accident database, so it needs no login and no API key from you. You only need an Apify account to run the actor, and Free accounts can try it with up to 10 items per run.
Can I look up several N-Numbers in one run?
Yes. Put the first tail number in nNumber and more in the nNumbers list, and each aircraft comes back with its linked NTSB incidents. Duplicates are removed, and registered, deregistered and reserved numbers are all found. A bad entry gives one free error row and the valid ones still run.
Can I search the FAA registry without an N-Number?
Yes. Clear the N-Number field and fill state, ownerName, manufacturer, model, yearFrom, yearTo or status; the filters combine with AND. For example, state UT plus manufacturer Cessna returns only Cessna aircraft with a Utah owner. The Console form pre-fills N1234, and while an N-Number is present the filters are ignored, so clear it first.
Does it find deregistered aircraft and reserved N-Numbers?
Yes. Set searchIn to deregistered for deregistered-record rows (cancel date, status at cancellation, export country, last owner), or to reserved for reserved-record rows (holder, reservation date and type, expiry notice, changed-to N-Number, purge date). Street addresses are not output for these types. Deregistered rows cost $0.02 each and reserved rows $0.015 each.
What happens with a reserved N-Number that has no aircraft yet?
When an N-Number is reserved but has no aircraft attached, the Actor returns a reserved-record row so you can see the holder and reservation dates. It is billed as a reserved-record ($0.015), not as an aircraft-record ($0.02). Not-found rows, error rows and empty searches cost nothing.
Why is the pilot ratings text one long string?
The FAA publishes pilot ratings and limits as free text, not as separate coded fields. The Actor returns the ratings and limits of each airmen-record exactly as the FAA airmen registry shows them, so you can parse the string with your own rules, for example by splitting on rating names such as INSTRUMENT AIRPLANE.
How fresh is the FAA and NTSB data?
The FAA Releasable Aircraft Database file is rebuilt nightly, so registry searches are at most about a day behind; each aircraft row has a registryUpdatedAt date for the file it came from. Pilot and NTSB data are fetched live during your run. Every row has a scrapedAt timestamp.
How do I monitor for new aircraft registrations?
Turn on onlyNew and schedule the run daily. The first run delivers everything that matches and remembers it; later runs return only records not seen before and charge only for those. Each distinct set of inputs keeps its own seen list; add stateKey to keep two lists apart, or resetSeen to start over.
Why did the status text change for some aircraft?
For Valid aircraft, about 98 percent of the file, status is unchanged. For other codes, the wording follows the FAA layout document, one fixed text per code, for example "Registration revoked" instead of "Revoked". The raw statusCode is kept as a stable key. Three columns (mfrYear, certificateIssueDate, expirationDate) also moved position.
Is the registered owner's name and address public?
Yes. The FAA aircraft registry is a public record, and the Actor returns the same registered owner name, street, city, state, ZIP code and country that you see on registry.faa.gov. Follow the sources' terms and your local privacy rules, especially when you contact or profile individual owners.
What happens if I send an empty or invalid input?
Nothing is fetched and nothing is charged. A run with no N-Number, no registry filter and no Last Name, or with a malformed N-Number, ends as succeeded with a single free error row (errorType: "invalid-input", an error message and a hint). A maxItems outside 1 to 1,000,000 is rejected with a 400 error before any run starts.
Does FAA Aircraft Registry & Pilot Certification Lookup work through MCP and AI agents?
Yes. It is available through the Apify MCP server; see the MCP section above for the URL and client config. The input fields have plain descriptions and maxItems has a default, so an AI agent can run it with filters or just an N-Number and read the rows from the dataset.
🆘 Support
Open an issue from the Actor's Issues tab or write to contact.punkrecordsdata@gmail.com. This is an independent tool, not affiliated with the Federal Aviation Administration or the National Transportation Safety Board, and it collects only publicly available data.
Last updated: 2026-10-11