Search
- Purpose: Through the Search interface, AeroHub can obtain available flights, fares, tax prices and other information from suppliers based on date, departure place, arrival place and other information. The interface supports different types of air ticket information such as direct flights, round-trips, transfers, stops, etc.
- Request:
POST - Encryption:
No
Request
| Parameter Name |
Type |
Required |
Description |
| requestId |
string |
✅ |
Request ID. Each interface in the booking process is unique. A complete booking process can be connected through this field. The length is 32 bits. |
| tripType |
int |
✅ |
Itinerary type: 1 one-way, 2 round-trip. If 1 or 2 is passed, it means that this search only requires this type of itinerary. |
| flightType |
int |
⬜ |
Flight type: 0 all (default), 1 direct, 2 transfer. If 1 or 2 is passed, it means that this search only requires flights of this type. |
| adultNumber |
int |
✅ |
Number of adult passengers traveling in this search |
| childNumber |
int |
⬜ |
Number of child passengers traveling in this search |
| infantNumber |
int |
⬜ |
Number of infant passengers traveling in this search |
| fromDate |
string |
✅ |
Departure date for this search in the format YYYYMMDD |
| retDate |
string |
⬜ |
The return date of this search, retDate must be transmitted when tripType is 2, the format is YYYYMMDD |
| fromCity |
string |
✅ |
The starting city of this search uses the ISO 3166 three-character code as the standard. |
| toCity |
string |
✅ |
The destination city for this search uses the ISO 3166 three-character code as the standard. |
| carrierCode |
array |
⬜ |
The airline code uses the IATA two-character code as the standard. If a value is passed, it means that this search requires a quote from the airline. |
| seatGrades |
array |
⬜ |
Request cabin class, F first class, C business class, S super economy class, Y economy class, empty means no limit |
| flightNumber |
array |
⬜ |
Flight number, such as CA123, if flightNumber is not empty, only the target flight will be returned. If flightNumber is empty, all flight quotation data will be returned. When there are multiple flight number combinations in the itinerary, the flight segment sequence needs to be followed. |
| product |
array |
⬜ |
Package type, supports AirlineBundle and AeroHubBundle package types, empty means AeroHubBundle |
| priceMode |
int |
⬜ |
Quotation mode, 0 represents the lowest price mode, only the lowest price is returned; 1 represents all, returns all types of prices for all packages, the default is 0 |
| serviceTag(obsolete) |
object |
✅ |
The service requirement label specified this time includes the ticket issuance speed, whether the order can be split and the ticket is issued, whether it is allowed to change the ticket number and whether the platform email is used for the ticket issuance. |
| currency |
string |
⬜ |
The quotation currency defaults to USD when it is empty. It is currently passed in according to the international currency code, such as USD, EUR, JPY |
| siteChannel(obsolete) |
int |
⬜ |
Site source, each site has different service requirements. Such as 1: represents site1 |
| issuePolicyType(obsolete) |
string |
⬜ |
Product type. If not filled in, it represents standard products (refunds and changes are subject to the airline). Currently, AeroHub only has standard products. R1 represents standard products - cancellations and changes are subject to the airline. R2 represents customized products for cancellations and changes. R3 represents refunds and changes and returns to the airline’s standard customer regulations but allows the service provider to return the service fee separately. S1 represents the prohibition of splitting PNR tickets. S2 represents that splitting PNR tickets is allowed based on round-trip itineraries. S3 represents that splitting PNR tickets is allowed based on destination passengers. T1 represents ticketing based on ServiceTag. Element requires that tickets be issued within a time period. T2 means that tickets are issued within 24 hours. T3 means that tickets are issued within 72 hours or within 48 hours of flight departure (whichever comes first). Each request for each category must have a unique value and be returned, and the order of R, S, T is strictly followed and separated by ‘,’. For example, R1, S2, and T1 represent products that are allowed to return to standard refunds and changes, split orders are allowed to be issued, and the ticketing time meets the site requirements. Note: Each letter represents a category. When requesting, there will be at least one type of request for each category (R, S, T). |
| timeOut |
float |
✅ |
Contains 1 decimal place and the required return time (seconds). Returns exceeding this time will not be displayed. Note: This length includes network transmission time |
| isCompressEncode |
bool |
⬜ |
Identifies whether the message returned by the supplier query needs to be compressed, true for compression, false for no compression; if the supplier needs compression, it only needs to compress the result through gzip and return it to the client after receiving the request, and add Content-Encodin:gzip to the response header to indicate that the response data has been compressed. There is no need to judge whether compression is needed based on this field. |
Object/ServiceTag Element
| Parameter Name |
Type |
Required |
Description |
| ticketSpeed |
int |
✅ |
0:30 minutes; 1:1hour 2:12hour |
| issueSpeedRequirement |
int |
✅ |
Indicates the required ticket issuance time limit after this scheduled order is issued, measured in minutes. |
| nonSplitOrder |
int |
✅ |
0-no limit 1-splitting orders and issuing tickets is prohibited) |
| nonReplaceTicketNo |
int |
✅ |
0-no limit 1-no change of ticket number after ticket issuance) |
| issueMailbox |
int |
✅ |
0-Email address of the ticket issuer 1-Incoming from the platform Indicates whether to use the incoming email address to issue tickets with the airline |
| issuePhone |
int |
✅ |
0-No limit 1-Incoming from the platform Indicates whether to use the incoming mobile phone number to issue tickets with the airline |
Sample Request
{
"requestId": "a8fd68b2d2b7b3568c03abd9c05ec6cf",
"timeOut": 5.0,
"tripType": 1,
"flightType": 0,
"adultNumber": 2,
"childNumber": 0,
"infantNumber": 0,
"fromDate": "20230701",
"retDate": "",
"fromCity": "HKT",
"toCity": "BKK",
"carrierCode": [],
"seatGrades": [],
"flightNumber": [
"W95776"
],
"product": [
"AirlineBundle",
"AerohubBundle"
],
"includeSSR": [],
"isCompressEncode": false
}
Response
| Parameter Name |
Type |
Required |
Description |
| marketErrorCode |
int |
✅ |
Supplier system error code is used to assist AeroHub and suppliers in troubleshooting problems. Please return the true error truthfully. |
| marketErrorMsg |
string |
✅ |
Supplier system error description, please truthfully return the real error reason, the length is less than 300 characters |
| flightList |
array/flightList Element |
✅ |
Flight information, reflecting flight numbers and other information supported by this search |
| shoppingResultList |
array/shoppingResultList Element |
✅ |
Quote information has a one-to-many relationship with flight information. A flight can have multiple quotes, such as multiple quotes for different passenger types and different cabin classes. |
array/flightList Element
| Parameter Name |
Type |
Required |
Description |
| flightRefNum |
int |
✅ |
Flight index number, associated with flightRefNum in flightRefList of shoppingResultList (offer information), starting from 1, non-repeatable |
| marketingCarrier |
string |
✅ |
Airline code, using IATA two-character code as the standard, corresponds to the first two digits in flightNumber |
| flightNumber |
string |
✅ |
Flight number, such as: CA123 |
| codeShare |
bool |
✅ |
Whether this flight is a shared flight, true is a shared flight, false is not a shared flight, if true is returned, operatingCarrier and operatingFlightNo must be returned |
| operatingCarrier |
string |
⬜ |
The actual operating airline code uses the IATA two-character code as the standard, which corresponds to the first two digits in operatingFlightNo. |
| operatingFlightNo |
string |
⬜ |
Actual flight number |
| depAirport |
string |
✅ |
Departure airport code, using IATA three-letter code as the standard |
| arrAirport |
string |
✅ |
Arrival airport code, using IATA three-letter code as the standard |
| depTerminal |
string |
⬜ |
Departure terminal code, please use abbreviation, for example Terminal 1 should return T1 |
| arrTerminal |
string |
⬜ |
Arrival terminal code, please use abbreviation, for example Terminal 1 should return T1 |
| depTime |
string |
✅ |
Departure date and departure time (local time), format: YYYYMMDDHHMM, for example, 202303100300 means 3:00 on March 10, 2023 |
| arrTime |
string |
✅ |
Arrival date and arrival time (local time), format: YYYYMMDDHHMM, for example, 202303101305 means 13:05 on March 10, 2023 |
| aircraftCode |
string |
⬜ |
Model, using IATA three-letter code as standard |
| stops |
array/stops |
⬜ |
Whether there is a stop. If it does not exist, the node does not need to return results. |
array/stops Element
| Parameter Name |
Type |
Required |
Description |
| stopAirport |
string |
⬜ |
When stopping at the airport, the IATA three-letter code is used as the standard. |
| stopDuration |
int |
⬜ |
Duration of menstruation, measured in minutes. If the exact length of menstruation cannot be obtained, a value of 0 can be assigned. |
| stopCity |
string |
⬜ |
Stop cities use ISO 3166 three-character code as the standard |
| stopoverArrivalTime |
string |
⬜ |
Arrival time at stopover, format: YYYYMMDDHHMM, for example, 202303100300 means 3:00 on March 10, 2023 |
| stopoverDepartureTime |
string |
⬜ |
Departure time from stopping place, format: YYYYMMDDHHMM, for example, 202303100300 means 3:00 on March 10, 2023 |
array/shoppingResultList Element
| Parameter Name |
Type |
Required |
Description |
| data |
string |
✅ |
For the supplier’s own use, necessary information can be saved. When verifying, the original data from the search will be placed in the request message and returned to the supplier. The length shall not exceed 64 bits. |
| flightRefList |
array/flightRefList Element |
✅ |
Flight segment information |
| tuList |
array/tuList Element |
✅ |
Quotation information |
array/flightRefList Element
| Parameter Name |
Type |
Required |
Description |
| flightRefNum |
int |
✅ |
Flight index number, associated with flightRefNum in flightList (flight information) |
| segmentNo |
int |
✅ |
Flight sequence, 1 outbound trip, 2 return trip |
| flightSeq |
int |
✅ |
The sequence of flight segments starts from 1. Note: If it is a round trip, both the outbound and return journeys start from 1. |
| tuSequence |
int |
✅ |
Fixed value passed is 1 |
| seatGrade |
string |
✅ |
Class, F first class, C business class, S super economy class, Y economy class |
| seatClass |
string |
✅ |
cabin |
| seatCount |
int |
⬜ |
The maximum number of seats that can be purchased, the range is 1-9, the default is 9, it cannot be 0 |
| originSeatClass |
string |
⬜ |
AeroHub’s own fields are used to match refunds, changes, and reissues. Suppliers can ignore them. |
array/tuList Element
| Parameter Name |
Type |
Required |
Description |
| tuSequence |
int |
✅ |
Which ticket does it belong to? It is not enabled and currently returns 1. |
| priceList |
array/priceList |
✅ |
Air ticket prices for different passenger types |
| eligibility |
string |
⬜ |
Passenger identity three-character code, NOR ordinary adults, LAB workers, SEA seafarers, SNR seniors, STU students, YOU young people |
| validatingCarrier |
string |
✅ |
The airline code that actually issued the ticket uses the IATA two-letter code as the standard |
| productType |
string |
⬜ |
Not enabled yet |
| issuePolicyType |
string |
⬜ |
Product type. If not filled in, it represents standard products (refunds and changes are subject to the airline). Currently, AeroHub only has standard products. R1 represents standard products - cancellations and changes are subject to the airline. R2 represents customized products for cancellations and changes. R3 represents refunds and changes and returns to the airline’s standard customer regulations but allows the service provider to return the service fee separately. S1 represents the prohibition of splitting PNR tickets. S2 represents that splitting PNR tickets is allowed based on round-trip itineraries. S3 represents that splitting PNR tickets is allowed based on destination passengers. T1 represents ticketing based on ServiceTag. Element requires that tickets be issued within a time period. T2 means that tickets are issued within 24 hours. T3 means that tickets are issued within 72 hours or within 48 hours of flight departure (whichever comes first). Each request must have a unique value for each category and be returned, and it must be separated by ‘,’ in the order of R, S, and T strictly. For example, R1, S2, and T1 represent products that are allowed to return to standard refunds and changes, split orders are allowed to be issued, and the ticketing time meets the site requirements. |
| fareBasis |
string |
⬜ |
Corresponds to the fare level in GDS, one for each flight segment, separated by “;” when multiple |
| bookingOfficeNo |
string |
⬜ |
Reservation office number, a field reserved by AeroHub. It can be left blank at this stage. |
| ticketingOfficeNo |
string |
⬜ |
Office number for issuing tickets, a field reserved by AeroHub. It can be passed empty at this stage. |
| reservationType |
string |
⬜ |
Policy source, a field reserved by AeroHub. It can be passed empty at this stage. |
| posCode |
string |
⬜ |
The country code for issuing tickets adopts ISO 3166 two-character code as the standard. Multiple issuing places are separated by “|” |
| complexTerm |
int |
⬜ |
A field reserved for special products. AeroHub currently has no special products. You can pass 0 in this field. |
| minAge |
int |
⬜ |
The minimum age limit for passengers on this flight, 0 means no limit |
| maxAge |
int |
⬜ |
The maximum age limit for passengers on this flight, 0 means no limit |
| invoiceType |
string |
✅ |
The types of vouchers that suppliers can provide, T itinerary, F invoice, E electronic invoice |
| minPassengerCount |
int |
⬜ |
The minimum number of people available for this flight, starting from 1 |
| maxPassengerCount |
int |
⬜ |
The maximum number of people that can be sold on this flight |
| note |
string |
⬜ |
Remarks, maximum 300 characters |
| airlineAncillaries |
object/airlineAncillaries Element |
⬜ |
Baggage information, used to reflect whether baggage can be sold and whether there is free baggage |
| packageInfo |
object/packageInfo Element |
⬜ |
Package information. If it is empty or not returned, it indicates the lowest price product for air tickets. |
| formatBaggageDetailList |
array/formatBaggageDetailList Element |
⬜ |
Free baggage information. When the content of this node is not returned, it means there is no free baggage. |
| refundInfoList |
array/refundInfoList Element |
⬜ |
Refund rules |
| changesInfoList |
array/changesInfoList Element |
⬜ |
Change rules |
| freeSeatInfoList |
array/freeSeatInfoList Element |
⬜ |
Is it possible to select seats for free? |
| currency |
string |
✅ |
The quotation currency is generally consistent with the settlement currency agreed by the supplier. |
| ticketTimeUnit |
int |
⬜ |
The ticket issuance time, measured in minutes, is used to match AeroHub’s ticket issuance requirements for different products. The return value will be given priority for matching and price comparison. |
| endorsement |
int |
⬜ |
Whether to support endorsement, 0 does not support, 1 supports |
array/priceList Element
| Parameter Name |
Type |
Required |
Description |
| passengerType |
int |
✅ |
Passenger type, 0 adult, 1 child, 2 infant |
| publishPrice |
float |
⬜ |
Publish shipping price, excluding tax, supports two decimal places |
| price |
float |
✅ |
Face price, excluding tax, supports two decimal places**When there are multiple flight segments (round trip, transfer), only the total price will be returned on the first segment** |
| taxFeeAmount |
float |
✅ |
Taxes, supports two decimal places**When there are multiple flight segments (round trip, transfer), only the total price will be returned on the first segment** |
| taxFeeDisclosureList |
array/TaxFeeDisclosureList Element |
⬜ |
Tax details, a field reserved by AeroHub, currently can return empty |
array/TaxFeeDisclosureList Element
| Parameter Name |
Type |
Required |
Description |
| type |
int |
⬜ |
Tax types, 1 airport construction fee, 2 fuel fee, are currently in effect for many domestic airlines in China. |
| amount |
float |
⬜ |
If you fill in 0, it means free |
object/airlineAncillaries Element
| Parameter Name |
Type |
Required |
Description |
| baggageService |
bool |
⬜ |
Whether paid baggage can be sold, true includes, false does not include, if true is filled in, the SSR interface will be called when obtaining the baggage price. |
| unFreeBaggage |
bool |
⬜ |
Whether there is free baggage, true: no free baggage allowance, false: all flights have free baggage allowance or some flights have free baggage allowance |
object/packageInfo Element
| Parameter Name |
Type |
Required |
Description |
| packageType |
string |
⬜ |
Package type, when empty, the default is AeroHubBundle, AirlineBundle is the airline package, AeroHubBundle is the agent combination package |
|
|
|
|
| packageName |
string |
⬜ |
When the package name is returned as AHBasic, it means the lowest price in the AeroHubBundle; when the packageType is AirlineBundle, it needs to be consistent with the airline package name; when the packageType is AeroHubBundle, the corresponding package name needs to be returned according to the custom package specification. One-way and one-way connected journeys need to return a package name; when the round-trip and return package names are the same, a package name is returned; when different package names are used for the round-trip and return journey, the package name is returned according to the outbound/return spliced package name. Examples are as follows: SAVER: The outbound and return journeys use the same packageName category SAVER SAVER/FLEXIPLUS: Use SAVER for the outbound trip and FLEXIPLUS for the return trip. AHBasic: Use the same packageName class for outbound and return trips AHBasic AHBasic/AHBag25: Use AHBasic for the outbound trip and AHBag25 for the return trip. For details on package name specifications, see:‘BundleNameRules ’ |
array/formatBaggageDetailList Element
| Parameter Name |
Type |
Required |
Description |
| segmentNo |
int |
✅ |
Flight sequence, 1 outbound trip, 2 return trip (associated with segmentNo in flightRefList) |
| flightSeq |
int |
✅ |
The sequence of flight segments starts from 1. Note: If it is a round trip, both the outbound and return journeys start from 1 (associated with flightSeq in flightRefList) |
| passengerType |
int |
✅ |
Passenger type, 0 adult, 1 child, 2 infant |
| baggagePiece |
int |
✅ |
The number of pieces of baggage allowance. When the number of pieces is -1, it means there is no limit to the number of pieces. |
| baggageWeightType |
int |
⬜ |
Measurement method, 1: single piece weight 2: total weight, default is 1, used in conjunction with baggageWeight |
| baggageWeight |
int |
✅ |
Baggage allowance weight, measured in KG, used in conjunction with BaggagePiece |
| carryonBaggagePiece |
int |
⬜ |
The number of pieces of check-in baggage allowance, when the number of pieces is -1, it means there is no limit to the number of pieces |
| carryonBaggageWeighType |
int |
⬜ |
Check-in baggage measurement method, 1: single piece weight 2: total weight, default is 1, used in conjunction with carryonBaggageWeight |
| carryonBaggageWeight |
int |
⬜ |
Check-in baggage allowance weight, measured in KG, used in conjunction with carryonBaggagePiece |
array/refundInfoList Element
| Parameter Name |
Type |
Required |
Description |
| passengerType |
int |
✅ |
Passenger type, 0 adult, 1 child, 2 infant |
| refundType |
int |
✅ |
Refund type, 0 All journeys are unused; 1 Outbound journey is used |
| refundStatus |
string |
✅ |
Refund mark: T for non-refundable, H for conditional refund, F for free refund, E according to airline regulations, please fill in E for standard products |
| refundFee |
float |
⬜ |
The airline’s fine for refunding the ticket, the currency is the same as the ticket price. When the refund fee for the whole journey is the same, it can be returned through this field. If it needs to be divided into multiple time periods, it needs to be returned in the conditionList. |
| refNoshow |
string |
⬜ |
Regarding Noshow’s refund rules and refund logos, T means non-refundable, H means conditional refund, F means free refund, and E means according to airline rules. |
| refNoShowCondition |
int |
⬜ |
The time limit for applying for a refund in the case of NoShow is measured in hours. If the application is valid 4 hours before departure, you need to assign a value of 4 |
| refNoshowFee |
float |
⬜ |
The penalty for NoShow does not include the refund penalty. The refund penalty needs to be returned in refundFee or conditionList. |
| refundServiceFee |
float |
⬜ |
The service fee charged by the ticket issuer when refunding a ticket is charged according to the quotation of each passenger dimension. |
| conditionList |
array/conditionList Element |
⬜ |
When there are multiple charging rules for different departure times, they will be reflected at this node. Such as before the flight, after the flight |
array/changesInfoList Element
| Parameter Name |
Type |
Required |
Description |
| passengerType |
int |
✅ |
Passenger type, 0 adult, 1 child, 2 infant |
| changesType |
int |
✅ |
Rescheduling type, 0 All voyages are unused; 1 Outbound voyage has been used |
| changesStatus |
string |
✅ |
Rescheduling mark: T cannot be rescheduled, H is subject to conditional rescheduling, F is free of charge, E. According to airline regulations, please fill in E for standard products. |
| changesFee |
float |
⬜ |
The airline’s penalty for rescheduling is in the same currency as the ticket price. When the rescheduling penalty for the entire journey is the same, it can be returned through this field. If it needs to be divided into multiple time periods, it needs to be returned in conditionList. |
| revNoshow |
string |
⬜ |
Regarding Noshow’s rescheduling rules, T cannot be rescheduled, H is subject to conditional rescheduling, F is free of charge, and E is based on airline regulations. |
| revNoShowCondition |
int |
⬜ |
The time limit for applying for rescheduling in the case of NoShow is measured in hours. If the application is valid 4 hours before departure, you need to assign a value of 4 |
| revNoShowFee |
float |
⬜ |
The separate penalty in the NoShow situation does not include the rescheduling penalty. The rescheduling penalty needs to be returned in refundFee or conditionList. |
| changeServiceFee |
float |
⬜ |
The service fee charged by the ticket issuer when rescheduling is charged according to the quotation per passenger dimension. |
| conditionList |
array/conditionList Element |
⬜ |
When there are multiple charging rules for different departure times, they will be reflected at this node. Such as before the flight, after the flight |
array/freeSeatInfoList Element
| Parameter Name |
Type |
Required |
Description |
| passengerType |
int |
⬜ |
Passenger type, 0 adult, 1 child, 2 infant |
| isIncluded |
string |
⬜ |
1 has free seat selection, 0 has no free seat selection |
array/conditionList Element
| Parameter Name |
Type |
Required |
Description |
| status |
string |
✅ |
Refund/reschedule logo, T for non-refundable/rescheduled, H for conditional refund/rescheduled, F for free refund/rescheduled, E according to airline rules |
| endMinute |
int |
✅ |
The time limit for applying for refund/rescheduling before departure is measured in minutes. When the Status is H, a value must be assigned; if the Status is T/F, the value is 0. If the application is valid 4 hours before departure, you need to assign a value of 240. After the flight takes off, you need to assign a value of -1. Each node represents the time period from the previous endminte to this endminte. If it is the first node, the ticket has been issued and the time has been calculated. |
| amount |
float |
✅ |
The fee charged by the airline for refund/reschedule. When Status is H, a value must be assigned; if Status is T/F, the value is 0. |
Response Example
Success Response-No package:
{
"marketErrorCode": 200,
"marketErrorMsg": "successful",
"bookingLogId": "1887454957695807488",
"flightList": [
{
"flightRefNum": 1,
"marketingCarrier": "Z2",
"flightNumber": "Z2188",
"codeShare": false,
"operatingCarrier": "",
"operatingFlightNo": "",
"depAirport": "MNL",
"arrAirport": "KIX",
"depTerminal": "",
"arrTerminal": "",
"depTime": "202503200830",
"arrTime": "202503201315",
"aircraftCode": "",
"stops": [],
"cabin": "Z",
"segmentNo": 1,
"seatCount": 2
}
],
"shoppingResultList": [
{
"data": "1887454957855191040",
"flightRefList": [
{
"flightRefNum": 1,
"segmentNo": 1,
"flightSeq": 1,
"tuSequence": 1,
"seatGrade": "Y",
"seatClass": "Z",
"seatCount": 2,
"originSeatClass": ""
}
],
"tuList": [
{
"tuSequence": 1,
"priceList": [
{
"passengerType": 0,
"publishPrice": 159.54,
"price": 159.54,
"taxFeeAmount": 27.23,
"taxFeeDisclosureList": []
},
{
"passengerType": 1,
"publishPrice": 159.54,
"price": 159.54,
"taxFeeAmount": 27.23,
"taxFeeDisclosureList": []
},
{
"passengerType": 2,
"publishPrice": 159.54,
"price": 159.54,
"taxFeeAmount": 27.23,
"taxFeeDisclosureList": []
}
],
"eligibility": "",
"validatingCarrier": "Z2",
"productType": "",
"fareBasis": "",
"bookingOfficeNo": "",
"ticketingOfficeNo": "",
"reservationType": "",
"posCode": "",
"complexTerm": 0,
"minAge": 0,
"maxAge": 0,
"invoiceType": "E",
"minPassengerCount": 1,
"maxPassengerCount": 9,
"note": "",
"airlineAncillaries": {
"baggageService": false,
"unFreeBaggage": true
},
"issuePolicyType": "R1,S1,T1",
"packageInfo": {
"packageType": "AerohubBundle",
"packageName": "AHBasic"
},
"formatBaggageDetailList": [],
"refundInfoList": [
{
"passengerType": 0,
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"conditionList": [
{
"status": "T",
"endMinute": 4,
"amount": 186.77
},
{
"status": "T",
"endMinute": 0,
"amount": 186.77
}
]
},
{
"passengerType": 1,
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"conditionList": [
{
"status": "T",
"endMinute": 4,
"amount": 186.77
},
{
"status": "T",
"endMinute": 0,
"amount": 186.77
}
]
},
{
"passengerType": 2,
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"conditionList": [
{
"status": "T",
"endMinute": 4,
"amount": 186.77
},
{
"status": "T",
"endMinute": 0,
"amount": 186.77
}
]
}
],
"changesInfoList": [
{
"passengerType": 0,
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoShowFee": 0,
"conditionList": [
{
"status": "T",
"endMinute": 4,
"amount": 186.77
},
{
"status": "T",
"endMinute": 0,
"amount": 186.77
}
]
},
{
"passengerType": 1,
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoShowFee": 0,
"conditionList": [
{
"status": "T",
"endMinute": 4,
"amount": 186.77
},
{
"status": "T",
"endMinute": 0,
"amount": 186.77
}
]
},
{
"passengerType": 2,
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoShowFee": 0,
"conditionList": [
{
"status": "T",
"endMinute": 4,
"amount": 186.77
},
{
"status": "T",
"endMinute": 0,
"amount": 186.77
}
]
}
],
"currency": "USD",
"ticketTimeUnit": 86400,
"endorsement": 0
}
]
}
],
"requestId": "5701cdf692a0b279a743c6621d0fcf78",
"processTime": 0.3461,
"schemaErrors": null,
"code": 200,
"msg": "Success"
}
Success Response-including package (AeroHubBundle-“priceMode”: 1):
{
"marketErrorCode": 200,
"marketErrorMsg": "Success",
"shoppingResultList": [
{
"data": "eC69Jblq5HbI3XifMYyzj012a6fLUFS4v94fAsesTIYoZLy5C7LjsARtmzW0MtdGz3qChij2BLvNGxVXSR8rF9VquB3c+J1pqTdMUu98HTPgn2fvJBc+zM8q12+M3AUmSIGnH8tCplC9RujKC6bmbAdr1D+9T8aUosmm8PsUtB10eKCwey/ajCqIigTaeIQ0u0fnGCmVyU39A6EaUg2GCIpJjTVdkCGNEx9/JowIQKo=",
"flightRefList": [
{
"flightRefNum": 1,
"flightSeq": 1,
"originSeatClass": "",
"seatClass": "X",
"seatCount": 6,
"seatGrade": "Y",
"segmentNo": 1,
"tuSequence": 1
}
],
"tuList": [
{
"airlineAncillaries": {
"baggageService": true,
"unFreeBaggage": true
},
"bookingOfficeNo": "",
"issuePolicyType": "R1,S1,T1",
"changesInfoList": [
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"passengerType": 0,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"conditionList": []
},
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"passengerType": 1,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"conditionList": []
}
],
"complexTerm": 0,
"currency": "USD",
"eligibility": "",
"fareBasis": "",
"formatBaggageDetailList": [
{
"baggagePiece": 0,
"baggageWeight": 0,
"flightSeq": 1,
"passengerType": 0,
"segmentNo": 1
},
{
"baggagePiece": 0,
"baggageWeight": 0,
"flightSeq": 1,
"passengerType": 1,
"segmentNo": 1
}
],
"invoiceType": "E",
"maxAge": 0,
"maxPassengerCount": 9,
"minAge": 0,
"minPassengerCount": 1,
"note": "",
"packageInfo": {
"packageType": "AerohubBundle",
"packageName": "AHBasic"
},
"posCode": "",
"priceList": [
{
"passengerType": 0,
"price": 43.11,
"publishPrice": 43.11,
"taxFeeAmount": 23.39
},
{
"passengerType": 1,
"price": 43.11,
"publishPrice": 43.11,
"taxFeeAmount": 23.39
},
{
"passengerType": 2,
"price": 43.11,
"publishPrice": 43.11,
"taxFeeAmount": 23.39
}
],
"productType": "",
"refundInfoList": [
{
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshowFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"passengerType": 0,
"conditionList": []
},
{
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshowFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"passengerType": 1,
"conditionList": []
}
],
"reservationType": "",
"ticketingOfficeNo": "",
"tuSequence": 1,
"validatingCarrier": "OD",
"ticketTimeUnit": 0,
"endorsement": 0
}
]
},
{
"data": "eC69Jblq5HbI3XifMYyzj012a6fLUFS4v94fAsesTIaRawZ3uS4EjkbWyMhApMQf/msADF+f8OQq3jj1WMr4SyFnLyn/yznoJqGpXVkGctFxa6JoMFMkC6Uy/+g3svo5h2b3s22hVWuiChbEkgzkTzxy57qX/nPdggidIh48FOsS79BushywwE6C/e3zHRe3GEfD0FAH8yMhH1X8cPuzzzKp9W6AOag79fLYlLYLwIY=",
"flightRefList": [
{
"flightRefNum": 1,
"flightSeq": 1,
"originSeatClass": "",
"seatClass": "X",
"seatCount": 6,
"seatGrade": "Y",
"segmentNo": 1,
"tuSequence": 1
}
],
"tuList": [
{
"airlineAncillaries": {
"baggageService": true,
"unFreeBaggage": true
},
"issuePolicyType": "R1,S1,T1",
"bookingOfficeNo": "",
"changesInfoList": [
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"passengerType": 0,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"conditionList": []
},
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"passengerType": 1,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"conditionList": []
}
],
"complexTerm": 0,
"currency": "USD",
"eligibility": "",
"fareBasis": "",
"formatBaggageDetailList": [
{
"baggagePiece": 1,
"baggageWeight": 10,
"flightSeq": 1,
"passengerType": 0,
"segmentNo": 1
},
{
"baggagePiece": 1,
"baggageWeight": 10,
"flightSeq": 1,
"passengerType": 1,
"segmentNo": 1
}
],
"invoiceType": "E",
"maxAge": 0,
"maxPassengerCount": 9,
"minAge": 0,
"minPassengerCount": 1,
"note": "",
"packageInfo": {
"packageType": "AerohubBundle",
"packageName": "AHBag10"
},
"posCode": "",
"priceList": [
{
"passengerType": 0,
"price": 62.15,
"publishPrice": 62.15,
"taxFeeAmount": 23.39
},
{
"passengerType": 1,
"price": 62.15,
"publishPrice": 62.15,
"taxFeeAmount": 23.39
},
{
"passengerType": 2,
"price": 62.15,
"publishPrice": 62.15,
"taxFeeAmount": 23.39
}
],
"productType": "",
"refundInfoList": [
{
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshowFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"passengerType": 0,
"conditionList": []
},
{
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshowFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"passengerType": 1,
"conditionList": []
}
],
"reservationType": "",
"ticketingOfficeNo": "",
"tuSequence": 1,
"validatingCarrier": "OD",
"ticketTimeUnit": 0,
"endorsement": 0
}
]
},
{
"data": "eC69Jblq5HbI3XifMYyzj012a6fLUFS4v94fAsesTIZ0udck6URhoNAs3Th7Ri/HCtwcGRAzFg6GoQTbtYV9zp2hH91Bz7hcbeVwW48lEOdUkeNXulzUzZjiUf7x50iJHoslXIpPrfZ38VpyW0/3Do4fKpn4RpBlvCq+eRnJ2kvaWMjW0sWx63lwxy8ZXU0bvuozvYY+W4V42PE2CD2uabSrWb6FyeLfhJE8xAOknGM=",
"flightRefList": [
{
"flightRefNum": 1,
"flightSeq": 1,
"originSeatClass": "",
"seatClass": "X",
"seatCount": 6,
"seatGrade": "Y",
"segmentNo": 1,
"tuSequence": 1
}
],
"tuList": [
{
"airlineAncillaries": {
"baggageService": true,
"unFreeBaggage": true
},
"issuePolicyType": "R1,S1,T1",
"bookingOfficeNo": "",
"changesInfoList": [
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"passengerType": 0,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"conditionList": []
},
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"passengerType": 1,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"conditionList": []
}
],
"complexTerm": 0,
"currency": "USD",
"eligibility": "",
"fareBasis": "",
"formatBaggageDetailList": [
{
"baggagePiece": 1,
"baggageWeight": 20,
"flightSeq": 1,
"passengerType": 0,
"segmentNo": 1
},
{
"baggagePiece": 1,
"baggageWeight": 20,
"flightSeq": 1,
"passengerType": 1,
"segmentNo": 1
}
],
"invoiceType": "E",
"maxAge": 0,
"maxPassengerCount": 9,
"minAge": 0,
"minPassengerCount": 1,
"note": "",
"packageInfo": {
"packageType": "AerohubBundle",
"packageName": "AHBag20"
},
"posCode": "",
"priceList": [
{
"passengerType": 0,
"price": 74.39,
"publishPrice": 74.39,
"taxFeeAmount": 23.39
},
{
"passengerType": 1,
"price": 74.39,
"publishPrice": 74.39,
"taxFeeAmount": 23.39
},
{
"passengerType": 2,
"price": 74.39,
"publishPrice": 74.39,
"taxFeeAmount": 23.39
}
],
"productType": "",
"refundInfoList": [
{
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshowFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"passengerType": 0,
"conditionList": []
},
{
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshowFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"passengerType": 1,
"conditionList": []
}
],
"reservationType": "",
"ticketingOfficeNo": "",
"tuSequence": 1,
"validatingCarrier": "OD",
"ticketTimeUnit": 0,
"endorsement": 0
}
]
},
{
"data": "eC69Jblq5HbI3XifMYyzj012a6fLUFS4v94fAsesTIYfZnX2RwzTU9+E2pqKQ0gKJsFi+1QL5cEXFB7wRr9jSY0DFTi2AyEaZnALqIDnDW75XRb0x/tyrPhXElXWauZKnEOBL9KHelVTGMW18bVtBaz/TqE1kvh7gRx0tBIVHDC8PINPZbdvB5DpVMgsITggT373vTytHyKrmQn+e8bQyuPmdb98syotSq6/69l+LGo=",
"flightRefList": [
{
"flightRefNum": 1,
"flightSeq": 1,
"originSeatClass": "",
"seatClass": "X",
"seatCount": 6,
"seatGrade": "Y",
"segmentNo": 1,
"tuSequence": 1
}
],
"tuList": [
{
"airlineAncillaries": {
"baggageService": true,
"unFreeBaggage": true
},
"issuePolicyType": "R1,S1,T1",
"bookingOfficeNo": "",
"changesInfoList": [
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"passengerType": 0,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"conditionList": []
},
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"passengerType": 1,
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"conditionList": []
}
],
"complexTerm": 0,
"currency": "USD",
"eligibility": "",
"fareBasis": "",
"formatBaggageDetailList": [
{
"baggagePiece": 1,
"baggageWeight": 30,
"flightSeq": 1,
"passengerType": 0,
"segmentNo": 1
},
{
"baggagePiece": 1,
"baggageWeight": 30,
"flightSeq": 1,
"passengerType": 1,
"segmentNo": 1
}
],
"invoiceType": "E",
"maxAge": 0,
"maxPassengerCount": 9,
"minAge": 0,
"minPassengerCount": 1,
"note": "",
"packageInfo": {
"packageType": "AerohubBundle",
"packageName": "AHBag30"
},
"posCode": "",
"priceList": [
{
"passengerType": 0,
"price": 93.43,
"publishPrice": 93.43,
"taxFeeAmount": 23.39
},
{
"passengerType": 1,
"price": 93.43,
"publishPrice": 93.43,
"taxFeeAmount": 23.39
},
{
"passengerType": 2,
"price": 93.43,
"publishPrice": 93.43,
"taxFeeAmount": 23.39
}
],
"productType": "",
"refundInfoList": [
{
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshowFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"passengerType": 0,
"conditionList": []
},
{
"refundType": 0,
"refundStatus": "T",
"refundFee": 0,
"refNoshowFee": 0,
"refNoshow": "T",
"refNoShowCondition": 0,
"passengerType": 1,
"conditionList": []
}
],
"reservationType": "",
"ticketingOfficeNo": "",
"tuSequence": 1,
"validatingCarrier": "OD",
"ticketTimeUnit": 0,
"endorsement": 0
}
]
}
],
"flightList": [
{
"aircraftCode": "",
"arrAirport": "KUL",
"arrTerminal": "",
"arrTime": "202502250715",
"codeShare": false,
"depAirport": "CAN",
"depTerminal": "",
"depTime": "202502250310",
"flightNumber": "OD613",
"flightRefNum": 1,
"marketingCarrier": "OD",
"operatingCarrier": "",
"operatingFlightNo": "",
"stops": []
}
]
}
Error Response
{
"marketErrorCode": 1006,
"marketErrorMsg": "An unknown error occurred"
}
Author:AeroHub Create time:2023-07-10 16:10
Last editor:AeroHub Update time:2026-10-20 11:28