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:

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
Author:AeroHub  Create time:2023-07-10 19:09
Last editor:AeroHub  Update time:2025-07-29 17:21