Progressive Flight Search API
POST
Endpoint:[BaseUrl]/flight-search-progressiveOverview
The Progressive Flight Search API allows clients to search for real-time flight availability based on itinerary criteria (origin, destination, travel dates, passenger composition, cabin class, and fare rules). Results are streamed progressively as individual airline supplier responses arrive, enabling near-instant UI updates without waiting for complete batch aggregation.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| adults | Integer | Yes | Number of adult passengers (age > 12) |
| childs | Integer | No | Number of child passengers (age 2-12) |
| infants | Integer | No | Number of infant passengers (age < 2) |
| class | String | Yes | Cabin class (Economy, Premium Economy, Business, First) |
| journeyType | Integer | Yes | 1=One Way, 2=Round Trip, 3=Multi City |
| routes | Array | Yes | Array of flight segments containing origin, destination airport codes and departure dates |
| preferredCarriers | Array | No | List of preferred airline carriers |
| childrenAges | Array | Conditional | Required if childs > 0. Array containing ages of all child passengers |
| fare_type | Integer | Yes | 1=General, 2=Labor fare |
Request
{
"adults": 1,
"childs": 0,
"infants": 0,
"journeyType": 1,
"class": "Economy",
"preferredCarriers": [],
"childrenAges": [],
"fare_type": 1,
"routes": [
{
"origin": "KUL",
"destination": "DAC",
"departureDate": "2026-11-10"
}
]
}
Streaming Lifecycle & Event Structure
The connection emits continuous JSON chunk events over HTTP. The lifecycle consists of four main phases:
- Connection Established: Client executes POST request and opens persistent streaming channel.
- Incremental Results ('running'): Intermediate batches of flight itineraries arrive progressively as providers return results. The flag is true.
- Stream Termination ('end'): Triggered when all providers finish. Final transaction ID and overall status returned. The flag is false.
- Connection Closed: Server closes TCP connection. Client finalizes data presentation.
Response Event Payloads
Event: running (Incremental Results)
Response
{
"event": "running",
"time": "2026-10-12T17:42:18+08:00",
"flag": true,
"code": 200,
"data": {
"AirSearchResponses": [
{
"Directions": [
[
{
"Origin": "KUL",
"OriginName": "Kuala Lumpur International Airport",
"Destination": "DAC",
"DestinationName": "Hazrat Shahjalal International Airport",
"PlatingCarrierCode": "BS",
"PlatingCarrierName": "US-Bangla Airlines",
"Stops": 0,
"Segments": [
{
"Origin": "KUL",
"OriginName": "Kuala Lumpur International Airport",
"Destination": "DAC",
"DestinationName": "Hazrat Shahjalal International Airport",
"Group": 1,
"Departure": "2026-11-10 15:50:00",
"Arrival": "2026-11-10 17:45:00",
"Airline": "US-Bangla Airlines",
"FlightNumber": "316",
"SegmentCodeRef": "UXvDspu8WM/C2ZiLl241w5ZWILJF2jzKOXCorJVbn6A=",
"Details": [
{
"Origin": "KUL",
"OriginName": "Kuala Lumpur International Airport",
"Destination": "DAC",
"DestinationName": "Hazrat Shahjalal International Airport",
"OriginTerminal": "M",
"DestinationTerminal": "1",
"Departure": "2026-11-10 15:50:00",
"Arrival": "2026-11-10 17:45:00",
"FlightTime": "3h 55m",
"TravelTime": "3h 55m",
"Equipment": "Airbus A330-300"
}
],
"ServiceClass": "Y",
"Plane": [
"Airbus A330-300"
],
"Duration": [
"3h 55m"
],
"TechStops": [],
"BookingClass": "Q",
"BookingCount": "9",
"Baggage": [
{
"Units": "Kg",
"Amount": 35,
"PassengerTypeCode": "ADT"
}
],
"CarryBaggage": [
{
"Units": "KG",
"Amount": 7,
"PassengerTypeCode": "ADT"
}
],
"FareBasisCode": "QSKULO",
"AirlineCode": "BS",
"OperationFlightNumber": null,
"OperationAirlineCode": null,
"OperationAirlineName": null
}
],
"DirectionTotalTime": "3h 55m",
"OriginalPriceComponent": null
}
]
],
"BookingComponent": {
"DiscountPrice": 0,
"TotalPrice": 25471,
"BasePrice": 22170,
"Taxes": 3225,
"AIT": 76,
"FareReference": "",
"AgentAdditionalPrice": 0
},
"OriginalPriceComponent": {
"AvlSrc": null,
"TotalPrice": 25395,
"BasePrice": 22170,
"Taxes": 3225,
"ConversionRate": null,
"Currency": null
},
"PassengerFares": [
{
"PassengerType": "ADT",
"PassengerCount": 1,
"DiscountPrice": 0,
"AIT": 76,
"TotalPrice": 25471,
"BasePrice": 22170,
"EquivalentBasePrice": 22170,
"Taxes": 3225,
"ServiceCharge": 0,
"TaxesBreakdown": [
{
"Category": "MY",
"Amount": 2217
},
{
"Category": "H8",
"Amount": 30
},
{
"Category": "G1",
"Amount": 607
},
{
"Category": "YQ",
"Amount": 371
}
]
}
],
"IsBrandedFareSpecefied": false,
"UniqueTransID": "NZ2347951294210495",
"ItemCodeRef": "e1EZWsSJ8izmIzbQ44MVuNxuc/pNWbLLAcPPozI4BCK98f3VZFPIdXmOCo+bICHu/LHyn6PlJ30eMKMpX9WfuRhE1fonrVVoRVmz9SrQJFc=",
"TotalPrice": 25471,
"BasePrice": 22170,
"EqivqlBasePrice": 22170,
"Taxes": 3225,
"PlatingCarrierName": "US-Bangla Airlines",
"PlatingCarrier": "BS",
"FareType": "",
"FareTypeDec": "",
"Refundable": true,
"Bookable": true,
"AvlSrc": "USB-BD",
"AirlineSponsor": false
}
],
"Currency": "BDT"
},
"message": "Streaming results...",
"dataCount": 1,
"UniqueTransID": "NZ2347951294210495"
}Event: end (Stream Completion)
Response
{
"event": "end",
"time": "2026-10-12T17:42:18+08:00",
"flag": false,
"code": 200,
"data": {
"AirSearchResponses": [],
"Currency": "BDT"
},
"message": "No data Available",
"dataCount": 0,
"UniqueTransID": "NZ2347951294210495"
}Important Response Fields
| Field | Description |
|---|---|
| UniqueTransID | Required for subsequent API calls |
| ItemCodeRef | Required for fare rules and booking |
| Bookable | Indicates if direct booking is possible |
| Refundable | Indicates if the fare is refundable |