Airline Confirmation Extraction

Retrieve Flight Number, Booking Reference, and Passenger Details from Any Airline Confirmation Screenshot

Manually typing flight details from airline confirmation emails into your expense sheet takes roughly 2 minutes per booking — each airline formats the PNR, flight times, and route completely differently. This extracts all fields from any airline confirmation screenshot in 5-10 seconds.

5-10s per screenshot · Up to 99% accuracy on printed text

Flight # · PNR · Times
Delta · United · BA · OTA
Named Columns

Eight Fields in Every Airline Confirmation

With Custom Column Extraction, you name the fields you need — each carrier places data in different spots, but the AI reads by meaning, not position.

Content — What the Booking Says
Passenger Name

Full name — "John Smith" or "SMITH/JOHN MR" — the AI reads both formats.

Flight Number + Times

AA100 or "American Airlines 100," 14:30 or 2:30 PM — both formats into separate Flight Number and Departure/Arrival columns.

Route (From → To)

"LHR→JFK" or "London Heathrow to New York JFK" — either format maps consistently.

Booking Reference (PNR)

Six-character code — varies by airline placement, found by label relationship.

Native — What the Sender's UI Reveals
Fare / Price

Total or itemized — varies by airline

Sender (Airline/OTA)

The sending brand — Delta, United, Expedia

Confirmation Status

"Confirmed," "Ticketed," "On Request"

Every Airline Formats the Same Booking Data Differently — and OTAs Add Another Layer

Delta, United, British Airways, and Expedia all need to show you the same information. Each puts those pieces in different places, uses different time formats, and labels the same fields with different names.

01

The PNR Location and Label Change Across Every Airline

Delta puts it in a bold "Confirmation Number" card. United labels it "Confirmation #" in a header bar. BA calls it a "Booking Reference" in small print. Expedia says "Itinerary ID." A template-based parser needs a separate rule for each — the same six characters, six different positions and labels.

02

Flight Times Use Mixed Formats — 12h, 24h, UTC

One airline shows "14:30" (24-hour, local). Another writes "2:30 PM" (12-hour, no timezone). A third shows departure and arrival in UTC. On the same trip a Delta leg and a BA leg may use completely different conventions — every time requires individual parsing.

03

Route and Price Have No Standard Convention

"LHR→JFK" vs "London Heathrow to New York JFK." A single "Total" line vs itemized base fare, taxes, and fees. A Reddit traveler on r/travel captured the broader reality: "What got annoying for me was how messy it becomes once you have multiple bookings (flights, hotels, confirmations all mixed together)."

01

Semantic Extraction Reads Labels, Not Positions

Name a column Booking Reference and the AI reads the label-value relationship — Delta's bold card, BA's fine print, Expedia's itinerary header all resolve to the same column. The six-character alphanumeric code next to a booking-related label is recognized regardless of where on the screen it appears.

02

One Column Definition for Every Time Format

Define Departure Time once — the AI reads 14:30, 2:30 PM, or 14:30 UTC into the same column. Want standardization? Add a hint: Departure Time (24h). Same logic applies to dates, route names, and fares.

03

Batch Across Airlines and OTAs in One Pass

Mix Delta direct emails, BA confirmations, and Expedia screenshots in one batch. Define Flight Number, PNR, Departure, Route, Passenger, Fare once. Each screenshot becomes a row in one itinerary spreadsheet — no per-source setup.

From a Folder of Airline Confirmations to a Clean Itinerary Spreadsheet

The Manual Way

You booked three flights this quarter — Delta domestic (DL 1234, PNR ABC123), BA to London (BA 178, XYZ789), and a United return booked through Expedia (UA 456, PNR 4MN6PQ). The Delta email puts the PNR in a bold card at the top and shows "14:30." BA calls it "Booking Reference" in fine print and writes "2:30 PM" with no timezone. Expedia hides the flight number in a table with 24-hour times. Each screenshot forces you to find the PNR in a different spot, parse a different time format, and type the route manually — roughly 2 minutes per booking.

With Custom Column Extraction

