American Airlines
American Airlines' own site — its published fares and award availability, flight status, reservation lookup, seat maps, baggage allowance and fee…
American Airlines' own site — its published fares and award availability, flight status, reservation lookup, seat maps, baggage allowance and fee schedules. Flight status, reservation lookup and the published baggage allowance for a route are live and browserless; the rest are declared stubs.
Domain: aa.com
Also known as: American Airlines, American, AA, aa.com, AAdvantage
Prefer the capability
bowmark.flights covers this provider and routes around it when it is having a bad day. Reach for this page when you need aa.com specifically.
Call it directly
bowmark.providers.aa.getFlightStatus({ date, flightNumber?, origin?, destination? }): Promise<aaFlightStatusResult>
bowmark.providers.aa.getBaggageAllowance({ origin, destination }: aaBaggageAllowanceArgs): Promise<aaBaggageAllowance>
bowmark.providers.aa.retrieveBooking({ recordLocator, lastName }: aaRetrieveBookingArgs): Promise<aaReservation>Functions
| Function | What it does |
|---|---|
getFlightStatus | An American Airlines flight's live status. |
getBaggageAllowance | American Airlines' published baggage allowance and fees for a ROUTE. |
retrieveBooking | Reads an existing American Airlines reservation by its six-letter record locator (PNR) and the passenger's last name — nothing is signed into, and both are the caller's own details, passed… |
Types
interface aaFlight {
flightNumber: string;
airlineCode: string;
flightStatus: string | null;
flightStatusKey: string | null;
flightStatusColor: string | null;
canceled: boolean;
diverted: boolean;
inFlight: boolean;
landed: boolean;
departure: aaAirportInfo;
arrival: aaAirportInfo;
equipment: aaEquipment;
disruptionMessage: string | null;
codeShare: boolean;
operatedBy: string | null;
marketingCarrier: string | null;
wifiAvailable: boolean | null;
powerPortAvailable: boolean | null;
}
interface aaAirportInfo {
airportCode: string;
cityName: string | null;
gate: string | null;
terminal: string | null;
state: string | null;
country: string | null;
baggageClaim: string | null;
scheduledTime: string | null;
estimatedTime: string | null;
actualTime: string | null;
scheduledBoardingTime: string | null;
estimatedBoardingTime: string | null;
}
interface aaEquipment {
tailNumber: string | null;
equipmentCode: string | null;
iataName: string | null;
displayName: string | null;
}
interface aaFlightStatusResult {
date: string;
flightNumber: string | null;
origin: string | null;
destination: string | null;
flights: aaFlight[];
}
interface aaReservation {
recordLocator: string;
status: string | null;
bookingTime: string | null;
passengers: aaReservationPassenger[];
itinerary: aaReservationSlice[];
}
interface aaReservationPassenger {
firstName: string | null;
lastName: string | null;
passengerID: string | null;
paxType: string | null;
loyaltyNumber: string | null;
ticketNumbers: string[];
}
interface aaReservationSlice {
segments: aaReservationSegment[];
}
interface aaReservationSegment {
flightNumber: string | null;
marketingCarrierCode: string | null;
operatingCarrierCode: string | null;
cabinType: string | null;
bookingCode: string | null;
departureDateTime: string | null;
legs: aaReservationLeg[];
}
interface aaReservationLeg {
originAirportCode: string | null;
originCity: string | null;
destinationAirportCode: string | null;
destinationCity: string | null;
}
interface aaRetrieveBookingArgs {
/** Exactly six letters — American's own record-locator format. */
recordLocator: string;
/** The passenger's last name, exactly as it appears on the reservation. */
lastName: string;
}
interface aaBaggageAllowanceArgs {
/** The country flown FROM — an ISO-3166 alpha-2 code ("US", "GB") or a country
* name in any capitalisation. Not an airport code: American publishes bag fees
* by region and its regions are lists of countries, and no surface on its
* estate resolves an airport to one. */
origin: string;
/** The country flown TO, same forms. */
destination: string;
}
interface aaBaggageAllowance {
origin: aaBaggageEndpoint;
destination: aaBaggageEndpoint;
/** Which row of American's fee table this trip landed on, and how. */
feeRegion: {
label: string;
matchedOn: "country" | "region" | "region-members";
matchedEndpoint: "origin" | "destination";
};
checkedBagFees: aaCheckedBagFee[];
checkedBagLimits: aaCheckedBagLimits;
carryOn: aaCarryOnAllowance;
freeCheckedBags: aaFreeCheckedBagRule[];
/** Null when American's own bag-count rule names neither end of the trip. */
maxCheckedBags: number | null;
maxCheckedBagsRules: aaMaxCheckedBagsRule[];
footnotes: string[];
sources: string[];
}
interface aaBaggageEndpoint {
input: string;
countryCode: string;
countryName: string;
/** Null for a country American files under no bag region — Mexico is the live
* case, and the fee table names it directly instead. */
region: string | null;
}
interface aaCheckedBagFee {
/** "1", "2", "3", "4+". */
bag: string;
/** The cell verbatim, e.g. "$0 / $85*". */
display: string;
/** Every dollar figure in the cell, in the order printed. */
amountsUsd: number[];
footnoteMarkers: string[];
}
interface aaCheckedBagLimits {
maxLinearInches: number | null;
maxLinearCm: number | null;
maxWeightPounds: number | null;
maxWeightKilos: number | null;
notes: string[];
}
interface aaCarryOnAllowance {
carryOnBags: number;
personalItems: number;
carryOnMaxInches: number[];
carryOnMaxCm: number[];
personalItemMaxInches: number[];
personalItemMaxCm: number[];
}
interface aaFreeCheckedBagRule {
bags: number;
qualifiers: string[];
}
interface aaMaxCheckedBagsRule {
count: number;
applies: string[];
}Related
flights | Flights — the capability this provider backs. |
cheapflights | Also backs the same capability. |
google_flights | Also backs the same capability. |
kayak | Also backs the same capability. |
momondo | Also backs the same capability. |