airline-passport-requirements
v1.0.0
Published
Comprehensive passport, document, and date-of-birth requirements for 792 airlines — typed helpers for domestic & international flights
Maintainers
Readme
airline-passport-requirements
Typed passport, document, and date-of-birth requirements for 792 airlines — covering both domestic and international flights.
Zero runtime dependencies. Ships ESM + CJS + TypeScript declarations.
Install
npm install airline-passport-requirementsQuick Start
import {
getAirlineByCode,
isPassportRequired,
getMandatoryFields,
determinePassengerType,
} from 'airline-passport-requirements';
// Look up an airline
const airline = getAirlineByCode('AA');
console.log(airline?.airlineName); // "American Airlines"
// Check passport requirement
isPassportRequired('AA', 'international'); // true
isPassportRequired('AA', 'domestic'); // false
// Get mandatory fields for international flights
getMandatoryFields('AA', 'international');
// ["fullName", "dateOfBirth", "gender", "nationality", "passportNumber", ...]
// Determine passenger type from age
determinePassengerType('AA', 8); // "child"API
Every helper accepts either an IATA airline code (string) or an AirlineRequirements object — so you can pass a code directly or reuse a previously-fetched object.
Data Exports
| Export | Description |
| --- | --- |
| passportRequirementsData | Full dataset (metadata + airlines + standards) |
| airlines | Array of all 792 airline entries |
| metadata | Version, last-updated date, notes |
| passengerTypeStandards | IATA default adult/child/infant definitions |
Lookup Functions
| Function | Returns |
| --- | --- |
| getAirlineByCode(code) | AirlineRequirements \| undefined |
| searchAirlinesByName(query) | AirlineRequirements[] — substring name search |
| getAirlinesByCountry(countryCode) | AirlineRequirements[] — filter by ISO country |
| getAirlinesWithData() | AirlineRequirements[] — only dataAvailable: true |
| getAllAirlineCodes() | string[] — every IATA code in the dataset |
| isValidAirlineCode(code) | boolean |
Requirement Functions
| Function | Returns |
| --- | --- |
| getRequirements(airline, flightType) | Domestic or international requirements section |
| isPassportRequired(airline, flightType) | boolean \| null |
| getMandatoryFields(airline, flightType) | string[] — mandatory field names |
| getDocumentField(airline, flightType, fieldName) | Single document field detail |
| getMandatoryDocumentsForPassenger(airline, flightType, paxType) | string[] — mandatory docs for ADT/CHD/INF |
| getAcceptedIdentityDocuments(airline) | string[] — domestic accepted IDs |
| getAdditionalDocuments(airline) | string[] — international additional docs |
| getPassportExpiryValidity(airline) | string \| null — e.g. "6_months_before_expiry" |
Validation Functions
| Function | Returns |
| --- | --- |
| getDobRequirement(airline, flightType, paxType) | Full DOB requirement object |
| isDobMandatory(airline, flightType, paxType) | boolean \| null |
| getPassengerTypeInfo(airline, paxType) | Age ranges, IATA code |
| getInfantMinimumAgeDays(airline) | number \| null |
| determinePassengerType(airline, ageInYears) | 'adult' \| 'child' \| 'infant' |
Types
All TypeScript interfaces are exported:
import type {
AirlineRequirements,
DomesticRequirements,
InternationalRequirements,
DocumentField,
DobRequirement,
FlightType, // 'domestic' | 'international'
PassengerType, // 'adult' | 'child' | 'infant'
AirlineInput, // string | AirlineRequirements
} from 'airline-passport-requirements';Data Coverage
- 792 airlines total
- Airlines with
dataAvailable: truehave full document/DOB requirements - Airlines with
dataAvailable: falseare listed with null values - Data sourced from IATA standards, airline policies, and country regulations
License
MIT
