Aircraft models and specifications API client — planefyi.com
Project description
planefyi
Python API client for aircraft data. Look up aircraft models by ICAO type designator, compare performance specifications (range, speed, ceiling), explore manufacturer families (Airbus A320, Boeing 737), and query engine configurations — all from PlaneFYI, an aircraft encyclopedia covering commercial, military, and general aviation aircraft.
PlaneFYI catalogs aircraft type designators, manufacturer lineages, performance envelopes (MTOW, range, cruise speed, service ceiling), seating configurations, engine types, and first flight dates — used by aviation enthusiasts, flight sim developers, and airline analytics platforms.
Explore aircraft at planefyi.com — browse by manufacturer, search by type code, and compare specifications.
Table of Contents
- Install
- Quick Start
- What You Can Do
- Command-Line Interface
- MCP Server (Claude, Cursor, Windsurf)
- REST API Client
- API Reference
- Learn More About Aircraft
- Also Available
- Transport FYI Family
- License
Install
pip install planefyi # Core (zero deps)
pip install "planefyi[cli]" # + Command-line interface
pip install "planefyi[mcp]" # + MCP server for AI assistants
pip install "planefyi[api]" # + HTTP client for planefyi.com API
pip install "planefyi[all]" # Everything
Quick Start
from planefyi.api import PlaneFYI
with PlaneFYI() as api:
# Look up an aircraft model
a350 = api.get_aircraft("airbus-a350-900")
print(a350["icao_code"]) # A359
print(a350["manufacturer"]) # Airbus
print(a350["range_km"]) # 15,000 km
print(a350["max_passengers"]) # 440
# List aircraft by manufacturer
airbus = api.list_aircraft(manufacturer="airbus")
for a in airbus:
print(f"{a['icao_code']} — {a['name']}")
# Search aircraft
results = api.search("787")
What You Can Do
Aircraft Families
Commercial aircraft are organized into families — groups of variants sharing a common fuselage design. The Airbus A320 family (A318/A319/A320/A321) and Boeing 737 family (737-700/800/900/MAX) are the world's most-produced narrowbody families, while the A350 and B787 represent the current generation of widebody aircraft.
| Family | Variants | Category | Typical Range |
|---|---|---|---|
| Airbus A220 | A220-100, A220-300 | Narrowbody | 3,400-6,300 km |
| Airbus A320 | A318, A319, A320, A321 | Narrowbody | 3,100-7,400 km |
| Airbus A330 | A330-200, A330-300, A330-800/900neo | Widebody | 10,800-13,300 km |
| Airbus A350 | A350-900, A350-1000 | Widebody | 15,000-16,100 km |
| Boeing 737 | 737-700/800/900, MAX 7/8/9/10 | Narrowbody | 5,600-7,100 km |
| Boeing 777 | 777-200/300, 777X | Widebody | 9,700-16,090 km |
| Boeing 787 | 787-8, 787-9, 787-10 | Widebody | 11,700-14,100 km |
| Embraer E-Jet | E170, E175, E190, E195 | Regional | 2,200-4,500 km |
from planefyi.api import PlaneFYI
with PlaneFYI() as api:
# Browse aircraft by manufacturer
boeing = api.list_aircraft(manufacturer="boeing")
for aircraft in boeing:
print(f"{aircraft['name']}: range {aircraft.get('range_km', 'N/A')} km")
# Get all manufacturers
manufacturers = api.list_manufacturers()
Learn more: Aircraft Directory · Glossary
Performance Specifications
Aircraft performance is defined by key metrics: Maximum Takeoff Weight (MTOW) determines payload capacity, range defines non-stop distance capability, cruise speed affects block time, and service ceiling sets the maximum operating altitude.
| Metric | Unit | Determines |
|---|---|---|
| MTOW | kg/lbs | Max payload + fuel capacity |
| Range | km/nm | Non-stop distance capability |
| Cruise Speed | Mach/km/h | Block time, fuel efficiency |
| Service Ceiling | ft/m | Maximum flight altitude |
| Wingspan | m/ft | Gate compatibility (ICAO code) |
| Cabin Width | m/ft | Seat layout (single vs twin aisle) |
from planefyi.api import PlaneFYI
with PlaneFYI() as api:
# Compare two aircraft
a350 = api.get_aircraft("airbus-a350-900")
b787 = api.get_aircraft("boeing-787-9")
print(f"A350: {a350.get('range_km')} km range, Mach {a350.get('cruise_mach')}")
print(f"B787: {b787.get('range_km')} km range, Mach {b787.get('cruise_mach')}")
Learn more: Aircraft Specifications · Guides
Engine Configurations
Aircraft engines are categorized by type (turbofan, turboprop, piston) and mounting (underwing, rear-fuselage, integrated). Modern turbofans are identified by bypass ratio — high-bypass engines (5:1+) power commercial jets for fuel efficiency, while low-bypass engines power military fighters for raw thrust.
| Engine Type | Application | Examples |
|---|---|---|
| High-bypass turbofan | Commercial jets | CFM LEAP, PW GTF, GE9X |
| Low-bypass turbofan | Military fighters | F110, EJ200 |
| Turboprop | Regional/cargo | PW150A, CT7 |
| Turboshaft | Helicopters | T700, Arrius |
from planefyi.api import PlaneFYI
with PlaneFYI() as api:
aircraft = api.get_aircraft("boeing-777-300er")
print(f"Engines: {aircraft.get('engine_type')}")
print(f"Engine count: {aircraft.get('engine_count')}")
Learn more: Aircraft Data · Glossary
ICAO Type Designators
Every aircraft type is assigned an ICAO type designator — a 2-4 character code used in flight plans. The code encodes manufacturer and variant: A320 (Airbus A320), B738 (Boeing 737-800), E195 (Embraer 195). The ICAO wake turbulence category (L/M/H/J) determines required separation distances.
| Wake Category | MTOW | Example Types |
|---|---|---|
| L (Light) | <7,000 kg | C172, PA28 |
| M (Medium) | 7,000-136,000 kg | A320, B738, E195 |
| H (Heavy) | >136,000 kg | B777, A350, B747 |
| J (Super) | A380 only | A388 |
from planefyi.api import PlaneFYI
with PlaneFYI() as api:
# Search by ICAO type designator
results = api.search("A359")
aircraft = results[0]
print(f"{aircraft['icao_code']} — {aircraft['name']}")
print(f"Wake category: {aircraft.get('wake_category')}")
Learn more: Type Designators · API Documentation
Command-Line Interface
pip install "planefyi[cli]"
planefyi aircraft airbus-a350-900 # Aircraft details
planefyi search "737 MAX" # Search aircraft
planefyi manufacturer boeing # All Boeing aircraft
planefyi manufacturers # List all manufacturers
MCP Server (Claude, Cursor, Windsurf)
pip install "planefyi[mcp]"
{
"mcpServers": {
"planefyi": {
"command": "uvx",
"args": ["--from", "planefyi[mcp]", "python", "-m", "planefyi.mcp_server"]
}
}
}
REST API Client
from planefyi.api import PlaneFYI
with PlaneFYI() as api:
aircraft = api.get_aircraft("airbus-a350-900") # GET /api/v1/aircraft/airbus-a350-900/
boeing = api.list_aircraft(manufacturer="boeing") # GET /api/v1/aircraft/?manufacturer=boeing
manufacturers = api.list_manufacturers() # GET /api/v1/manufacturers/
results = api.search("787") # GET /api/v1/search/?q=787
Example
curl -s "https://planefyi.com/api/v1/aircraft/airbus-a350-900/"
{
"slug": "airbus-a350-900",
"name": "Airbus A350-900",
"icao_code": "A359",
"manufacturer": "Airbus",
"category": "Widebody",
"range_km": 15000
}
Full API documentation at planefyi.com/developers/.
API Reference
| Function | Description |
|---|---|
api.get_aircraft(slug) |
Aircraft details (specs, engine, dimensions) |
api.list_aircraft(manufacturer) |
List aircraft, optionally by manufacturer |
api.list_manufacturers() |
All aircraft manufacturers |
api.get_manufacturer(slug) |
Manufacturer details with aircraft list |
api.search(query) |
Search by name, ICAO code, or manufacturer |
Learn More About Aircraft
- Browse: Aircraft Directory · Manufacturers
- Guides: Aviation Guides · Glossary
- API: REST API Docs · OpenAPI Spec
Also Available
| Platform | Install | Link |
|---|---|---|
| npm | npm install planefyi |
npm |
| MCP | uvx --from "planefyi[mcp]" python -m planefyi.mcp_server |
Config |
Transport FYI Family
Part of the FYIPedia open-source developer tools ecosystem — airports, airlines, aircraft, and railways.
| Package | PyPI | npm | Description |
|---|---|---|---|
| airportfyi | PyPI | npm | 4,500+ airports, IATA/ICAO codes, routes — airportfyi.com |
| airlinefyi | PyPI | npm | Airlines, fleets, alliances, routes — airlinefyi.com |
| planefyi | PyPI | npm | Aircraft models, specifications, manufacturers — planefyi.com |
| trainfyi | PyPI | npm | Railway stations, train routes, rail networks — trainfyi.com |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file planefyi-0.1.1.tar.gz.
File metadata
- Download URL: planefyi-0.1.1.tar.gz
- Upload date:
- Size: 249.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5784fa5c66d23fcb593eb2480095a239d742567ff4cd5eb716a157979d07cd87
|
|
| MD5 |
eb426dd92e09285348b86223aa3fa230
|
|
| BLAKE2b-256 |
a2f212cb74782069db940830f29629e1244416d3b1a5297167f251e332212b84
|
File details
Details for the file planefyi-0.1.1-py3-none-any.whl.
File metadata
- Download URL: planefyi-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24ef980cd320089b03b2bb7fbaf4a7c3dac07645cb06d4e0e8773fc447bc705c
|
|
| MD5 |
be690b4020dedf89105a05eb4998c8c2
|
|
| BLAKE2b-256 |
f5b46a1692044350657320286bab9a859d37c367d18bdc4cda8146157304c764
|