Wingspan, length, MTOW, approach speed and wake class for 388 aircraft types.
Aircraft Types returns the physical and operational characteristics of an aircraft type from its ICAO designator, such as B738 or A320, or by searching manufacturer and model. Each type comes with wingspan, length, tail height, maximum takeoff and landing weight, approach speed and category, airplane design group, ICAO wake turbulence category and FAA weight class, with metric conversions. Paid plans add airport planning geometry, RECAT wake categories and US registration and traffic counts.
Try it — live request, no key required
No key required to try it. Get a key to use it in your app.
{
"status": "ok",
"error": null,
"data": {
"count": 1,
"returned": 1,
"types": [
{
"icaoCode": "B738",
"faaDesignator": "B738",
"manufacturer": "BOEING",
"model": "Boeing 737-800",
"variant": "Boeing B737-800",
"aircraftClass": "Fixed-wing",
"engineType": "Jet",
"engineCount": 2,
"wingspanFt": 117.4,
"wingspanWithoutWingletsFt": 112.6,
"hasWinglets": true,
"lengthFt": 129.5,
"tailHeightFt": 41.4,
"maxTakeoffWeightLb": 174200,
"maxLandingWeightLb": 146275,
"approachSpeedKnots": 144,
"approachSpeedRangeKnots": {
"min": 140,
"max": 144
},
"approachCategory": "D",
"designGroup": "III",
"icaoWakeCategory": "Medium",
"faaWeightClass": "Large",
"metric": {
"wingspanM": 35.78,
"lengthM": 39.47,
"tailHeightM": 12.62,
"maxTakeoffWeightKg": 79016,
"maxLandingWeightKg": 66349
},
"airport": {
"taxiwayDesignGroup": "3",
"wheelbaseFt": 51.2,
"cockpitToMainGearFt": 56.4,
"mainGearWidthFt": 23,
"mainGearConfig": "D",
"parkingAreaFt2": 16487,
"parkingAreaM2": 1532,
"rotorDiameterFt": null
},
"wake": {
"consolidatedCategory": "F",
"recat15Category": "D",
"recat2CategoryA": "D",
"recat2CategoryB": "C",
"sameRunwaySeparation": "III",
"lahsoGroup": "8"
},
"usage": {
"usRegistered": true,
"usRegistrations": 971,
"annualFlightPlanOperations": 2484764,
"operationsYear": 2024
},
"remarks": "Depending on flaps configuration and MALW, AAC could be C. AAC validated by Flight Standardization Board (FSB) report.",
"lastUpdated": null
}
]
}
}
About the Aircraft Types API
An aircraft specifications API built on the FAA Aircraft Characteristics Database, the reference airport planners and air traffic tools use for aircraft dimensions and classifications. Look up a type by its ICAO type designator (B738, A20N, C172) or search by manufacturer and model, and filter by engine type, engine count or wake category.
Every type returns its manufacturer and model, aircraft class, engine type and count, wingspan with and without winglets, length, tail height, maximum takeoff and landing weight, approach speed, aircraft approach category (A-E), airplane design group (I-VI), ICAO wake turbulence category and FAA weight class, plus the same dimensions and weights in metres and kilograms.
Paid plans add the airport planning block (taxiway design group, wheelbase, cockpit to main gear distance, main gear width and configuration, parking area), the wake block (consolidated wake turbulence category, RECAT 1.5 and RECAT 2 categories, same runway separation category, LAHSO group) and usage figures: how many aircraft of the type are on the US register and how many flight-plan operations it flew in the National Airspace System last fiscal year. The data is refreshed weekly from the FAA.
How it works
icao matches the ICAO type designator or the FAA designator exactly (case-insensitive) and returns that one type. Without it, manufacturer and model are substring matches after stripping punctuation, so model=737 finds every 737 variant and manufacturer=deHavilland finds DE HAVILLAND; engineType, wakeCategory and engines narrow the result, or search on their own (wakeCategory=super lists every Super type). Searches are ordered by annual flight-plan operations, so the types you meet most often come first, and count reports every match while limit (default 10, at most 50) caps types.
The figures come from the FAA Aircraft Characteristics Database, which the FAA compiles from manufacturer airport planning manuals and Flight Standardization Board reports for airport design under AC 150/5300-13B. approachCategory follows the highest approach speed at maximum landing weight; where the FAA gives two values, approachSpeedRangeKnots carries both. designGroup combines tail height and wingspan, and airport.taxiwayDesignGroup combines main gear width and cockpit to main gear distance. Metric values are converted from the published feet and pounds.
No match returns 404. The ICAO wake category is normalised to Light, Medium, Heavy or Super; a few light-sport types are listed by the FAA as Light/Medium and keep that value. On the Free plan the airport, wake and usage leaves and remarks are null.
What people use it for
- Airport Planning
- Check whether an aircraft type fits a gate, taxiway or hangar from its wingspan, length, tail height, design group and taxiway design group.
- Flight Tracking Apps
- Show the aircraft behind an ADS-B type code with its manufacturer, model, size and wake category.
- Aviation Training
- Look up approach speeds and categories, wake turbulence classes and separation categories for study material and simulators.
- Operations and Fees
- Price landing or parking fees by maximum takeoff weight and parking area, and group fleets by weight class.
Ways to call it
One endpoint, many ways in — REST with JSON, XML, YAML and CSV, plus GraphQL and an MCP interface for AI agents.
- JSON
- Default REST response
- XML
- Markup format
- YAML
- Human-readable
- CSV
- Tabular export
- GraphQL
- Query language
- MCP
- For AI agents
Other ways to use Aircraft Types
Same data, same APIVerve account, same credit balance — one key works on all of them.
Which aircraft types are covered?
What does the Free plan return?
Does it include cruise speed, range or service ceiling?
Why are there two wingspans?
How many credits does a lookup use?
Request parameters — GET /v1/aircrafttypes
Sent in the query string. Premium parameters are accepted on every plan but only take effect on plans that include them. Anything not listed here is dropped rather than passed through.
Optional
| Parameter | Type | Example | Description |
|---|---|---|---|
icaoOptional | string | B738 | ICAO aircraft type designator, for example B738, A20N or C172. When given, the other search parameters are ignored length 0-4 |
manufacturerOptional | string | Airbus | Manufacturer name or part of it, for example Boeing, Airbus or Cessna length 0-60 |
modelOptional | string | 737 | Model name or part of it, for example 737, A320 or Citation length 0-60 |
engineTypeOptional | string | jet | Only types with this engine classjetturboproppistonturboshaftelectric |
wakeCategoryOptional | string | heavy | Only types in this ICAO wake turbulence categorylightmediumheavysuper |
enginesOptional | integer | 2 | Only types with this number of engines range 1-8 |
limitOptional | integer | 10 | Maximum number of types to return, 1-50 default 10 · range 1-50 |
curl "https://api.apiverve.com/v1/aircrafttypes?icao=B738&manufacturer=Airbus&model=737&engineType=jet&wakeCategory=heavy&engines=2&limit=10" \
-H "x-api-key: YOUR_API_KEY"Authentication
Send your key in the x-api-key header. That is the only auth step — no token exchange, and no per-endpoint scope to configure.
| Header | When | Value |
|---|---|---|
x-api-keyRequired | Every request | Your API key. Header names are case-insensitive, so X-API-Key is the same header. |
AuthorizationAlternate | Instead of the above | Bearer <key> — for clients that only expose bearer auth. Resolves to the same account and the same billing. |
A 401 means the key is missing, invalid or expired. A 403 means the key is valid but not permitted here — blocked by a key restriction or an IP allow-list. Running out of credits is a 429.
Response — GET /v1/aircrafttypes
Every APIVerve endpoint returns the same three top-level keys, so one response handler covers your whole integration: status, error and data. Only data changes shape.
{
"status": "ok",
"error": null,
"data": {
"count": 1,
"returned": 1,
"types": [
{
"icaoCode": "B738",
"faaDesignator": "B738",
"manufacturer": "BOEING",
"model": "Boeing 737-800",
"variant": "Boeing B737-800",
"aircraftClass": "Fixed-wing",
"engineType": "Jet",
"engineCount": 2,
"wingspanFt": 117.4,
"wingspanWithoutWingletsFt": 112.6,
"hasWinglets": true,
"lengthFt": 129.5,
"tailHeightFt": 41.4,
"maxTakeoffWeightLb": 174200,
"maxLandingWeightLb": 146275,
"approachSpeedKnots": 144,
"approachSpeedRangeKnots": {
"min": 140,
"max": 144
},
"approachCategory": "D",
"designGroup": "III",
"icaoWakeCategory": "Medium",
"faaWeightClass": "Large",
"metric": {
"wingspanM": 35.78,
"lengthM": 39.47,
"tailHeightM": 12.62,
"maxTakeoffWeightKg": 79016,
"maxLandingWeightKg": 66349
},
"airport": {
"taxiwayDesignGroup": "3",
"wheelbaseFt": 51.2,
"cockpitToMainGearFt": 56.4,
"mainGearWidthFt": 23,
"mainGearConfig": "D",
"parkingAreaFt2": 16487,
"parkingAreaM2": 1532,
"rotorDiameterFt": null
},
"wake": {
"consolidatedCategory": "F",
"recat15Category": "D",
"recat2CategoryA": "D",
"recat2CategoryB": "C",
"sameRunwaySeparation": "III",
"lahsoGroup": "8"
},
"usage": {
"usRegistered": true,
"usRegistrations": 971,
"annualFlightPlanOperations": 2484764,
"operationsYear": 2024
},
"remarks": "Depending on flaps configuration and MALW, AAC could be C. AAC validated by Flight Standardization Board (FSB) report.",
"lastUpdated": null
}
]
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
count | number | 1 | Number of types that match |
returned | number | 1 | Number of types in this response |
types | array[1] | Matching aircraft types, the most-flown first | |
icaoCode | string | "B738" | ICAO aircraft type designator |
faaDesignator | string | "B738" | FAA aircraft type designator |
manufacturer | string | "BOEING" | Aircraft manufacturer |
model | string | "Boeing 737-800" | FAA model name |
variant | string | "Boeing B737-800" | Representative variant the figures describe |
aircraftClass | string | "Fixed-wing" | Fixed-wing, Amphibian, Tiltrotor, Helicopter or Gyrocopter |
engineType | string | "Jet" | Engine class: Jet, Turboprop, Piston, Turboshaft or Electric |
engineCount | number | 2 | Number of engines |
wingspanFt | number | 117.4 | Wingspan in feet, with winglets where the type has them |
wingspanWithoutWingletsFt | number | 112.6 | Wingspan in feet without winglets or sharklets |
hasWinglets | boolean | true | Whether a winglet or sharklet version has a larger span |
lengthFt | number | 129.5 | Overall length in feet |
tailHeightFt | number | 41.4 | Tail height at operating empty weight, in feet |
maxTakeoffWeightLb | number | 174200 | Maximum takeoff weight in pounds |
maxLandingWeightLb | number | 146275 | Maximum allowable landing weight in pounds |
approachSpeedKnots | number | 144 | Approach speed at maximum landing weight, in knots |
approachSpeedRangeKnots | object | {...} | Lowest and highest approach speed where the FAA lists two |
min | number | 140 | Lowest approach speed in knots |
max | number | 144 | Highest approach speed in knots |
approachCategory | string | "D" | Aircraft approach category, A to E |
designGroup | string | "III" | Airplane design group, I to VI, from wingspan and tail height |
icaoWakeCategory | string | "Medium" | ICAO wake turbulence category: Light, Medium, Heavy or Super |
faaWeightClass | string | "Large" | FAA weight class: Small, Small+, Large, Heavy or Super |
metric | object | {...} | Dimensions and weights in metric units |
wingspanM | number | 35.78 | Wingspan in metres |
lengthM | number | 39.47 | Length in metres |
tailHeightM | number | 12.62 | Tail height in metres |
maxTakeoffWeightKg | number | 79016 | Maximum takeoff weight in kilograms |
maxLandingWeightKg | number | 66349 | Maximum landing weight in kilograms |
airportPremium | object | {...} | Airport planning geometry |
taxiwayDesignGroupPremium | string | "3" | Taxiway design group (1A to 7) |
wheelbaseFtPremium | number | 51.2 | Distance between main and nose gear in feet |
cockpitToMainGearFtPremium | number | 56.4 | Cockpit to main gear distance in feet |
mainGearWidthFtPremium | number | 23 | Distance between the outer main gear tires in feet |
mainGearConfigPremium | string | "D" | Main gear configuration code, for example S, D or 2D |
parkingAreaFt2Premium | number | 16487 | Minimum parking position area in square feet |
parkingAreaM2Premium | number | 1532 | Minimum parking position area in square metres |
rotorDiameterFtPremium | object | null | Rotor diameter of helicopters and tiltrotors, in feet |
wakePremium | object | {...} | Wake turbulence and runway separation categories |
consolidatedCategoryPremium | string | "F" | FAA consolidated wake turbulence category, A (largest) to I |
recat15CategoryPremium | string | "D" | RECAT 1.5 wake category, A to F |
recat2CategoryAPremium | string | "D" | RECAT 2 wake category (Appendix A) |
recat2CategoryBPremium | string | "C" | RECAT 2 wake category (Appendix B) |
sameRunwaySeparationPremium | string | "III" | Same runway separation category, I to III |
lahsoGroupPremium | string | "8" | Land and hold short operations group, 1 to 10 |
usagePremium | object | {...} | US registration and traffic |
usRegisteredPremium | boolean | true | Whether the type appears on the FAA aircraft register |
usRegistrationsPremium | number | 971 | Number of US-registered aircraft of the type |
annualFlightPlanOperationsPremium | number | 2484764 | Flight-plan operations of the type in the US National Airspace System over the year |
operationsYearPremium | number | 2024 | Fiscal year of the operations count |
remarksPremium | string | "Depending on flaps configuration and MALW, AAC could be C. AAC validated by Flight Standardization Board (FSB) report." | The FAA's remarks on the type's figures |
lastUpdated | object | null | Date the FAA last revised the record, when given |
Response headers
Every response carries your balance, so your own code always knows where it stands without polling anything. All four are exposed to browsers through CORS.
| Header | What it carries |
|---|---|
x-api-remaining-credits | Credits left in the current cycle |
x-api-credits-used | Credits spent in the current cycle |
x-api-max-credits | The allowance for the cycle |
x-api-version | Version of the endpoint that answered |
Errors
Read the HTTP status first, then error for the specific reason. The body names the parameter that has to change.
| Status | Meaning | What to do |
|---|---|---|
400 | Input was rejected | Read error; it names the parameter that has to change. |
401 | Key missing or invalid | Check the header name and the key value. |
403 | Key valid, but not permitted here | A key restriction or an IP allow-list — never a bad key. |
429 | Rate limited, or out of credits | Read error to tell them apart, then back off or top up. |
What a call costs — 1 credits per call
Credits are shared across every APIVerve API — one balance, one key, one bill. Failed requests never count against it, so a rejected input costs nothing.
| Plan | Per month | Credits | Aircraft Types calls | Per 1,000 calls |
|---|---|---|---|---|
| Free | Free | 200 | 200 | Free |
| Starter | $29.99 | 200,000 | 200,000 | $0.15 |
| Pro | $99.99 | 1,000,000 | 1,000,000 | $0.10 |
| Mega | $299.99 | 4,000,000 | 4,000,000 | $0.07 |
Calls are what the credits buy at this API's rate — spend them here, on any of the other APIs, or across both. Nothing is reserved per endpoint.
Call it from cURL — GET /v1/aircrafttypes
No SDK to install — this is a plain HTTPS call to /v1/aircrafttypes with your key in the x-api-key header. Swap in a real key and it runs as-is.
curl "https://api.apiverve.com/v1/aircrafttypes" \
-H "x-api-key: YOUR_API_KEY"Resources
Call it from Node.js — GET /v1/aircrafttypes
No SDK to install — this is a plain HTTPS call to /v1/aircrafttypes with your key in the x-api-key header. Swap in a real key and it runs as-is.
const res = await fetch("https://api.apiverve.com/v1/aircrafttypes", {
headers: { "x-api-key": "YOUR_API_KEY" },
});
const { data } = await res.json();
console.log(data);Resources
Call it from Python — GET /v1/aircrafttypes
No SDK to install — this is a plain HTTPS call to /v1/aircrafttypes with your key in the x-api-key header. Swap in a real key and it runs as-is.
import requests
res = requests.get(
"https://api.apiverve.com/v1/aircrafttypes",
headers={"x-api-key": "YOUR_API_KEY"},
)
print(res.json()["data"])Resources
Call it from C# / .NET — GET /v1/aircrafttypes
No SDK to install — this is a plain HTTPS call to /v1/aircrafttypes with your key in the x-api-key header. Swap in a real key and it runs as-is.
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var json = await client.GetStringAsync("https://api.apiverve.com/v1/aircrafttypes");
Console.WriteLine(json);Resources
Call it from Go — GET /v1/aircrafttypes
No SDK to install — this is a plain HTTPS call to /v1/aircrafttypes with your key in the x-api-key header. Swap in a real key and it runs as-is.
req, _ := http.NewRequest("GET", "https://api.apiverve.com/v1/aircrafttypes", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))Resources
Call it from PHP — GET /v1/aircrafttypes
No SDK to install — this is a plain HTTPS call to /v1/aircrafttypes with your key in the x-api-key header. Swap in a real key and it runs as-is.
$ch = curl_init("https://api.apiverve.com/v1/aircrafttypes");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-api-key: YOUR_API_KEY"]);
$response = curl_exec($ch);
echo $response;Resources
Call it from Ruby — GET /v1/aircrafttypes
No SDK to install — this is a plain HTTPS call to /v1/aircrafttypes with your key in the x-api-key header. Swap in a real key and it runs as-is.
require "net/http"
uri = URI("https://api.apiverve.com/v1/aircrafttypes")
req = Net::HTTP::Get.new(uri)
req["x-api-key"] = "YOUR_API_KEY"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
puts res.bodyResources
Zero-code embed — one snippet, no backend
Drop an interactive Aircraft Types form onto any page. The widget calls the API for you, so no key ever appears in your markup and there is nothing to deploy.
Changelog — Aircraft Types API
Every change to this endpoint, newest first. Breaking changes ship as a new version and the previous one keeps serving — response fields are added, never removed or retyped in place, so an integration written against v1 keeps working.
Entries are picked up from dated catalog snapshots, so the first one appears after the next snapshot that moves something. A period where nothing changed produces no entry — silence is a valid changelog for the Aircraft Types API.
Transportation
- Aircraft Types
- Airline Lookup
- Airport Code Converter
- Airport Distance
- Airports Lookup
- DTC Lookup
- EV Charging Stations
- Motor Carrier Lookup
- Travel Entry Requirements
- US Car Models
- Vehicle Fuel Economy
- VIN Decoder
- Visa Requirements