# FAA Aircraft Registry Scraper (`gio21/faa-aircraft-registry-scraper`) Actor

Scrape the FAA Aircraft Registry: N-Number, owner name and address, make, model, serial number, year, engine, airworthiness and registration status. Search by N-Number, make/model, owner, state, county or year.

- **URL**: https://apify.com/gio21/faa-aircraft-registry-scraper.md
- **Developed by:** [Gio](https://apify.com/gio21) (community)
- **Categories:** Business, Lead generation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## FAA Aircraft Registry Scraper

Extract aircraft registration data from the official [FAA Aircraft Registry](https://registry.faa.gov): owner name and address, N-Number (tail number), make, model, serial number, year of manufacture, engine, airworthiness and registration status.

Built for aviation research, aircraft sales lead generation, fleet analysis, insurance underwriting and due diligence.

### Two ways to search

1. **N-Number lookup** - pass specific tail numbers (e.g. `N172SP`) and each aircraft is fetched live from the FAA inquiry page, including engine details, airworthiness classification and category.
2. **Registry search** - filter the FAA's full registry database (~290,000 aircraft, refreshed daily by the FAA) by make, model, owner, serial, state, county, year range and registration status. All filters combine.

### Features

- Owner name, street address, city, state, ZIP and registrant type (Individual, LLC, Corporation, Government...)
- Make, model, year, serial number, seats and weight class
- Aircraft type (fixed wing, rotorcraft, balloon...) and engine type (reciprocating, turbo-fan...)
- Registration status, certificate issue date, expiration date, airworthiness date
- Mode S transponder code (hex)
- Pure HTTP + official FAA database export, fast and reliable

### Input

| Field | Type | Description |
|-------|------|-------------|
| `nNumbers` | array | Tail numbers for live lookups. When set, the filters below are ignored. |
| `aircraftMake` | string | Manufacturer, partial match (e.g. "Cessna"). |
| `aircraftModel` | string | Model, partial match (e.g. "172"). |
| `ownerName` | string | Owner or company name, partial match. |
| `serialNumber` | string | Serial number, partial match. |
| `state` | string | Owner's US state, 2-letter code. |
| `county` | string | Owner's 3-digit FIPS county code. |
| `yearFrom` / `yearTo` | integer | Year-of-manufacture range. |
| `registrationStatus` | select | `any`, `valid`, or `other`. |
| `maxItems` | integer | Max aircraft to return. `0` = no limit. Default `100`. |

#### Example input

```json
{
  "aircraftMake": "Cessna",
  "aircraftModel": "172",
  "state": "FL",
  "yearFrom": 2000,
  "registrationStatus": "valid",
  "maxItems": 100
}
````

### Output

```json
{
  "nNumber": "N105LU",
  "serialNumber": "172S9782",
  "make": "CESSNA",
  "model": "172S",
  "yearManufactured": "2005",
  "ownerName": "LYNN UNIVERSITY",
  "city": "BOCA RATON",
  "state": "FL",
  "registrantType": "Corporation",
  "typeAircraft": "Fixed Wing Single-Engine",
  "typeEngine": "Reciprocating",
  "status": "Valid",
  "seats": 4,
  "certIssueDate": "2005-06-14",
  "expirationDate": "2029-06-30",
  "registryUrl": "https://registry.faa.gov/aircraftinquiry/Search/NNumberResult?NNumbertxt=N105LU"
}
```

### Common use cases

- Aircraft sales and MRO lead generation by owner, region or fleet age
- Verify ownership and registration status before buying an aircraft
- Fleet research: every aircraft registered to an operator
- Insurance and finance due diligence
- Aviation market analysis by make, model and year

### Pricing

Pay per result: a small fee to start the run plus a per-aircraft fee. Errors and empty results are never charged.

### FAQ

**How fresh is the data?** N-Number lookups hit the live FAA page. Registry searches use the FAA's official database export, which the FAA refreshes every day.

**Is this legal?** Yes. The FAA aircraft registry is public information published by the U.S. government.

**Can I download the whole registry?** Yes, set `maxItems` to 0 with no filters. Around 290,000 aircraft.

**Is this affiliated with the FAA?** No. This is an independent tool for extracting publicly available data.

# Actor input Schema

## `nNumbers` (type: `array`):

Specific aircraft tail numbers to look up (e.g. "N172SP"). When provided, each aircraft is fetched live from the FAA inquiry page (freshest data). Leave empty to search the registry database by the filters below.

## `aircraftMake` (type: `string`):

Manufacturer name, partial match (e.g. "Cessna", "Boeing", "Piper").

## `aircraftModel` (type: `string`):

Model, partial match (e.g. "172", "737", "PA-28").

## `ownerName` (type: `string`):

Registered owner or company name, partial match (e.g. "Delta Air Lines").

## `serialNumber` (type: `string`):

Aircraft serial number, partial match.

## `state` (type: `string`):

Registered owner's US state, 2-letter code (e.g. "FL", "TX").

## `county` (type: `string`):

Registered owner's 3-digit FIPS county code (e.g. "017" for Citrus County, FL). The FAA database stores county codes, not names. Best combined with a state.

## `yearFrom` (type: `integer`):

Minimum year of manufacture.

## `yearTo` (type: `integer`):

Maximum year of manufacture.

## `registrationStatus` (type: `string`):

Filter by registration status.

## `maxItems` (type: `integer`):

Maximum number of aircraft to return. Set 0 for no limit (the full registry has ~290,000 aircraft).

## Actor input object example

```json
{
  "nNumbers": [
    "N172SP",
    "N12345"
  ],
  "aircraftMake": "Cessna",
  "aircraftModel": "172",
  "state": "FL",
  "registrationStatus": "any",
  "maxItems": 100
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "registrationStatus": "any"
};

// Run the Actor and wait for it to finish
const run = await client.actor("gio21/faa-aircraft-registry-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "registrationStatus": "any" }

# Run the Actor and wait for it to finish
run = client.actor("gio21/faa-aircraft-registry-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "registrationStatus": "any"
}' |
apify call gio21/faa-aircraft-registry-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=gio21/faa-aircraft-registry-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FAA Aircraft Registry Scraper",
        "description": "Scrape the FAA Aircraft Registry: N-Number, owner name and address, make, model, serial number, year, engine, airworthiness and registration status. Search by N-Number, make/model, owner, state, county or year.",
        "version": "0.0",
        "x-build-id": "bumNGr2a6HsaUkxbQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/gio21~faa-aircraft-registry-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-gio21-faa-aircraft-registry-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/gio21~faa-aircraft-registry-scraper/runs": {
            "post": {
                "operationId": "runs-sync-gio21-faa-aircraft-registry-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/gio21~faa-aircraft-registry-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-gio21-faa-aircraft-registry-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "nNumbers": {
                        "title": "N-Numbers",
                        "type": "array",
                        "description": "Specific aircraft tail numbers to look up (e.g. \"N172SP\"). When provided, each aircraft is fetched live from the FAA inquiry page (freshest data). Leave empty to search the registry database by the filters below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "aircraftMake": {
                        "title": "Aircraft make",
                        "type": "string",
                        "description": "Manufacturer name, partial match (e.g. \"Cessna\", \"Boeing\", \"Piper\")."
                    },
                    "aircraftModel": {
                        "title": "Aircraft model",
                        "type": "string",
                        "description": "Model, partial match (e.g. \"172\", \"737\", \"PA-28\")."
                    },
                    "ownerName": {
                        "title": "Owner name",
                        "type": "string",
                        "description": "Registered owner or company name, partial match (e.g. \"Delta Air Lines\")."
                    },
                    "serialNumber": {
                        "title": "Serial number",
                        "type": "string",
                        "description": "Aircraft serial number, partial match."
                    },
                    "state": {
                        "title": "State",
                        "type": "string",
                        "description": "Registered owner's US state, 2-letter code (e.g. \"FL\", \"TX\")."
                    },
                    "county": {
                        "title": "County code",
                        "type": "string",
                        "description": "Registered owner's 3-digit FIPS county code (e.g. \"017\" for Citrus County, FL). The FAA database stores county codes, not names. Best combined with a state."
                    },
                    "yearFrom": {
                        "title": "Year of manufacture from",
                        "minimum": 1900,
                        "type": "integer",
                        "description": "Minimum year of manufacture."
                    },
                    "yearTo": {
                        "title": "Year of manufacture to",
                        "minimum": 1900,
                        "type": "integer",
                        "description": "Maximum year of manufacture."
                    },
                    "registrationStatus": {
                        "title": "Registration status",
                        "enum": [
                            "any",
                            "valid",
                            "other"
                        ],
                        "type": "string",
                        "description": "Filter by registration status.",
                        "default": "any"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of aircraft to return. Set 0 for no limit (the full registry has ~290,000 aircraft).",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
