Lufthansa website screenshot

Lufthansa

The Lufthansa Group is a global aviation group that plays a leading role in its European home market. The Lufthansa Open API developer portal exposes reference data, flight operations, offers, notifications, and cargo APIs secured with OAuth2 for partner and public consumers.

5 APIs 0 Features
AirlinesTravelAviationFlights

APIs

Lufthansa Public API

The Lufthansa Public API provides reference data for countries, cities, airports, airlines, and aircraft, plus flight schedules and real-time flight status by route, arrival air...

Lufthansa Partner API

The Lufthansa Partner API exposes deeplinks, fares, pricing offers, and seat details for integration partners. NDC capabilities including Smart Offer, NDC Bonus, Servicing, and ...

Lufthansa FlightOps and Crew API

The FlightOps and Crew API provides crew-specific services including check-in times, duty events, and weather information for operational use cases.

Lufthansa Cargo API

The Lufthansa Cargo API provides shipment tracking and LH CARGO flight routings.

Lufthansa Notifications API

The Notifications API delivers FlightUpdate notifications and JWT-based authentication tokens for streaming flight events.

Collections

Pricing Plans

Lufthansa Plans Pricing

2 plans

PLANS

Rate Limits

Lufthansa Rate Limits

2 limits

RATE LIMITS

FinOps

JSON Structure

Lufthansa Structure

0 properties

JSON STRUCTURE

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🌐
Portal
Portal
🔗
Documentation
Documentation
🔑
Authentication
Authentication
📝
Signup
Signup
📜
TermsOfService
TermsOfService

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Lufthansa LH Public API
  version: '1.0'
