naftiko: 1.0.0-alpha2 info: label: Lufthansa LH Public API — Cargo description: 'Lufthansa LH Public API — Cargo. 2 operations. Lead operation: Lufthansa Retrieve all flights. Self-contained Naftiko capability covering one Lufthansa business surface.' tags: - Lufthansa - Cargo created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LUFTHANSA_API_KEY: LUFTHANSA_API_KEY capability: consumes: - type: http namespace: lufthansa-cargo baseUri: https://api.lufthansa.com/v1 description: Lufthansa LH Public API — Cargo business capability. Self-contained, no shared references. resources: - name: cargo-getRoute-origin}-{destination-fromDate-productCode path: /cargo/getRoute/{origin}-{destination}/{fromDate}/{productCode} operations: - name: cargogetroutefromdateproductcodebyoriginanddestinationget method: GET description: Lufthansa Retrieve all flights outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: origin in: path type: string description: 'Departure Airport : 3-letter IATA airport code, e.g. FRA.' required: true - name: destination in: path type: string description: 'Arrival airport : 3-letter IATA airport code, e.g. HKG.' required: true - name: fromDate in: path type: string 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 - name: productCode in: path type: string description: 'Product code for requested service and specials : 3-letter eg: YNZ' 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: cargo-shipmentTracking-aWBPrefix}-{aWBNumber path: /cargo/shipmentTracking/{aWBPrefix}-{aWBNumber} operations: - name: cargoshipmenttrackingbyawbprefixandawbnumberget method: GET description: Lufthansa Shipment Tracking outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: aWBPrefix in: path type: string 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 - name: aWBNumber in: path type: string description: 'aWBNumber : The Air Waybill Number , format : [0-9]{8} e.g. 08002050' 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-cargo-rest port: 8080 description: REST adapter for Lufthansa LH Public API — Cargo. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/cargo/getroute/{origin-destination}/{fromdate}/{productcode} name: cargo-getroute-origin-destination-fromdate-productcode description: REST surface for cargo-getRoute-origin}-{destination-fromDate-productCode. operations: - method: GET name: cargogetroutefromdateproductcodebyoriginanddestinationget description: Lufthansa Retrieve all flights call: lufthansa-cargo.cargogetroutefromdateproductcodebyoriginanddestinationget with: origin: rest.origin destination: rest.destination fromDate: rest.fromDate productCode: rest.productCode Accept: rest.Accept outputParameters: - type: object mapping: $. - path: /v1/cargo/shipmenttracking/{awbprefix-awbnumber} name: cargo-shipmenttracking-awbprefix-awbnumber description: REST surface for cargo-shipmentTracking-aWBPrefix}-{aWBNumber. operations: - method: GET name: cargoshipmenttrackingbyawbprefixandawbnumberget description: Lufthansa Shipment Tracking call: lufthansa-cargo.cargoshipmenttrackingbyawbprefixandawbnumberget with: aWBPrefix: rest.aWBPrefix aWBNumber: rest.aWBNumber Accept: rest.Accept outputParameters: - type: object mapping: $. - type: mcp namespace: lufthansa-cargo-mcp port: 9090 transport: http description: MCP adapter for Lufthansa LH Public API — Cargo. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: lufthansa-retrieve-all-flights description: Lufthansa Retrieve all flights hints: readOnly: true destructive: false idempotent: true call: lufthansa-cargo.cargogetroutefromdateproductcodebyoriginanddestinationget with: origin: tools.origin destination: tools.destination fromDate: tools.fromDate productCode: tools.productCode Accept: tools.Accept outputParameters: - type: object mapping: $. - name: lufthansa-shipment-tracking description: Lufthansa Shipment Tracking hints: readOnly: true destructive: false idempotent: true call: lufthansa-cargo.cargoshipmenttrackingbyawbprefixandawbnumberget with: aWBPrefix: tools.aWBPrefix aWBNumber: tools.aWBNumber Accept: tools.Accept outputParameters: - type: object mapping: $.