Look up a US-registered aircraft in the FAA Aircraft Registry by N-number, manufacturer serial, registrant name, or make/model. Returns full registration record (owner, aircraft, airworthiness, Mode-S, status) via direct HTTP GET — no browser, no anti-CSRF dance.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionlookup-aircraftExecute the skills CLI command in your project's root directory to begin installation:
Fetches lookup-aircraft from faa.gov/lookup-aircraft-8xuamw and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate lookup-aircraft. Access via /lookup-aircraft in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
0
total installs
0
this week
0
upvotes
Run in your terminal
0
installs
0
this week
—
stars
| name | lookup-aircraft |
| title | FAA Aircraft Registry Lookup |
| description | >- Look up a US-registered aircraft in the FAA Aircraft Registry by N-number, manufacturer serial, registrant name, or make/model. Returns full registration record (owner, aircraft, airworthiness, Mode-S, status) via direct HTTP GET — no browser, no anti-CSRF dance. |
| website | faa.gov |
| category | aviation |
| tags | - aviation - aircraft - faa - registry - tail-number - read-only - government |
| source | 'browserbase: agent-runtime 2026-05-19' |
| updated | '2026-05-19' |
| recommended_method | url-param |
| alternative_methods | - method: browser rationale: >- Use only as fallback if Akamai Bot Manager (latent on every page, dormant during testing) upgrades to active blocking. Browser session with --proxies --verified submits the form interactively at ~30x the cost of the direct GET. - method: cli rationale: >- For batch lookups (>50/day), the FAA's daily Releasable Aircraft Database flat-file dump at https://registry.faa.gov/database/ReleasableAircraft.zip is the right answer — contains MASTER, DEREG, RESERVED, ACFTREF, ENGINE, DEALER tables. The web inquiry does NOT expose deregistration or prior-registrant history; the bulk dump does. |
| verified | true |
| proxies | true |
Given an aircraft N-number (tail number), manufacturer serial number, registrant name, or make/model, return the FAA Aircraft Registry record(s) for that aircraft — including N-number, serial, manufacturer/model/year, aircraft + engine type, Mode-S code (hex + octal), registered owner name + address, registrant type, certificate/expiration/last-action dates, current registration status, airworthiness class/category/date, and the canonical detail-page URL. Read-only; never submits any change-of-address, sale, or re-registration form.
Valid vs Expired/Sale Reported/Revoked before a transaction.The FAA Aircraft Inquiry at registry.faa.gov/AircraftInquiry/ is built on ASP.NET MVC (the prompt's mention of __VIEWSTATE/__EVENTVALIDATION refers to the legacy .aspx version that has been retired). The current site uses anti-forgery tokens (__RequestVerificationToken) for POST submissions, but every Search/*Result endpoint also accepts the same field as a plain GET query string — so the optimal path is a one-shot HTTP GET with no browser, no cookies, no token. A residential-proxy fetch (browse cloud fetch --proxies) handles all observed Akamai-Bot-Manager challenges without a real session.
GET https://registry.faa.gov/AircraftInquiry/Search/NNumberResult?NNumbertxt={N}
{N} may be supplied with or without a leading N — both N12345 and 12345 work.NNumbertxt (lowercase trailing txt). The internal links elsewhere on the FAA site use the variant NNumberTxt (capital T); both currently resolve to the same handler, but stick with NNumbertxt to match what the live form posts./AircraftInquiry/Search/NNumberInquiry?error=<reason>&nnumber=<echo> — check the Location header to distinguish "bad input" from "no record".Parse the HTML response. The canonical detail page is the request URL itself (/AircraftInquiry/Search/NNumberResult?NNumbertxt=N12345).
GET https://registry.faa.gov/AircraftInquiry/Search/SerialNumberResult?Serialtxt={s}&sort_option={1|2|3|4}
GET https://registry.faa.gov/AircraftInquiry/Search/NameResult?nametxt={n}&sort_option={1|2|3|4}
GET https://registry.faa.gov/AircraftInquiry/Search/MakeModelResult?Maketxt={mfr}&Modeltxt={model}&sort_option={1|2|3|4}
sort_option values are identical across inquiries: 1=N-Number, 2=Manufacturer Name, 3=Model Name, 4=Name (registrant).
These return paginated HTML tables. Each row is a partial summary (N-Number, serial, manufacturer + model, registrant name + address) with a link to the per-aircraft detail page (/AircraftInquiry/Search/NNumberResult?NNumberTxt=<n>). To get full detail per result, follow each link.
Tip — skip HTML parsing on multi-result inquiries by using the built-in CSV export: the result page exposes two RPC endpoints that produce machine-readable downloads. Two-step:
# 1. Trigger generation — returns JSON { data: "<filename>.csv", server: "<prefix>" }
GET https://registry.faa.gov/AircraftInquiry/BusinessLogic/CreateSerialNumberCSVFile?FileName=SerialNumber&serial=6177
# 2. Download the CSV from a date-stamped directory
GET https://registry.faa.gov/AircraftInquiry/SpreadSheets/{MM-DD-YYYY}/SerialNumber{MM-DD-YYYY}.csv
Equivalent endpoints exist for CreateNameCSVFile, CreateMakeModelCSVFile, CreateNNumberCSVFile, and a …ExcelFile variant of each. The CSV has fixed-width-padded columns (right-padded with spaces) — strip trailing whitespace per cell.
The detail page is a series of <table class="devkit-table"> blocks, each preceded by a <caption class="devkit-table-title"> naming the section. The reliable cell-extraction pattern is "label-cell followed by value-cell"; rows alternate left-pair / right-pair so a single row carries two field/value pairs.
Sections that appear, in order:
Aircraft Description — Serial Number, Status, Manufacturer Name, Certificate Issue Date, Model, Expiration Date, Type Aircraft, Type Engine, Pending Number Change, Dealer, Date Change Authorized, Mode S Code (base 8 / Oct), MFR Year, Mode S Code (Base 16 / Hex), Type Registration, Fractional Owner.Registered Owner — Name, Street, City, State, County, Zip Code, Country.Type Certificate Data Sheet, Type Certificate Holder, Engine Manufacturer, Classification, Engine Model, Category, A/W Date, Exception Code.Other Owner Names — table of co-owners (or "None").Temporary Certificates — Certificate Number, Issue Date, Expiration Date (or "None").Fuel Modifications — usually "None".Map Type Registration to the registrant-type taxonomy: Individual / Partnership / Corporation / Co-Owned / Government / LLC / Non-Citizen Corp / Non-Citizen Co-Owned. Map Status to one of Valid / Pending / Expired / Sale Reported / Revoked / De-Registered / Reserved etc. Map Type Aircraft to Fixed Wing Single-Engine / Fixed Wing Multi-Engine / Rotorcraft / Glider / Balloon / Airship / Weight-Shift / Powered-Parachute / Hybrid Lift.
The result page opens with one of these one-liners — use it as a fast branch hint before walking tables:
| Lead text | Meaning | Schema |
|---|---|---|
{N} is Assigned | Currently registered, single record | Full assigned output |
{N} has Assigned/Multiple Records | Currently registered AND has historical/deregistered records | Full assigned output, set has_prior_records: true |
{N} is Deregistered / {N} is De-registered | Last registration was cancelled | deregistered output (current Status reflects the cancel reason) |
| (Reserved N-Number table only) | Number is reserved but no aircraft assigned yet | reserved output: Type Reservation, Mode S Code, Reserved Date, Renewal Date, Purge Date, Pending Number Change, Date Change Authorized, Reserving Party Name |
302 → /NNumberInquiry?error=… | Invalid input format | error output, surface the URL-encoded reason |
The web inquiry returns only the current record. Despite the prompt's request for deregistration record (cancel date + reason) and the full chain of prior registrants, the FAA AircraftInquiry site does not surface either on NNumberResult — the has Assigned/Multiple Records lead text is informational only and is not a link. There is no "History" tab on the current site. Two honest fallbacks:
https://registry.faa.gov/database/ReleasableAircraft.zip — the FAA's full Releasable Aircraft Database, rebuilt every federal working day. Contains MASTER.txt, ACFTREF.txt, ENGINE.txt, DEREG.txt (deregistered records), RESERVED.txt, and DEALER.txt. Use this for any batch query or any query that needs deregistration history. A single download is ~70 MB and covers the entire US civil register.https://aircraft.faa.gov/e.gov/nd/ — Request For Aircraft Records — official FOIA-style channel to order a copy of the historical paper record for a specific N-number (paid, mail-back). Not scriptable.If the user wants prior-registrant chain on a specific N-number with no flat-file pipeline available, surface a has_prior_records: true flag with the ReleasableAircraft.zip reference and stop — don't fabricate history from the current record.
Should Akamai upgrade from latent to active blocking (it is currently dormant — see Gotchas), drop down to a browser session with stealth + residential proxy and submit the form interactively:
sid=$(browse cloud sessions create --keep-alive --proxies --verified \
| node -e "let s='';process.stdin.on('data',c=>s+=c).on('end',()=>process.stdout.write(JSON.parse(s).id))")
export BROWSE_SESSION="$sid"
browse open "https://registry.faa.gov/AircraftInquiry/Search/NNumberInquiry" --remote
browse fill --remote @<NNumbertxt-ref> "N628TS"
browse click --remote @<submit-ref>
browse get markdown body --remote
browse cloud sessions update "$sid" --status REQUEST_RELEASE
Browser fallback pays ~30s wall + a session cost per lookup vs. the ~1s direct GET — only worth it if direct fetches return 200 OK with an Akamai challenge body or 403 for several consecutive attempts.
__RequestVerificationToken (cookie + hidden field) is required for the form's POST submission, but every Search/*Result endpoint also accepts the field as a GET query parameter with no token. Verified 2026-05-19 on NNumberResult, SerialNumberResult, NameResult. Always prefer GET — it eliminates the cookie/CSRF dance entirely.<script>bazadebezolkohpepadr=… + /akam/13/{path} script tag). During this skill's iteration we observed zero active challenges from a residential-proxy browse cloud fetch — all requests returned 200 OK with full data. Treat 403/timeout as evidence the protection has been activated, not as a sign your URL is wrong, and switch to a stealth browser session.NNumbertxt (lowercase txt). Internal anchors on result tables link with NNumberTxt (capital T). ASP.NET MVC's model-binder is case-insensitive on parameter names, so both work — but if you compose URLs by hand, use the lowercase form to match the canonical form-submission.N is optional. NNumbertxt=N12345 and NNumbertxt=12345 both resolve to the same record. The result page always echoes the input back as "N-Number Entered: 12345" (without the N) regardless.has Assigned/Multiple Records is informational text, not a link. It signals that the FAA's database has historical/deregistered records under this N-number — but they are not navigable from the web inquiry. The text is plain <p>, not an <a>. See Workflow §5 for how to actually retrieve those records.>5 characters, illegal alpha pattern, etc.) responds 302 Location: /AircraftInquiry/Search/NNumberInquiry?error=...&nnumber=.... Don't treat the redirect as an HTTP failure — the human-readable reason is in the error query param of the Location header.BusinessLogic/Create*CSVFile returns JSON { data: "<filename>", server: "<prefix>" } that points to a date-stamped path under /AircraftInquiry/SpreadSheets/{MM-DD-YYYY}/. The CSV is staged at request time; don't expect a stable URL across days.6177 matches 7 aircraft across BOMBARDIER, PIPER, CAMERON BALLOONS, DOUGLAS, GULFSTREAM, TAYLORCRAFT, CESSNA. Always pair Serialtxt with the manufacturer when the user supplies one.MFR Year, A/W Date, Engine Manufacturer, etc. are commonly None/Unknown. Drone-class registrations (DJI, Skydio, Autel) routinely lack airworthiness data because they're operated under 14 CFR Part 107 and don't carry standard airworthiness certificates. Don't treat absence as an error.base 8 / Oct) and hex (Base 16 / Hex). These are the same 24-bit ICAO address rendered in two bases. Hex (A061D9) is what ADS-B trackers use; octal (50060731) is the legacy FAA format. Both are emitted on every record.Reserving Party Name, Type Reservation, Reserved Date, Renewal Date, Purge Date replace the aircraft/owner fields.Type Registration enum is the source of truth for registrant type. Observed values: Individual, Partnership, Corporation, Co-Owned, Government, LLC, Non Citizen Corporation, Non Citizen Co-Owned. Other dimensions (Dealer, Fractional Owner) are separate Yes/No fields, not subtypes.registry.faa.gov redirects to a static landing first. A bare GET https://registry.faa.gov/ returns a 10-second-meta-refresh splash page, not the inquiry app. Skip it — go directly to /AircraftInquiry/Search/NNumberInquiry (form) or /AircraftInquiry/Search/NNumberResult?... (result).registry.faa.gov. For more than a few dozen lookups per day, download ReleasableAircraft.zip and query it locally — that is what every commercial aircraft-data product does.Four primary outcome shapes for an N-number lookup. List-lookups (serial/name/make-model) emit { "matches": [<assigned-shape-summary>, …] }.
// Active assignment (single record) — N628TS
{
"success": true,
"outcome": "assigned",
"has_prior_records": false,
"n_number": "N628TS",
"detail_url": "https://registry.faa.gov/AircraftInquiry/Search/NNumberResult?NNumbertxt=N628TS",
"aircraft": {
"serial_number": "6177",
"manufacturer": "GULFSTREAM AEROSPACE CORP",
"model": "GVI (G650ER)",
"year_manufactured": 2015,
"type_aircraft": "Fixed Wing Multi-Engine",
"type_engine": "Turbo-fan",
"engine_manufacturer": "ROLLS DEUT",
"engine_model": "BR700-725A112",
"mode_s_hex": "A835AF",
"mode_s_octal": "52032657"
},
"registration": {
"status": "Valid",
"type_registration": "LLC",
"certificate_issue_date": "2016-03-31",
"expiration_date": "2029-03-31",
"dealer": false,
"fractional_owner": false,
"pending_number_change": null,
"date_change_authorized": null
},
"registered_owner": {
"name": "FALCON LANDING LLC",
"street": "1 ROCKET RD",
"city": "HAWTHORNE",
"state": "CALIFORNIA",
"county": "LOS ANGELES",
"zip": "90250-6844",
"country": "UNITED STATES"
},
"airworthiness": {
"type_certificate_data_sheet": "T00015AT",
"type_certificate_holder": "GULFSTREAM AEROSPACE CORP",
"classification": "Standard",
"category": "Transport",
"airworthiness_date": "2015-03-31",
"exception_code": true
},
"other_owner_names": [],
"temporary_certificates": [
{ "certificate_number": "T252216", "issue_date": "2025-02-26", "expiration_date": "2025-03-28" }
],
"fuel_modifications": [],
"kit_manufacturer": null,
"kit_model": null
}
// Active assignment with historical records (web inquiry exposes ONLY the current record) — N12345
{
"success": true,
"outcome": "assigned",
"has_prior_records": true,
"n_number": "N12345",
"detail_url": "https://registry.faa.gov/AircraftInquiry/Search/NNumberResult?NNumbertxt=N12345",
"aircraft": {
"serial_number": "08QCE5J012001T",
"manufacturer": "DJI",
"model": "MAVIC PRO",
"year_manufactured": null,
"type_aircraft": "Rotorcraft",
"type_engine": "Electric",
"engine_manufacturer": null,
"engine_model": null,
"mode_s_hex": "A061D9",
"mode_s_octal": "50060731"
},
"registration": {
"status": "Valid",
"type_registration": "Individual",
"certificate_issue_date": "2017-08-22",
"expiration_date": "2027-08-31",
"dealer": false,
"fractional_owner": false
},
"registered_owner": {
"name": "GUTTERMAN ADAM D",
"street": "100 HOGAN POINT RD",
"city": "HILTON",
"state": "NEW YORK",
"county": "MONROE",
"zip": "14468-8917",
"country": "UNITED STATES"
},
"prior_registrants_note": "FAA web inquiry does NOT expose the prior-registrant chain for this N-number. Retrieve the full history from https://registry.faa.gov/database/ReleasableAircraft.zip (DEREG.txt + MASTER.txt) or order paper records via https://aircraft.faa.gov/e.gov/nd/."
}
// Reserved (number is held but no aircraft assigned yet)
{
"success": true,
"outcome": "reserved",
"n_number": "N1Q",
"detail_url": "https://registry.faa.gov/AircraftInquiry/Search/NNumberResult?NNumbertxt=N1Q",
"reservation": {
"type_reservation": "Fee Paid",
"mode_s_octal": "50000540",
"reserved_date": "2026-02-28",
"renewal_date": null,
"purge_date": "2027-03-28",
"pending_number_change": null,
"date_change_authorized": null,
"reserving_party_name": "AIR SANSONE LLC"
}
}
// Invalid input — server 302-redirects with the validator reason
{
"success": false,
"outcome": "invalid_input",
"n_number_input": "ZZZZZZ",
"reason": "N-Number is More than 5 characters",
"redirect_url": "https://registry.faa.gov/AircraftInquiry/Search/NNumberInquiry?error=N-Number%20is%20More%20than%205%20characters&nnumber=zzzzzz"
}
// List output for serial / name / make-model — array of N-number summaries
{
"success": true,
"outcome": "list",
"query": { "serial": "6177", "sort_option": 1 },
"total_matches": 7,
"matches": [
{ "n_number": "250QS", "serial": "6177", "manufacturer": "BOMBARDIER INC", "model": "CL-600-2B16", "registrant": null, "detail_url": "https://registry.faa.gov/AircraftInquiry/Search/NNumberResult?NNumbertxt=250QS" },
{ "n_number": "628TS", "serial": "6177", "manufacturer": "GULFSTREAM AEROSPACE CORP", "model": "GVI (G650ER)", "registrant": "FALCON LANDING LLC", "detail_url": "https://registry.faa.gov/AircraftInquiry/Search/NNumberResult?NNumbertxt=628TS" },
{ "n_number": "35157", "serial": "6177", "manufacturer": "PIPER", "model": "J3C-65", "registrant": "JONES DEWEY", "detail_url": "https://registry.faa.gov/AircraftInquiry/Search/NNumberResult?NNumbertxt=35157" }
]
}
Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
bizfileonline.sos.ca.gov/find-california-business-izbvm2
cis.scc.virginia.gov/business-search-pg5zpn
bja.ojp.gov/find-funding-crrr3b
booking.com/search-hotels-asq6cc
aliexpress.com/search-product-p0h8a7
apps.ilsos.gov/business-search-wk944z
Keeps context tight: lookup-aircraft is the kind of skill you can hand to a new teammate without a long onboarding doc.
lookup-aircraft is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
lookup-aircraft fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
I recommend lookup-aircraft for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
lookup-aircraft has been reliable in day-to-day use. Documentation quality is above average for community skills.
Keeps context tight: lookup-aircraft is the kind of skill you can hand to a new teammate without a long onboarding doc.
lookup-aircraft reduced setup friction for our internal harness; good balance of opinion and flexibility.
lookup-aircraft has been reliable in day-to-day use. Documentation quality is above average for community skills.
We added lookup-aircraft from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
We added lookup-aircraft from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
showing 1-10 of 72