items:
- info:
    name: Reference Data
    type: folder
  items:
  - info:
      name: Lufthansa Countries
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/references/countries/:countryCode
      headers:
      - name: Accept
        value: ''
      params:
      - name: countryCode
        value: ''
        type: path
        description: 2-letter ISO 3166-1 country code
      - name: lang
        value: ''
        type: query
        description: 2 letter ISO 3166-1 language code
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: List all countries or one specific country. It is possible to request the response in a specific language.
  - info:
      name: Lufthansa Cities
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/references/cities/:cityCode
      headers:
      - name: Accept
        value: ''
      params:
      - name: cityCode
        value: ''
        type: path
        description: 3-letter IATA city code
      - name: lang
        value: ''
        type: query
        description: 2 letter ISO 3166-1 language code
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: List all cities or one specific city. It is possible to request the response in a specific language.
  - info:
      name: Lufthansa Airports
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/references/airports/:airportCode
      headers:
      - name: Accept
        value: ''
      params:
      - name: airportCode
        value: ''
        type: path
        description: 3-letter IATA airport code
      - name: lang
        value: ''
        type: query
        description: 2-letter ISO 3166-1 language code
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      - name: LHoperated
        value: ''
        type: query
        description: Restrict the results to locations with flights operated by LH (false=0, true=1)
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: List all airports or one specific airport. All airports response is very large. It is possible to request the response
      in a specific language.
  - info:
      name: Lufthansa Nearest Airports
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/references/airports/nearest/:latitude,:longitude
      headers:
      - name: Accept
        value: ''
      params:
      - name: latitude
        value: ''
        type: path
        description: Latitude in decimal format to at most 3 decimal places
      - name: longitude
        value: ''
        type: path
        description: Longitude in decimal format to at most 3 decimal places
      - name: lang
        value: ''
        type: query
        description: 2 letter ISO 3166-1 language code
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: List the 5 closest airports to the given latitude and longitude, irrespective of the radius of the reference point.
  - info:
      name: Lufthansa Airlines
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/references/airlines/:airlineCode
      headers:
      - name: Accept
        value: ''
      params:
      - name: airlineCode
        value: ''
        type: path
        description: 2-character IATA airline/carrier code
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: List all airlines or one specific airline.
  - info:
      name: Lufthansa Aircraft
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/references/aircraft/:aircraftCode
      headers:
      - name: Accept
        value: ''
      params:
      - name: aircraftCode
        value: ''
        type: path
        description: 3-character IATA aircraft code
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: List all aircraft types or one specific aircraft type.
- info:
    name: Offers
    type: folder
  items:
  - info:
      name: Lufthansa Seat Maps
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/offers/seatmaps/:flightNumber/:origin/:destination/:date/:cabinClass
      headers:
      - name: Accept
        value: ''
      params:
      - name: flightNumber
        value: ''
        type: path
        description: Flight number including carrier code and any suffix (e.g. 'LH2037')
      - name: origin
        value: ''
        type: path
        description: Departure airport. 3-letter IATA airport code (e.g. 'TXL')
      - name: destination
        value: ''
        type: path
        description: Destination airport. 3-letter IATA airport code (e.g. 'MUC')
      - name: date
        value: ''
        type: path
        description: Departure date (YYYY-MM-DD)
      - name: cabinClass
        value: ''
        type: path
        description: 'Cabin class: ''M'', ''E'', ''C'', ''F''. Some flights have fewer classes (Acceptable values are: "M",
          "E", "C", "F")'
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Cabin layout and seat characteristics.
  - info:
      name: Lufthansa Lounges
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/offers/lounges/:location
      headers:
      - name: Accept
        value: ''
      params:
      - name: location
        value: ''
        type: path
        description: 3-leter IATA airport or city code (e.g. 'ZRH')
      - name: cabinClass
        value: ''
        type: query
        description: 'Cabin class: ''M'', ''E'', ''C'', ''F'' (Acceptable values are: "", "M", "E", "C", "F")'
      - name: tierCode
        value: ''
        type: query
        description: 'Frequent flyer level (''FTL'', ''SGC'', ''SEN'', ''HON'') (Acceptable values are: "", "FTL", "SGC",
          "SEN", "HON")'
      - name: lang
        value: ''
        type: query
        description: Language code.
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Lounge information
- info:
    name: Operations
    type: folder
  items:
  - info:
      name: Lufthansa Flight Status
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/operations/flightstatus/:flightNumber/:date
      headers:
      - name: Accept
        value: ''
      params:
      - name: flightNumber
        value: ''
        type: path
        description: Flight number including carrier code and any suffix (e.g. 'LH400')
      - name: date
        value: ''
        type: path
        description: The departure date (YYYY-MM-DD) in the local time of the departure airport
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Status of a particular flight (boarding, delayed, etc.).
  - info:
      name: Lufthansa Flight Status by Route
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/operations/flightstatus/route/:origin/:destination/:date
      headers:
      - name: Accept
        value: ''
      params:
      - name: origin
        value: ''
        type: path
        description: 3-letter IATA airport (e.g. 'FRA')
      - name: destination
        value: ''
        type: path
        description: 3-letter IATA airport code (e.g. 'JFK')
      - name: date
        value: ''
        type: path
        description: Departure date (YYYY-MM-DD) in local time of departure airport
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Status of flights between a given origin and destination on a given date.
  - info:
      name: Lufthansa Flight Status at Arrival Airport
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/operations/flightstatus/arrivals/:airportCode/:fromDateTime
      headers:
      - name: Accept
        value: ''
      params:
      - name: airportCode
        value: ''
        type: path
        description: 3-letter IATA aiport code (e.g. 'ZRH')
      - name: fromDateTime
        value: ''
        type: path
        description: Start of time range in local time of arrival airport (YYYY-MM-DDTHH:mm)
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Status of all arrivals at a given airport up to 4 hours from the provided date time.
  - info:
      name: Lufthansa Flight Status at Departure Airport
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/operations/flightstatus/departures/:airportCode/:fromDateTime
      headers:
      - name: Accept
        value: ''
      params:
      - name: airportCode
        value: ''
        type: path
        description: Departure airport. 3-letter IATA airport code (e.g. 'HAM')
      - name: fromDateTime
        value: ''
        type: path
        description: Start of time range in local time of departure airport (YYYY-MM-DDTHH:mm)
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Status of all departures from a given airport up to 4 hours from the provided date time.
  - info:
      name: Lufthansa Flight Schedules
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/operations/schedules/:origin/:destination/:fromDateTime
      headers:
      - name: Accept
        value: ''
      params:
      - name: origin
        value: ''
        type: path
        description: Departure airport. 3-letter IATA airport code (e.g. 'ZRH')
      - name: destination
        value: ''
        type: path
        description: Destination airport. 3-letter IATA airport code (e.g. 'FRA')
      - name: fromDateTime
        value: ''
        type: path
        description: Local departure date and optionally departure time (YYYY-MM-DD or YYYY-MM-DDTHH:mm). When not provided,
          time is assumed to be 00:01
      - name: directFlights
        value: ''
        type: query
        description: Show only direct flights (false=0, true=1). Default is false
      - name: limit
        value: ''
        type: query
        description: Number of records returned per request. Defaults to 20, maximum is 100 (if a value bigger than 100 is
          given, 100 will be taken)
      - name: offset
        value: ''
        type: query
        description: Number of records skipped. Defaults to 0
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Scheduled flights between given airports on a given date.
- info:
    name: Cargo
    type: folder
  items:
  - info:
      name: Lufthansa Shipment Tracking
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/cargo/shipmentTracking/:aWBPrefix-:aWBNumber
      headers:
      - name: Accept
        value: ''
      params:
      - name: aWBPrefix
        value: ''
        type: path
        description: 'aWBPrefix : Represents the airline that is the owner of this AWB, i.e. "020" = Lufthansa Cargo, format
          : [0-9]{3} e.g. 020'
      - name: aWBNumber
        value: ''
        type: path
        description: 'aWBNumber : The Air Waybill Number , format : [0-9]{8} e.g. 08002050'
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: With this tracking service you can easily retrieve your shipment or flight status information.
  - info:
      name: Lufthansa Retrieve all flights
      type: http
    http:
      method: GET
      url: https://api.lufthansa.com/v1/cargo/getRoute/:origin-:destination/:fromDate/:productCode
      headers:
      - name: Accept
        value: ''
      params:
      - name: origin
        value: ''
        type: path
        description: 'Departure Airport : 3-letter IATA airport code, e.g. FRA.'
      - name: destination
        value: ''
        type: path
        description: 'Arrival airport : 3-letter IATA airport code, e.g. HKG.'
      - name: fromDate
        value: ''
        type: path
        description: 'Departure date in the local time of the departure airport. Based on LAT (Latest Acceptance Time). format
          : yyyy-MM-dd eg : 2017-07-15'
      - name: productCode
        value: ''
        type: path
        description: 'Product code for requested service and specials : 3-letter eg: YNZ'
      auth:
        type: oauth2
        flow: authorization_code
        authorizationUrl: https://api.lufthansa.com/v1/oauth/token
        accessTokenUrl: https://api.lufthansa.com/v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Retrieve a list of all possible flights (both direct and connecting) between two airports on a given date. Routes
      are available for today and up to days in the future.
bundled: true