Search US civil aircraft registrations from the FAA Releasable Aircraft Database by manufa
Search US civil aircraft registrations from the FAA Releasable Aircraft Database by manufacturer (Boeing, Cessna, Piper), model, tail number (N number), owner, city, state, serial or year. Returns manufacturer, model, tail number, registrant, location, airframe and engine type, airworthiness certification and a provenance URL per match, plus a live coverage disclosure on every call.
50000 (raw units)
price
1
calls / 30d
1
unique payers
2026-08-23
updated
Provider
api.osf-master-server.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x72f62dE8b70d6CFa8Cc2dF6f21F243f289F3396c",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "50000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"pathParams": {
"query": ":query"
},
"queryParams": {
"format": "json"
},
"type": "http"
},
"output": {
"example": {
"coverage": {
"_about": "Measured per call against the upstream FAA MASTER.txt row count, and stamped with when it was measured. When complete is false the result code is NO_MATCH_INCOMPLETE_CORPUS, never NO_MATCH, so an empty answer is never mistaken for proof that an aircraft is unregistered. Numbers shown are illustrative of the SHAPE; this route reports its real coverage on every call, including when that coverage is partial.",
"complete": false,
"completeness_pct": 20,
"coverage_measured_utc": "2026-08-04T03:50:00Z",
"records_held": 63152,
"states_held": 57,
"upstream_records": 315211,
"upstream_states": 59
},
"match_count": 1,
"matches": [
{
"aircraft_type": "Fixed wing single engine",
"airworthiness_certification": "Standard",
"location": "MARION, TX",
"manufacturer": "CESSNA",
"model": "172K",
"record_id": 12345,
"source": "FAA",
"tail_number": "N17973",
"title": "N17973 - CESSNA 172K - SALE REPORTED",
"year_manufactured": "1972"
}
],
"result": "MATCHES_FOUND",
"search_evidence": {
"_about": "Proof of work, on EVERY result including NO_MATCH: the terms actually searched, how many records were in scope per source, how fresh they are, whether the scan completed or was truncated, and on an empty result the per-term record counts plus a known-good control query re-measured live in the same request. Numbers shown are illustrative.",
"corpus": {
"newest_record_ingested_utc": "2026-08-01T15:47:55Z",
"records_in_scope": 1558599
},
"result_confidence": "matches_found",
"scan": {
"candidate_set_complete": true,
"candidates_examined": 35,
"matches_omitted": 25
}
}
},
"type": "json"
}
},
"routeTemplate": "/x402/aircraft/search/:query",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET",
"HEAD",
"DELETE"
],
"type": "string"
},
"pathParams": {
"properties": {
"query": {
"description": "Keyword(s): manufacturer, model, tail number, registered owner, city or state. E.g. 'Boeing', 'Cessna 172', 'N17973' or 'MARION TX'.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"queryParams": {
"properties": {},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://api.osf-master-server.com/x402/aircraft/search/:query" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://api.osf-master-server.com/x402/aircraft/search/:query");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://api.osf-master-server.com/x402/aircraft/search/:query")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/5072.json, and this resource appears in /discovery/resources and /discovery/search.