{
  "openapi": "3.0.1",
  "info": {
    "title": "FAA Aircraft Registry Scraper - Owners, N-Numbers & Leads",
    "description": "Scrape the official FAA aircraft registry: N-number, make, model, year, engine, airworthiness & registered owner (LLC, corporation, individual) with full mailing address. Filter by state, owner type, aircraft type, make/model & date. B2B aviation leads + monitoring. No browser, no API key.",
    "version": "0.1",
    "x-build-id": "n8AwE2SmhLHvaPOIp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~faa-aircraft-registry-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-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/scrapesage~faa-aircraft-registry-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-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/scrapesage~faa-aircraft-registry-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-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 (tail numbers)",
            "type": "array",
            "description": "Look up specific aircraft by tail number — with or without the leading <code>N</code>, e.g. <code>N12345</code> or <code>737BA</code>. Leave empty to browse the whole registry with the filters below.",
            "items": {
              "type": "string"
            }
          },
          "modeSCodeHex": {
            "title": "Mode S code (ICAO hex)",
            "type": "string",
            "description": "Look up a single aircraft by its 24-bit Mode S / ADS-B transponder address in hex, e.g. <code>A00725</code>. Useful for joining to live flight-tracking data."
          },
          "states": {
            "title": "Owner states",
            "type": "array",
            "description": "Filter by the registered owner's state — two-letter USPS codes, e.g. <code>CA</code>, <code>TX</code>, <code>FL</code>, <code>NY</code>. Leave empty for all states & territories.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Owner cities",
            "type": "array",
            "description": "Filter by the owner's city (case-insensitive, exact city name), e.g. <code>Dallas</code>, <code>Miami</code>, <code>Scottsdale</code>.",
            "items": {
              "type": "string"
            }
          },
          "zipCodes": {
            "title": "Owner ZIP codes (prefix)",
            "type": "array",
            "description": "Filter by the owner's ZIP — full ZIP (<code>75201</code>) or a prefix (<code>752</code> matches all 752xx). The 5-digit ZIP is used for matching.",
            "items": {
              "type": "string"
            }
          },
          "counties": {
            "title": "FAA county codes",
            "type": "array",
            "description": "Advanced: filter by the FAA numeric county code (as it appears in the registry, e.g. <code>113</code>). Most users should use states / cities / ZIPs instead.",
            "items": {
              "type": "string"
            }
          },
          "usOnly": {
            "title": "U.S.-based owners only",
            "type": "boolean",
            "description": "Only include aircraft whose registered owner address is in the United States (country = US).",
            "default": false
          },
          "businessOwnersOnly": {
            "title": "Business owners only",
            "type": "boolean",
            "description": "Only return aircraft owned by a business entity — corporations, LLCs, partnerships and non-citizen corporations (excludes private individuals). The fastest way to build a clean B2B list.",
            "default": false
          },
          "registrantTypes": {
            "title": "Owner / registrant types",
            "type": "array",
            "description": "Filter by the registered owner's entity type. Leave empty for all. Overrides nothing — combine freely.",
            "items": {
              "type": "string",
              "enum": [
                "7",
                "3",
                "1",
                "4",
                "2",
                "5",
                "8",
                "9"
              ],
              "enumTitles": [
                "LLC",
                "Corporation",
                "Individual",
                "Co-Owned",
                "Partnership",
                "Government",
                "Non-Citizen Corporation",
                "Non-Citizen Co-Owned"
              ]
            }
          },
          "ownerNameQuery": {
            "title": "Owner name contains",
            "type": "string",
            "description": "Only return aircraft whose registered owner name contains this text (case-insensitive), e.g. <code>aviation</code>, <code>leasing</code>, <code>air</code>, or a specific company name."
          },
          "fractionalOwnersOnly": {
            "title": "Fractional ownership only",
            "type": "boolean",
            "description": "Only aircraft flagged as part of a fractional-ownership program (e.g. NetJets-style shared ownership).",
            "default": false
          },
          "aircraftMakeQuery": {
            "title": "Make contains",
            "type": "string",
            "description": "Filter by aircraft manufacturer (case-insensitive contains), e.g. <code>cessna</code>, <code>cirrus</code>, <code>boeing</code>, <code>gulfstream</code>, <code>robinson</code>."
          },
          "aircraftModelQuery": {
            "title": "Model contains",
            "type": "string",
            "description": "Filter by aircraft model (case-insensitive contains), e.g. <code>172</code>, <code>SR22</code>, <code>PC-12</code>, <code>CITATION</code>."
          },
          "aircraftTypes": {
            "title": "Aircraft types",
            "type": "array",
            "description": "Filter by aircraft type. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "4",
                "5",
                "6",
                "1",
                "2",
                "3",
                "7",
                "8",
                "9",
                "H",
                "O"
              ],
              "enumTitles": [
                "Fixed wing single-engine",
                "Fixed wing multi-engine",
                "Rotorcraft",
                "Glider",
                "Balloon",
                "Blimp/Dirigible",
                "Weight-shift-control",
                "Powered parachute",
                "Gyroplane",
                "Hybrid lift",
                "Other"
              ]
            }
          },
          "engineTypes": {
            "title": "Engine types",
            "type": "array",
            "description": "Filter by engine type — e.g. pick <b>Turbo-jet</b> + <b>Turbo-fan</b> for jets, or <b>Turbo-prop</b> + <b>Turbo-shaft</b> for turbine aircraft. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "10",
                "7",
                "8",
                "6",
                "11",
                "0",
                "9"
              ],
              "enumTitles": [
                "Reciprocating (piston)",
                "Turbo-prop",
                "Turbo-shaft",
                "Turbo-jet",
                "Turbo-fan",
                "Electric",
                "2 Cycle",
                "4 Cycle",
                "Ramjet",
                "Rotary",
                "None",
                "Unknown"
              ]
            }
          },
          "yearManufacturedFrom": {
            "title": "Year manufactured from",
            "type": "integer",
            "description": "Only aircraft manufactured in or after this year."
          },
          "yearManufacturedTo": {
            "title": "Year manufactured to",
            "type": "integer",
            "description": "Only aircraft manufactured in or before this year."
          },
          "minSeats": {
            "title": "Min seats",
            "type": "integer",
            "description": "Only aircraft with at least this many seats (a useful proxy for size / value)."
          },
          "maxSeats": {
            "title": "Max seats",
            "type": "integer",
            "description": "Only aircraft with at most this many seats."
          },
          "serialNumberQuery": {
            "title": "Serial number contains",
            "type": "string",
            "description": "Filter by aircraft serial number (case-insensitive contains)."
          },
          "validRegistrationsOnly": {
            "title": "Valid registrations only",
            "type": "boolean",
            "description": "Keep only aircraft with a valid current registration (status code V) — recommended for clean, contactable leads. Turn off (or set explicit status codes) to include pending / in-process / deregistered records.",
            "default": true
          },
          "statusCodes": {
            "title": "Status codes (advanced)",
            "type": "array",
            "description": "Advanced: filter by specific FAA status codes (e.g. <code>V</code>, <code>R</code>, <code>M</code>). When set, this overrides 'Valid registrations only'.",
            "items": {
              "type": "string"
            }
          },
          "certIssuedFrom": {
            "title": "Registered on/after",
            "type": "string",
            "description": "Only aircraft whose certificate was issued (registered) on or after this date, <code>YYYY-MM-DD</code>. Great for finding newly-registered aircraft = fresh purchase intent."
          },
          "certIssuedTo": {
            "title": "Registered on/before",
            "type": "string",
            "description": "Only aircraft registered on or before this date, <code>YYYY-MM-DD</code>."
          },
          "lastActionFrom": {
            "title": "Last action on/after",
            "type": "string",
            "description": "Only aircraft with a registry action (registration, renewal, change) on or after this date, <code>YYYY-MM-DD</code>."
          },
          "lastActionTo": {
            "title": "Last action on/before",
            "type": "string",
            "description": "Only aircraft with a last registry action on or before this date, <code>YYYY-MM-DD</code>."
          },
          "expiringBefore": {
            "title": "Registration expires before",
            "type": "string",
            "description": "Only aircraft whose registration expires before this date, <code>YYYY-MM-DD</code> — surfaces owners with upcoming renewals (renewal / re-engagement intent)."
          },
          "excludeExpired": {
            "title": "Exclude already-expired registrations",
            "type": "boolean",
            "description": "Skip aircraft whose registration expiration date is already in the past.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of aircraft records to return in this run.",
            "default": 1000
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "newest",
              "lastAction",
              "source"
            ],
            "type": "string",
            "description": "<b>Newest registered</b> = most recently registered aircraft first (best for fresh leads). <b>Recent activity</b> = most recent registry action first. <b>Source order</b> = fastest on very large limits (streams in file order).",
            "default": "newest"
          },
          "deduplicateResults": {
            "title": "Deduplicate within a run",
            "type": "boolean",
            "description": "Skip duplicate aircraft within this run (recommended).",
            "default": true
          },
          "monitorMode": {
            "title": "Monitoring mode — only new aircraft",
            "type": "boolean",
            "description": "Remember which aircraft were already returned (in a named key-value store) and emit ONLY aircraft that are new since the last run — each tagged <code>monitorEvent: \"new\"</code>. The FAA refreshes this database regularly; run on a Schedule to capture newly-registered aircraft as fresh leads. Works alongside Apify Schedules (the schedule starts the run; monitoring decides what's new).",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Names the memory used by monitoring mode. Use a distinct key per saved watch (e.g. per state or aircraft type) so different monitors don't share state.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy. The FAA database is downloaded directly and needs no proxy — leave this off for the fastest download. Enable Apify Proxy only if your network requires it.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}