canonical: https://jentic.com/apis/lufthansa.com/lh-public-api

# Lufthansa LH Public API

The LH Public API exposes Lufthansa's openly available flight operations and reference data: live flight status, schedules, cargo routing and shipment tracking, lounge information, seat maps, and reference lookups for airports, aircraft, airlines, cities, and countries. It is the operational counterpart to the partner-only commerce API and uses OAuth 2.0 authorization-code flow against api.lufthansa.com. The 15 endpoints make it suitable for travel apps, status dashboards, and AI travel concierges that need authoritative airline data.

## For AI agents

Look up live Lufthansa flight status, schedules, seat maps, lounge details, cargo routing, and airline reference data such as airports, aircraft, and city codes.

## Scope

Does not handle bookings, ticket issuance, payment, or partner fare deep-linking - use for Lufthansa flight status, schedules, seat maps, lounges, cargo tracking, and reference data only.

## Capabilities

- Pull live flight status by flight number, route, or arrival/departure airport with a fromDateTime cursor
- Retrieve schedules between two airports for a future date and time window
- Render a seat map for a specific flight number, route, date, and cabin class
- Look up lounge information for a given airport location code
- Retrieve cargo routing between two airports and track an air waybill (AWB) shipment
- Resolve reference data for aircraft codes, airline codes, airport codes, city codes, country codes, and nearest airports to a coordinate

## Use cases

### Live flight status and schedules in a travel concierge

An AI travel concierge or status board needs authoritative Lufthansa flight times, gate and terminal data, and on-the-day deviations rather than scraped third-party feeds. The `/operations/flightstatus` endpoints return per-flight, per-route, and per-airport status, while `/operations/schedules` returns the published schedule between two airports for a future date. This combination supports both same-day disruption handling and forward-looking trip planning.

Example prompt: Call GET `/operations/flightstatus/LH400/2026-09-15` and return the scheduled and actual departure times plus the gate.

### Cargo shipment tracking

Freight forwarders and operations teams use the `/cargo/shipmentTracking/{aWBPrefix}-{aWBNumber}` endpoint to look up the current status of an air waybill shipped on Lufthansa Cargo, and `/cargo/getRoute` to confirm available routings between two airports for a date and product code. This avoids polling Lufthansa Cargo's web portal and lets AI agents answer 'where is my shipment?' in chat.

Example prompt: Track AWB 220-12345678 via `/cargo/shipmentTracking/220-12345678` and return the latest status event and location.

### Reference data for travel apps

Travel apps frequently need to resolve a free-text airport, city, or aircraft code into structured metadata. The /references endpoints cover airports (including nearest by lat/long), airlines, aircraft, cities, and countries, returning canonical names and codes. This replaces shipping a static dataset and keeps the app aligned with Lufthansa's authoritative reference catalogue.

Example prompt: Call GET `/references/airports/nearest/52.5200`,13.4050 and return the three nearest airports to Berlin coordinates.

### Agent-driven Lufthansa operations lookup via Jentic

An agent answering passenger questions in chat needs to mix flight status, seat map availability, and lounge access in a single conversation without juggling OAuth flows or memorising endpoint shapes. Jentic stores the OAuth credentials, exposes each Lufthansa Public operation by intent, and returns results the agent can quote directly to the passenger.

Example prompt: Search Jentic for 'lufthansa flight status', load the operation, and execute it for flight LH401 on today's date.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/operations/flightstatus/{flightNumber}/{date}` | Live status for a specific flight on a date |
| GET | `/operations/flightstatus/arrivals/{airportCode}/{fromDateTime}` | Arrivals board for an airport from a cursor time |
| GET | `/operations/schedules/{origin}/{destination}/{fromDateTime}` | Published schedules between two airports |
| GET | `/offers/seatmaps/{flightNumber}/{origin}/{destination}/{date}/{cabinClass}` | Seat map for a specific flight and cabin |
| GET | `/cargo/shipmentTracking/{aWBPrefix}-{aWBNumber}` | Track an air waybill |
| GET | `/references/airports/nearest/{latitude},{longitude}` | Nearest airports to a coordinate |
| GET | `/offers/lounges/{location}` | Lufthansa lounges at an airport location |

## Key resources

- **Flight Status** — Per-flight, per-route, and per-airport (arrivals/departures) status lookups
- **Schedules** — Published schedules between two airports for a future date and time
- **Seat Maps** — Seat map for a flight number, route, date, and cabin class
- **Lounges** — Lounge availability and detail for a given airport location
- **Cargo** — Cargo routing and shipment tracking by air waybill
- **References** — Airport, airline, aircraft, city, country, and nearest-airport lookups

## Why Jentic

- **Setup:** Wiring the LH Public API by hand means running its client-credentials OAuth flow, keeping the bearer token fresh, and pacing calls across flight-status, schedule, seat-map, lounge, and cargo paths. Through Jentic you install once, import the LH Public API from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** You choose which LH Public operations the agent may call, so you can limit it to the read operations it needs, such as flight status, published schedules, or seat maps, and leave out the rest. The agent only reaches the reference-data operations in the set you allow.
- **Credential handling:** Your LH Public client credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'Lufthansa flight status', 'seat map for a cabin', or 'nearest airport to a coordinate', and Jentic returns the matching LH Public operation with its parameter schema so the agent calls the right endpoint directly.

## Related APIs

- **LH Partner API** — Lufthansa's partner-only commerce API for fares, deep links, orders, and auto check-in
- **Amadeus Airport & City Search** — Multi-carrier airport and city reference lookup

## FAQ

### What authentication does the LH Public API use?

The LH Public API uses OAuth 2.0 with the authorization-code flow, with both authorizationUrl and tokenUrl at https://api.lufthansa.com/v1/oauth/token under the read:LH Open API scope. Through Jentic, the client credentials and authorization tokens are stored in your Jentic One instance and refreshed automatically.

### Can I track cargo shipments with the LH Public API?

Yes. Call GET `/cargo/shipmentTracking/{aWBPrefix}-{aWBNumber}` with the air waybill prefix and number to return the latest tracking events. Use `/cargo/getRoute/{origin}-{destination}/{fromDate}/{productCode}` first if you also need to confirm the routing for that shipment.

### What are the rate limits for the LH Public API?

Concrete rate limits are not declared in the OpenAPI spec. Lufthansa applies per-application caps once you register at the developer portal - design clients to back off on 429 responses and avoid polling `/operations/flightstatus` more aggressively than once per minute per flight.

### How do I retrieve a seat map through Jentic?

Search Jentic for 'lufthansa seat map', load the GET `/offers/seatmaps/{flightNumber}/{origin}/{destination}/{date}/{cabinClass}` operation, and execute it with the flight number, route, date, and cabin class. The OAuth token is injected automatically.

### Does the LH Public API include booking or order management?

No. Booking, fares, deep links, and order retrieval live in the partner-gated LH Partner API, not in this Public API. Use the Public API for operational data (status, schedules, seat maps, lounges) and reference lookups.

### Can I limit what my agent is allowed to do with the LH Public API?

Yes. Because your Jentic One instance is self-hosted, you decide which LH Public operations the agent may call, so you can allow just the read endpoints it needs, such as flight status, published schedules, or seat maps, and leave the rest out. The agent only reaches reference-data lookups like airport, aircraft, and city codes if you include them in the allowed set, and it can call cargo shipment tracking only when you permit it. Your own rules govern which operations and stored credentials the agent may use at execution time.