Drop all three into one batch. Type six column names — Flight Number, PNR, Departure Time, Route, Passenger, Fare. ABC123 (Delta's bold card), XYZ789 (BA's fine print), and 4MN6PQ (Expedia's table) all resolve to the PNR column. 14:30, 2:30 PM, and 14:30 UTC land in the same Departure Time column. 5-10 seconds per screenshot — one export, three rows, every field in the columns you defined.

Where Airline Confirmation Extraction Works Best — and Where It Doesn't

When It Works Best

Full-confirmation screenshots from email or mobile app. Machine-rendered text scores up to 99% accuracy. Capture the full confirmation, not cropped views.

Batch processing across airlines and OTAs. One column set extracts from Delta, United, BA, Expedia, and Kayak in a single batch — each becomes a row in the same spreadsheet.

Travel expense reconciliation. Extracted rows feed directly into your travel log — flight number, route, times, and fare in one pass.

When to Be Cautious

Multi-segment itineraries across separate screenshots. The AI processes each image independently — it does not auto-stitch round-trip or connecting segments. Capture each flight segment separately and merge after export using the shared PNR as a key.

Compressed screenshots forwarded through chat apps. SMS and WhatsApp compress images. Larger fields like the PNR remain readable, but small text — passenger name, fare breakdowns, timezone labels — becomes less reliable.

PNR in QR code only. The AI extracts visible text. If the booking reference is scannable-only with no printed code, use the email or manage-booking screenshot instead.

Frequently Asked Questions

Can I extract the PNR from an airline confirmation that only shows it inside a QR code?

The AI extracts visible text from the screenshot — encoded barcodes are not read as text. If your confirmation shows the booking reference only as a QR code without a printed six-character code beside it (some mobile-only boarding passes do this), use the confirmation email screenshot or the manage-booking page instead. Most airline emails print the PNR in the header or inside a labeled confirmation box, which the AI reads without issue.

Will the Flight Number and Route still extract if the screenshot shows "LHR→JFK" instead of full airport names?

Yes. The AI reads whatever route representation is on the screen — compact IATA codes like "LHR→JFK" and full-text formats like "London Heathrow (LHR) to New York JFK" both resolve to the Route column. The Flight Number is read independently as the airline code plus number (DL 1234, BA 178). If you need full airport names in the output, add a format hint to your column name — like Route (Full Name) — and the AI standardizes the values during extraction.

Can I mix airline direct emails and OTA confirmation screenshots from Expedia or Kayak in the same batch?

Same batch, same column set. Define Flight Number, PNR, Departure Time, Route, Passenger Name, Fare once and the AI processes every screenshot — whether it is a Delta email, a British Airways confirmation, or an Expedia booking page screen capture. Each screenshot becomes one row in the same itinerary spreadsheet. See the booking confirmations overview for the full cross-type capability.

How does the AI handle departure times shown in 12-hour vs 24-hour format across different airlines?

The AI returns times exactly as displayed on each screenshot. "2:30 PM" and "14:30" both appear in the Departure Time column in their original format. If you need standardized output, add a format instruction to your column name — Departure Time (24h) — and the AI converts to 24-hour format during extraction. The Date field is extracted separately and can include a format hint (YYYY-MM-DD) for consistent sorting.

What if the price breakdown shows base fare, taxes, and fees separately — can I extract them as individual columns?

Yes. Define separate columns per price component — Base Fare, Taxes & Fees, Total Fare — and the AI reads each labeled amount from the breakdown. If the airline or OTA shows only a single "Total" line, the AI maps it to your Total Fare column and leaves the component columns empty. This works across carriers: Delta itemizes differently than British Airways, but the same column definitions fill in whatever level of detail each confirmation provides. For expense reconciliation, having the Total Fare column reliably filled across all bookings is the practical win — component-level columns are a bonus where available.

Explore other booking confirmation scenarios: Booking confirmations overview — airline, hotel, ride, event, restaurant, delivery

Deep dive into the broader booking confirmation extraction challenge: Pulling order numbers and tracking codes from SMS booking confirmations from Amazon, eBay, and Shopee

If you need the entire confirmation turned into a structured table rather than specific itinerary fields, screenshot-to-Excel conversion may be what you're looking for.

📮 contact email: [email protected]