Introduction
Welcome to the FareMarket API, supporting your airline ticket sales business. We continuously update the documentation to ensure compatibility with a broader range of scenarios in ticket sales. Accuracy and user-friendliness are our guiding principles. If you have any questions or uncertainties, please contact AeroHub, and we are eager to collaborate with you to improve the documentation.
Integration Process
Follow the outlined process for development, ensuring that all interfaces are fully implemented.

API URL:
- Test URL: https://test.faremarket-api.aerohubtech.com
- Production URL: https://faremarket-api.aerohubtech.com
IP Whitelist
To secure your service, our API uses an IP whitelist mechanism, ensuring that only authorized IP addresses can access it. If you need to access our API from specific IP addresses or IP address ranges, provide these addresses to us for whitelist inclusion.
- ** You can provide IP addresses in two formats: **
CIDR format: For example, 209.85.231.104/24, representing an IP address range.Individual IP address: For example, 209.85.231.104, representing a specific IP address.
Exercise caution in determining which IP addresses or ranges to add to the whitelist to protect the security of your service. Only provide IP addresses or ranges necessary for accessing our API.
Here’s the encryption information:
Encryption Mode: AES/CBC/PKCS5Padding
After AES encryption, BASE64 encoding is applied. The key must be 128 bits.
Initialization Vector (IV): A 16-byte empty array.
Example Key (first 16 characters of the supplier APIKEY): xxxnv1b653H8pTKf
Original:
{"requestId": "test", "tripType": 1, "sessionId": "11fe29ed46f8c4624bd2b12c9ec85442mwtze5pj", "orderNo": "1697779645", "passengers": [{"name": "QIN/GANGFENG", "ageType": 0, "birthday": "19890910", "gender": "M", "cardNo": "", "cardType": "", "cardIssuePlace": "CN", "cardExpired": "20201125", "nationality": "CN"}], "contact": {"fullName": "KAYSEN/XU", "address": "xxx Building, No.99 Fuquan Road, Shanghai, China", "postCode": "200335", "email": "xxx@test.tech", "mobile": "13000000000", "useGuestMail": true}, "routing": {"data": "eyJzIjogIjExZmUyOWVkNDZmOGM0NjI0YmQyYjEyYzllYzg1NDQyIiwgIm0iOiAiRERXRUIiLCAicHQiOiB7fSwgImNsIjogeyJmYyI6IFsiWSJdLCAicmMiOiBbXX0sICJwaXQiOiAiIn0=", "fromSegments": [{"marketingCarrier": "DD", "depAirport": "HKT", "depTime": "202310301125", "arrAirport": "DMK", "arrTime": "202310301250", "seatClass": "W", "seatGrade": "Y", "flightNumber": "DD525", "codeShare": false, "aircraftCode": "320", "operatingCarrier": "", "operatingFlightNo": "", "segmentNo": 0, "stopCities": ""}], "retSegments": []}, "passengerBaggages": [{"passengerName": "QIN/GANGFENG", "payBaggages": []}]}Encrypted:
X6NJgTJi7+sf63Vq3NNH0Xh5pW7sbIpzxEL56vipvC+Lt3cord8Truu13ELyUaZomeH53cbDIEEbW5UYaIXJywWvgN7aO/96q4FmHjNL54jwzHZgWniT5QZXQkLfIXl7aRZAXaOdbEKNqdsZRU4sV9ROoYtnwtO71Gp0yEU56NnGWy7Vx4FlrW5wcTRA1NsVBbZ1uSNZ8aUaJSNbgEV5DwW6+pBf8oRl6PfNM6TgnFfauV8b1TKUTK27FSpRWAZS3wTcxtPaIj3y15/HvTMkeG3w/rlNIo7IrMdRwto5wy/vpoC6jRjFrrJelDOGQ4uWOEXE6jK4jQxQz9uQe4rKCB1Xp/XIdk8ORiwOUGfERznfPcfqcDE0wVYh2iVytNnA5CukOCfyfxvpXiHBNIWa/4vmmLHG9LmiGZKioNfJNKYHBCsH8k5aC0isP3jRgrC1QGD6bAiEg7MBWU1AasPlAWjwgUCmH2PgC8+Uj/j7BYKR2McFhu3c4yAFfk4fIKWx33YXvOtMTRL/Httbjtm2fE5BpWOYqcJybNWlOBIfNGN+Zts/QQT/VjXzn1GqEYvSGfoNolc7wEngM55Uz71BtYPKJctOzorZcUNiLUKxLcK7wNxmO6v0pAnzQa1YmYME++dNuTD9fE6dtuBastyOj555OX+r61VAy3a/xwXcSVXldxonqHBKszpFS4O0YA2VDj/Hk+FlDtz3vDJQrSqYTih2JWDqW9NRWr1l8fIvF62HZEQjL4rpnVWpx1cc9ts+jNbnLvCohseWrMjLrcfET+Jx3s6LOv+x8kaBditIWjwCgeWs9cmTM69+SIh2Gvqx5D1dmAHcefTwiuAKQ3oVxE0P61zH7OMPsQrWutoSjp1cficsUh6eQwG46zoPhdjNBR2S+if5NBPJ6bijqPjyFTDtg7GqCU27bYOW8kHURM4BQLdhMfUiFTXsCehaN+sJrYCRKmyP2mLMdqQ3DwcYmNOboY2c2eNIsbMbX2B09ttoiMUYEp+z0nMhgA0WZlgyEWfAaPxYYuz8qYS+8deDC5kaYstFIO+nc6OaEofHYdA5lflJ9KLtDJIRL2tb0knUy9+kE/eHZM/3aA/PyqeTp1Itzza54XphfSFgB/jGYSmwPHv2+Iwmvm0/ChPlYe7bcK1zQe55zRt5tljzir+hV3tt57MqQ4igZkl3zXT7d/eWKGGRwbRpi7kpyDPD/GO269gHTTCGsFtHUKj7k9qCHhhmVkofnBX379EGH50MIgRc+nP0pTTfPCSxIZkJsDvajjqSvY+curhOvxTEJ1URTmFe6/LoVsr4mgPY489HlCzngSInwOhCzNxzmHNKwo938fxWhX5JKBR7QhixvobMWgPS/+DGY8Shjb95Z7RJlzD1FNwyuFQC+NnzbQnKMaeHMIFPbmczG9wI5Qge7BK+c8zFaQ85OFWAtEBcLpOUlQHWoKzzs/vToJoDAljr7gqhBCAzxWqPKpNrhjisjVjy7Q==
Market Errors:
| marketErrorCode | marketErrorMsg |
|---|---|
| 200 | Successful |
| 400 | Failed |
| 1002 | The route has no pricing available |
| 5013 | There are no quotes available for SSR. |
| 5102 | Quote data cache has expired |
| 5104 | Policy not found |
| 5105 | Invalid request |
| 5107 | Passenger not allowed |
| 5109 | No Available Seats in Requested Class |
| 5110 | No Available Seats in Requested Class (Order) |
| 5111 | No Available Seats in Requested Class (Lock) |
| 5113 | Promo changed |
| 5117 | Metadata not found |
| 5118 | System error |
| 5119 | Route not supported |
| 5120 | Route not in whitelist |
| 5121 | Route in blacklist |
| 5122 | No policy for route |
| 5123 | Search date not supported |
| 5124 | No method supported |
| 5125 | No carrier supported |
| 5126 | Trip type not supported |
| 5127 | Over max waiting time |
BundleName Definition Instructions:
| Package Code | Package Type | Naming Rules and Examples |
|---|---|---|
| AHBasic | Lowest-priced product package, must not be a non-standard product | Package name can be empty or directly use AHBasic |
| AHPremium | Premium cabin product package | Use AHPremium as the package name |
| AHBag | Baggage product package | Use package CODE + baggage weight in kilograms as the package name, e.g., AHBag15 indicates the baggage weight is 15 kg |
| AHNS | Non-standard product package | Use AHNS as the package name |
Last editor:AeroHub Update time:2025-07-29 17:21