Skip to navigation

πŸ’° Get Fare Options

Get fare options for a specific flight

This endpoint has two modes:

Mode 1: Get fare options from cache (same cabin class)

When cabinClass is NOT provided, returns fare options from cache (same cabin class as initial search).

  • Works with flights from recent /flights/search-unified calls
  • Returns all fare categories (Economy Basic, Economy Value, etc.) for the same cabin class

Mode 2: Search for fare options in different cabin class

When cabinClass IS provided, searches PKFare for the same flight but in the requested cabin class.

  • Use case: User is viewing Economy fare options and wants to see Business class options
  • Makes a new search to PKFare with the same flight details but different cabin class
  • Returns all fare options for the requested cabin class

Request Body

  • flightHash (required): Flight hash from search-unified response
    • For one-way: Use outbound flight hash
    • For round-trip: Use inbound flight hash
  • outboundFlightHash (optional): Outbound flight hash (for round-trip context)
  • cabinClass (optional): Requested cabin class (e.g., β€œbusiness”, β€œfirst”, β€œpremium_economy”)
    • If provided: Searches PKFare for fare options in this cabin class
    • If not provided: Returns fare options from cache (same cabin class)
  • adults (required when cabinClass is provided): Number of adult passengers
  • children (optional): Number of child passengers
  • infants (optional): Number of infant passengers

Response

Returns all fare options for the flight, including:

  • fareOptions: Array of all available fare options with:
    • solutionKey, solutionId
    • fareCategory (e.g., β€œECONOMY LIGHT”, β€œBUSINESS FLEX”)
    • pricing (total, base, tax, fees)
    • booking rules (refundable, changeable, cancellation/change fees)
    • baggage allowances
    • amenities (meals, wifi, seat selection)
    • Raw PKFare data (miniRulesMap, baggageMap, otherFareRules)
  • Flight details (legs, duration, airport change info)
  • Backward compatibility fields (cheapest fare option)

Example Request 1: Get from cache (same cabin class)

{
"flightHash": "EK_708_DXB_LHR_1737705600000_1737723000000"
}

Example Request 2: Search for Business class

{
"flightHash": "EK_708_DXB_LHR_1737705600000_1737723000000",
"outboundFlightHash": "EK_29_DXB_LHR_1737705600000_1737723000000",
"cabinClass": "business",
"adults": 1
}

Example Response

{
"success": true,
"data": {
"flightHash": "EK_708_DXB_LHR_1737705600000_1737723000000",
"totalDuration": 760,
"legs": [...],
"airportChange": false,
"fareOptions": [
{
"solutionKey": "...",
"solutionId": "...",
"fareCategory": "BUSINESS FLEX",
"pricing": {
"total": 4500,
"currency": "AED",
"base": 4000,
"tax": 500
},
"booking": {
"refundable": true,
"changeable": true
},
"baggage": {
"carryOn": { "pieces": 2, "weight": 7 },
"checked": { "pieces": 2, "weight": 32 }
},
"amenities": {
"meals": { "available": true },
"seatSelection": { "available": true }
}
}
],
"solutionKey": "...",
"pricing": { "total": 4500, ... }
}
}

Error Responses

  • B037: Flight data not found in cache - search for flights again
  • B024: Flight data has expired - search for flights again
  • B038: No fare options found for requested cabin class
  • P002: Missing required parameter

Request

This endpoint expects an object.
flightHashstringRequired

Flight hash (outbound for one-way, inbound for round-trip)

outboundFlightHashstringOptional

Outbound flight hash (optional, for round-trip context)

cabinClassstringOptional

Requested cabin class (e.g., β€˜business’, β€˜first’, β€˜premium_economy’). If provided, searches PKFare for fare options in this cabin class.

adultsdoubleOptional>=1

Number of adult passengers (required when cabinClass is provided)

childrendoubleOptional>=0
Number of child passengers
infantsdoubleOptional>=0
Number of infant passengers

Response

This endpoint returns an object.