Lufthansa · Capability
Lufthansa LH Public API — Offers
Lufthansa LH Public API — Offers. 2 operations. Lead operation: Lufthansa Lounges. Self-contained Naftiko capability covering one Lufthansa business surface.
What You Can Do
GET
Offersloungesbylocationget
— Lufthansa Lounges
/v1/offers/lounges/{location}
GET
Offersseatmapsdestinationdatecabinclassbyflightnumberandoriginget
— Lufthansa Seat Maps
/v1/offers/seatmaps/{flightnumber}/{origin}/{destination}/{date}/{cabinclass}
MCP Tools
lufthansa-lounges
Lufthansa Lounges
read-only
idempotent
lufthansa-seat-maps
Lufthansa Seat Maps
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Lufthansa LH Public API — Offers
description: 'Lufthansa LH Public API — Offers. 2 operations. Lead operation: Lufthansa Lounges. Self-contained Naftiko
capability covering one Lufthansa business surface.'
tags:
- Lufthansa
- Offers
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
LUFTHANSA_API_KEY: LUFTHANSA_API_KEY
capability:
consumes:
- type: http
namespace: lufthansa-offers
baseUri: https://api.lufthansa.com/v1
description: Lufthansa LH Public API — Offers business capability. Self-contained, no shared references.
resources:
- name: offers-lounges-location
path: /offers/lounges/{location}
operations:
- name: offersloungesbylocationget
method: GET
description: Lufthansa Lounges
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: location
in: path
type: string
description: 3-leter IATA airport or city code (e.g. 'ZRH')
required: true
- name: Accept
in: header
type: string
description: 'http header: application/json or application/xml (Acceptable values are: "application/json", "application/xml")'
required: true
- name: cabinClass
in: query
type: string
description: 'Cabin class: ''M'', ''E'', ''C'', ''F'' (Acceptable values are: "", "M", "E", "C", "F")'
- name: tierCode
in: query
type: string
description: 'Frequent flyer level (''FTL'', ''SGC'', ''SEN'', ''HON'') (Acceptable values are: "", "FTL", "SGC",
"SEN", "HON")'
- name: lang
in: query
type: string
description: Language code.
- name: offers-seatmaps-flightNumber-origin-destination-date-cabinClass
path: /offers/seatmaps/{flightNumber}/{origin}/{destination}/{date}/{cabinClass}
operations:
- name: offersseatmapsdestinationdatecabinclassbyflightnumberandoriginget
method: GET
description: Lufthansa Seat Maps
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: flightNumber
in: path
type: string
description: Flight number including carrier code and any suffix (e.g. 'LH2037')
required: true
- name: origin
in: path
type: string
description: Departure airport. 3-letter IATA airport code (e.g. 'TXL')
required: true
- name: destination
in: path
type: string
description: Destination airport. 3-letter IATA airport code (e.g. 'MUC')
required: true
- name: date
in: path
type: string
description: Departure date (YYYY-MM-DD)
required: true
- name: cabinClass
in: path
type: string
description: 'Cabin class: ''M'', ''E'', ''C'', ''F''. Some flights have fewer classes (Acceptable values are: "M",
"E", "C", "F")'
required: true
- name: Accept
in: header
type: string
description: 'http header: application/json or application/xml (Acceptable values are: "application/json", "application/xml")'
required: true
authentication:
type: bearer
token: '{{env.LUFTHANSA_API_KEY}}'
exposes:
- type: rest
namespace: lufthansa-offers-rest
port: 8080
description: REST adapter for Lufthansa LH Public API — Offers. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/offers/lounges/{location}
name: offers-lounges-location
description: REST surface for offers-lounges-location.
operations:
- method: GET
name: offersloungesbylocationget
description: Lufthansa Lounges
call: lufthansa-offers.offersloungesbylocationget
with:
location: rest.location
Accept: rest.Accept
cabinClass: rest.cabinClass
tierCode: rest.tierCode
lang: rest.lang
outputParameters:
- type: object
mapping: $.
- path: /v1/offers/seatmaps/{flightnumber}/{origin}/{destination}/{date}/{cabinclass}
name: offers-seatmaps-flightnumber-origin-destination-date-cabinclass
description: REST surface for offers-seatmaps-flightNumber-origin-destination-date-cabinClass.
operations:
- method: GET
name: offersseatmapsdestinationdatecabinclassbyflightnumberandoriginget
description: Lufthansa Seat Maps
call: lufthansa-offers.offersseatmapsdestinationdatecabinclassbyflightnumberandoriginget
with:
flightNumber: rest.flightNumber
origin: rest.origin
destination: rest.destination
date: rest.date
cabinClass: rest.cabinClass
Accept: rest.Accept
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: lufthansa-offers-mcp
port: 9090
transport: http
description: MCP adapter for Lufthansa LH Public API — Offers. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: lufthansa-lounges
description: Lufthansa Lounges
hints:
readOnly: true
destructive: false
idempotent: true
call: lufthansa-offers.offersloungesbylocationget
with:
location: tools.location
Accept: tools.Accept
cabinClass: tools.cabinClass
tierCode: tools.tierCode
lang: tools.lang
outputParameters:
- type: object
mapping: $.
- name: lufthansa-seat-maps
description: Lufthansa Seat Maps
hints:
readOnly: true
destructive: false
idempotent: true
call: lufthansa-offers.offersseatmapsdestinationdatecabinclassbyflightnumberandoriginget
with:
flightNumber: tools.flightNumber
origin: tools.origin
destination: tools.destination
date: tools.date
cabinClass: tools.cabinClass
Accept: tools.Accept
outputParameters:
- type: object
mapping: $.