openapi: 3.0.1
info:
title: Lufthansa LH Public API
description: ""
license:
name: LH
url: https://developer.lufthansa.com
version: "1.0"
servers:
- url: https://api.lufthansa.com/v1
paths:
/references/countries/{countryCode}:
get:
tags:
- Reference Data
summary: Lufthansa Countries
description: List all countries or one specific country. It is possible to request the response in a specific language.
operationId: ReferencesCountriesByCountryCodeGet
parameters:
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: countryCode
in: path
description: 2-letter ISO 3166-1 country code
required: true
schema:
type: string
default: DK
- name: lang
in: query
description: 2 letter ISO 3166-1 language code
schema:
type: string
- name: limit
in: 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)"
schema:
type: string
default: "20"
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
default: "0"
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/references/cities/{cityCode}:
get:
tags:
- Reference Data
summary: Lufthansa Cities
description: List all cities or one specific city. It is possible to request the response in a specific language.
operationId: ReferencesCitiesByCityCodeGet
parameters:
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: cityCode
in: path
description: 3-letter IATA city code
required: true
schema:
type: string
default: BER
- name: lang
in: query
description: 2 letter ISO 3166-1 language code
schema:
type: string
- name: limit
in: 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)"
schema:
type: string
default: "20"
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
default: "0"
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/references/airports/{airportCode}:
get:
tags:
- Reference Data
summary: Lufthansa Airports
description: List all airports or one specific airport. All airports response is very large. It is possible to request the response in a specific language.
operationId: ReferencesAirportsByAirportCodeGet
parameters:
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: airportCode
in: path
description: 3-letter IATA airport code
required: true
schema:
type: string
default: TXL
- name: lang
in: query
description: 2-letter ISO 3166-1 language code
schema:
type: string
- name: limit
in: 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)"
schema:
type: string
default: "20"
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
default: "0"
- name: LHoperated
in: query
description: "Restrict the results to locations with flights operated by LH (false=0, true=1)"
schema:
type: boolean
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/AirportResponse'
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/references/airports/nearest/{latitude},{longitude}:
get:
tags:
- Reference Data
summary: Lufthansa Nearest Airports
description: "List the 5 closest airports to the given latitude and longitude, irrespective of the radius of the reference point."
operationId: ReferencesAirportsNearestByLatitudeAndLongitudeGet
parameters:
- name: latitude
in: path
description: Latitude in decimal format to at most 3 decimal places
required: true
schema:
type: integer
format: int32
- name: longitude
in: path
description: Longitude in decimal format to at most 3 decimal places
required: true
schema:
type: integer
format: int32
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: lang
in: query
description: 2 letter ISO 3166-1 language code
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/references/airlines/{airlineCode}:
get:
tags:
- Reference Data
summary: Lufthansa Airlines
description: List all airlines or one specific airline.
operationId: ReferencesAirlinesByAirlineCodeGet
parameters:
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: airlineCode
in: path
description: 2-character IATA airline/carrier code
required: true
schema:
type: string
default: LH
- name: limit
in: 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)"
schema:
type: string
default: "20"
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
default: "0"
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/references/aircraft/{aircraftCode}:
get:
tags:
- Reference Data
summary: Lufthansa Aircraft
description: List all aircraft types or one specific aircraft type.
operationId: ReferencesAircraftByAircraftCodeGet
parameters:
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: aircraftCode
in: path
description: 3-character IATA aircraft code
required: true
schema:
type: string
default: 33P
- name: limit
in: 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)"
schema:
type: string
default: "20"
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
default: "0"
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/offers/seatmaps/{flightNumber}/{origin}/{destination}/{date}/{cabinClass}:
get:
tags:
- Offers
summary: Lufthansa Seat Maps
description: Cabin layout and seat characteristics.
operationId: OffersSeatmapsDestinationDateCabinClassByFlightNumberAndOriginGet
parameters:
- name: flightNumber
in: path
description: Flight number including carrier code and any suffix (e.g. 'LH2037')
required: true
schema:
type: string
- name: origin
in: path
description: Departure airport. 3-letter IATA airport code (e.g. 'TXL')
required: true
schema:
type: string
- name: destination
in: path
description: Destination airport. 3-letter IATA airport code (e.g. 'MUC')
required: true
schema:
type: string
- name: date
in: path
description: Departure date (YYYY-MM-DD)
required: true
schema:
type: string
- name: cabinClass
in: path
description: "Cabin class: 'M', 'E', 'C', 'F'. Some flights have fewer classes (Acceptable values are: \"M\", \"E\", \"C\", \"F\")"
required: true
schema:
type: string
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/offers/lounges/{location}:
get:
tags:
- Offers
summary: Lufthansa Lounges
description: Lounge information
operationId: OffersLoungesByLocationGet
parameters:
- name: location
in: path
description: 3-leter IATA airport or city code (e.g. 'ZRH')
required: true
schema:
type: string
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: cabinClass
in: query
description: "Cabin class: 'M', 'E', 'C', 'F' (Acceptable values are: \"\", \"M\", \"E\", \"C\", \"F\")"
schema:
type: string
- name: tierCode
in: query
description: "Frequent flyer level ('FTL', 'SGC', 'SEN', 'HON') (Acceptable values are: \"\", \"FTL\", \"SGC\", \"SEN\", \"HON\")"
schema:
type: string
- name: lang
in: query
description: Language code.
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/operations/flightstatus/{flightNumber}/{date}:
get:
tags:
- Operations
summary: Lufthansa Flight Status
description: "Status of a particular flight (boarding, delayed, etc.)."
operationId: OperationsFlightstatusByFlightNumberAndDateGet
parameters:
- name: flightNumber
in: path
description: Flight number including carrier code and any suffix (e.g. 'LH400')
required: true
schema:
type: string
- name: date
in: path
description: The departure date (YYYY-MM-DD) in the local time of the departure airport
required: true
schema:
type: string
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: limit
in: 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)"
schema:
type: string
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/operations/flightstatus/route/{origin}/{destination}/{date}:
get:
tags:
- Operations
summary: Lufthansa Flight Status by Route
description: Status of flights between a given origin and destination on a given date.
operationId: OperationsFlightstatusRouteDateByOriginAndDestinationGet
parameters:
- name: origin
in: path
description: 3-letter IATA airport (e.g. 'FRA')
required: true
schema:
type: string
- name: destination
in: path
description: 3-letter IATA airport code (e.g. 'JFK')
required: true
schema:
type: string
- name: date
in: path
description: Departure date (YYYY-MM-DD) in local time of departure airport
required: true
schema:
type: string
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: limit
in: 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)"
schema:
type: string
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/operations/flightstatus/arrivals/{airportCode}/{fromDateTime}:
get:
tags:
- Operations
summary: Lufthansa Flight Status at Arrival Airport
description: Status of all arrivals at a given airport up to 4 hours from the provided date time.
operationId: OperationsFlightstatusArrivalsByAirportCodeAndFromDateTimeGet
parameters:
- name: airportCode
in: path
description: 3-letter IATA aiport code (e.g. 'ZRH')
required: true
schema:
type: string
- name: fromDateTime
in: path
description: Start of time range in local time of arrival airport (YYYY-MM-DDTHH:mm)
required: true
schema:
type: string
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: limit
in: 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)"
schema:
type: string
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/operations/flightstatus/departures/{airportCode}/{fromDateTime}:
get:
tags:
- Operations
summary: Lufthansa Flight Status at Departure Airport
description: Status of all departures from a given airport up to 4 hours from the provided date time.
operationId: OperationsFlightstatusDeparturesByAirportCodeAndFromDateTimeGet
parameters:
- name: airportCode
in: path
description: Departure airport. 3-letter IATA airport code (e.g. 'HAM')
required: true
schema:
type: string
- name: fromDateTime
in: path
description: Start of time range in local time of departure airport (YYYY-MM-DDTHH:mm)
required: true
schema:
type: string
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: limit
in: 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)"
schema:
type: string
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/operations/schedules/{origin}/{destination}/{fromDateTime}:
get:
tags:
- Operations
summary: Lufthansa Flight Schedules
description: Scheduled flights between given airports on a given date.
operationId: OperationsSchedulesFromDateTimeByOriginAndDestinationGet
parameters:
- name: origin
in: path
description: Departure airport. 3-letter IATA airport code (e.g. 'ZRH')
required: true
schema:
type: string
- name: destination
in: path
description: Destination airport. 3-letter IATA airport code (e.g. 'FRA')
required: true
schema:
type: string
- name: fromDateTime
in: 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"
required: true
schema:
type: string
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
- name: directFlights
in: query
description: "Show only direct flights (false=0, true=1). Default is false"
schema:
type: boolean
- name: limit
in: 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)"
schema:
type: string
- name: offset
in: query
description: Number of records skipped. Defaults to 0
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/cargo/shipmentTracking/{aWBPrefix}-{aWBNumber}:
get:
tags:
- Cargo
summary: Lufthansa Shipment Tracking
description: With this tracking service you can easily retrieve your shipment or flight status information.
operationId: CargoShipmentTrackingByAWBPrefixAndAWBNumberGet
parameters:
- name: aWBPrefix
in: 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"
required: true
schema:
type: string
- name: aWBNumber
in: path
description: "aWBNumber : The Air Waybill Number , format : [0-9]{8} e.g. 08002050"
required: true
schema:
type: string
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/cargo/getRoute/{origin}-{destination}/{fromDate}/{productCode}:
get:
tags:
- Cargo
summary: Lufthansa Retrieve all flights
description: 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.
operationId: CargoGetRouteFromDateProductCodeByOriginAndDestinationGet
parameters:
- name: origin
in: path
description: "Departure Airport : 3-letter IATA airport code, e.g. FRA."
required: true
schema:
type: string
- name: destination
in: path
description: "Arrival airport : 3-letter IATA airport code, e.g. HKG."
required: true
schema:
type: string
- name: fromDate
in: 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"
required: true
schema:
type: string
- name: productCode
in: path
description: "Product code for requested service and specials : 3-letter eg: YNZ"
required: true
schema:
type: string
enum:
- FAN
- FCO
- FCP
- FDG
- FTF
- FUN
- FWN
- YCO
- YCP
- YDG
- YNB
- YNZ
- YTF
- YUN
- ZXB
- ZXF
- ZXR
- name: Accept
in: header
description: "http header: application/json or application/xml (Acceptable values are: \"application/json\", \"application/xml\")"
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
security:
- auth: []
x-unitTests: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
components:
schemas:
Coordinate:
type: object
properties:
Latitude:
type: number
description: "Decimal latitude. Range: -90 (South Pole) to +90 (North Pole), e.g. “51.540”."
format: float
Longitude:
type: number
description: "Decimal longitude. Range: -180 (West of Prime Meridian) to +180 (East of Prime Meridian)."
format: float
description: Container for coordinates.
Name:
type: object
properties:
'@LanguageCode':
type: string
$:
type: string
description: 2-letter ISO 639-1 language code for the corresponding item.
Link:
type: object
properties:
'@Href':
type: string
description: Link to actual a resource.
'@Rel':
type: string
description: "Specifying kind of link such as ‘self’ (link that returned this response), ‘alternate’ (link that points to another resource) or ‘related’ (link that points to related resource)."
Airport:
type: object
properties:
AirportCode:
type: string
description: "3-letter IATA airport code, e.g. “TXL”."
Position:
type: object
properties:
Coordinate:
$ref: '#/components/schemas/Coordinate'
description: Physical location of an airport. This data section is optional and therefore not always present.
CityCode:
type: string
description: "3-letter IATA city code, e.g. “BER”."
CountryCode:
type: string
description: "2-letter ISO 3166-1 country code, e.g. “DE”."
LocationType:
type: string
description: " “Airport”, “RailwayStation” or “BusStation”."
Names:
type: object
properties:
Name:
type: array
description: "Array: language specific full name of airport."
items:
$ref: '#/components/schemas/Name'
description: Container for airport names.
UtcOffset:
type: number
description: Hour offset of airport to UTC time zone
format: float
TimeZoneId:
type: string
description: Time zone name airport is in
description: Array of all available airports or one airport matching the request.
AirportResource:
type: object
properties:
Airports:
type: object
properties:
Airport:
$ref: '#/components/schemas/Airport'
description: Container for airport elements.
Meta:
type: object
properties:
'@Version':
type: string
Link:
type: array
description: "Array: links to resource itself and other related resources."
items:
$ref: '#/components/schemas/Link'
TotalCount:
type: integer
format: int32
description: Container for meta links.
description: Root element of airport response.
AirportResponse:
type: object
properties:
AirportResource:
$ref: '#/components/schemas/AirportResource'
securitySchemes:
auth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://api.lufthansa.com/v1/oauth/token
tokenUrl: https://api.lufthansa.com/v1/oauth/token
scopes:
read:LH Open API: read access
tags:
- name: Cargo
- name: Offers
- name: Operations
- name: Reference Data