Atlas API-Sabre
  1. Shopping and Ticketing
Atlas API-Sabre
  • Shopping and Ticketing
    • Search
      POST
    • Verify
      POST
    • Order
      POST
    • Order Commit
      POST
    • Payment
      POST
    • Retrieve Booking
      POST
    • Smart Search
      POST
    • Get Offer
      POST
    • Seat Availability
      POST
    • Get Luggage
      POST
  • Post Ticketing Service
    • Search Ancillary
      POST
    • Order Ancillary
      POST
  • Notifications and Webhook
    • Register Webhook
      POST
    • Incident List
      POST
  • Refund
    • Refund Quotation
      POST
    • Make a Refund
      POST
    • Query Refund Status
      POST
  • Other Functions
    • Regenerate Order
      POST
    • Stop Ticket Issuance
      POST
    • Order List
      POST
    • PNR Claim
      POST
    • Get Balance
      POST
    • City Pairs API
      POST
    • Email List
      POST
    • Extract PNR
      POST
    • getAtripToken
      POST
  1. Shopping and Ticketing

Search

POST
/search.do

Request

Header Params
Accept
string 
required
Example:
application/json
Content-Type
string 
required
Example:
application/json
Accept-Encoding
string 
required
Example:
gzip
x-atlas-client-id
string 
required
Example:
<YOUR_CLIENT_ID>
x-atlas-client-secret
string 
required
Example:
<YOUR_CLIENT_SECRET>
Body Params application/json
tripType
enum<string> 
required
The trip type(one way or round trip) you want to search
Allowed values:
12
Example:
1
adultNum
integer 
required
Adult passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9.
>= 1<= 9
Default:
0
Example:
1
childNum
integer 
required
Child passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9
>= 0<= 8
Default:
0
Example:
0
infantNum
integer 
required
Infant passenger count, no more than the number of adult
>= 0<= 9
Default:
0
Example:
0
fromCity
string 
required
IATA code of the departure city or airport (in capital letters).When the airport code you sent is different from the code of the city where the airport is located, we can recognize that it is an airport, otherwise we will treat it as a city code. We will filter flights based on your departure location type.
Example:
LON
toCity
string 
required
IATA code of the arrival city or airport (in capital letters).When the airport code you sent is different from the code of the city where the airport is located, we can recognize that it is an airport, otherwise we will treat it as a city code. We will filter flights based on your departure location type.
Example:
PAR
fromDate
string <date>
required
Departure date, the format is YYYYMMDD
Example:
20251010
retDate
string <date> | null 
optional
Return date, the format is YYYYMMDD. If you are searching for round-trip, the return date is mandatory.
airlines
array[string] | null 
optional
An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.
>= 0 items
fromFlightNumbers
array[string] | null 
optional
Search for specified departure flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma).
Example:
["FR123"]: A direct flight
["FR456,FR789"]: A connecting flight
["FR123", "FR456,FR789"]: 2 flights, a direct flight and a connecting flight
retFlightNumbers
array[string] | null 
optional
Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma).
includeMultipleFareFamily
boolean  | null 
optional
Search only for the lowest fare or for the Fare Families. By default, each flight only returns the lowest fare, and each array element in the response represents: flight - lowest fare. If this parameter is turned on, each element of the search results will be a combination of flight and one of the fares, that is, different elements will have the same flight but different ticket fare.
Default:
false
currency
string  | null 
optional
This is the settlement currency. The 3-letter currency code should be entered. This field is optional, and when you want to settle with Atlas in different currencies (especially when you have opened multiple deposit accounts in different currencies in Atlas), you need to use this parameter.
displayCurrency
string  | null 
optional
The currency for the display fares in response. If no display currency is specified, the display amount will be null.
requestSource
string  | null 
optional
Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.
Example
{
    "tripType": "1",
    "adultNum": 1,
    "childNum": 0,
    "infantNum": 0,
    "fromCity": "CJU",
    "fromAirport": "",
    "toCity": "SEL",
    "toAirport": "",
    "fromDate": "20250510",
    "retDate": "",
    "airlines": [],
    "fromFlightNumbers": [],
    "retFlightNumbers": [],
    "includeMultipleFareFamily": false,
    "currency": null,
    "displayCurrency": "EUR",
    "requestSource": null
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://sandbox.atriptech.com/search.do' \
--header 'Accept: application/json' \
--header 'Accept;' \
--header 'Accept-Encoding: gzip' \
--header 'Accept-Encoding;' \
--header 'x-atlas-client-id: <YOUR_CLIENT_ID>' \
--header 'x-atlas-client-id;' \
--header 'x-atlas-client-secret: <YOUR_CLIENT_SECRET>' \
--header 'x-atlas-client-secret;' \
--header 'Content-Type: application/json' \
--data-raw '{
    "tripType": "1",
    "adultNum": 1,
    "childNum": 0,
    "infantNum": 0,
    "fromCity": "CJU",
    "fromAirport": "",
    "toCity": "SEL",
    "toAirport": "",
    "fromDate": "20250510",
    "retDate": "",
    "airlines": [],
    "fromFlightNumbers": [],
    "retFlightNumbers": [],
    "includeMultipleFareFamily": false,
    "currency": null,
    "displayCurrency": "EUR",
    "requestSource": null
}'

Responses

🟢200Success
application/json
Body
status
enum<integer> 
required
100: Missing required request data. Description: You should pass the necessary parameters in the HTTP request body.
101: Illegal request data. Description: Check the format of request
102: Illegal request param. Description: Some parameters do not meet the requirements. Please adjust them according to the error message.
105: OD is not in client's round-trip white list. Description: This city pair has not been whitelisted. Check with your account manager if there is a restriction to your account.
106: You are not allowed to search. Description: Check with your account manager if there is a restriction to your account.
107: Insufficient balance. Description: The account balance is below the agreed threshold. Top-up your account on a priority.
108: Route is restricted / System limitations. Description: The airline has flights and quotations, but Atlas has closed sales for some reasons. The reasons can be 1) The sales were manually closed 2) The system has detected a risk of sold out 3) Prohibitions on nearby flights.
109: The number of searches exceeded the limit. Description: The searches per day have exceeded the allowed limit. Check with your account manager if there is a restriction to your account.
110: Too many concurrent requests.. Description: The QPS (Queries Per Second) is higher than the allowed limit. If your business requires more resources, please contact your account manager.
111: Real time search is not allowed. Description: This feature is not activated for your account. Connect with your account manager if you require this service.
112: Timed out. Description: The search request has timed-out. For further details please refer to FAQs --> Atlas API General Information.
113: Airline is under maintenance. Description: Airline is in "Inactive" or "Maintenance" status with Atlas. This does not necessarily mean that there is an issue with the Airline website itself. Wait for the status to change to “active”.
114: No flights present. Description: This may happen when: - The airline does not fly on that date for the searched city pair. Check the airline website to see if the flight is operational for that date.
116: Search data not captured. Description: An error was reported during the search data stoprage at Atlas' end. If this error is not constantly reported, you can try trying again. If the error persists, then it is necessary to contact the account manager.
123: Too many requests but too few paid orders. Description: The service has been blocked as the search requests are too many and the paid orders are very less.
124: Unsupported settlement currency. Description: The settlement currency is different than what is accepted by Atlas. Change the currency to the currency accepted by Atlas for settlement.
126: requestId does not exist or request is already ended. Description:
900: Unauthorized access. Description: Incorrect credentials Or the account status is incorrect Or try to access other customer's data. Check credentials. If the error still persists, contact your account manager.
9999: Inner error. Description: There is a problem or a bug in the system. Contact your account manager.
Allowed values:
1001011021051061071081091101111121131141161231241269009999
msg
string 
optional
It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.
routings
array[object (Routing) {30}]  | null 
optional
routingIdentifier
string 
required
This unique string identifier is used to verify requests for a particular route.
Note:
Has a certain validity period (generally not exceeding 6 hours).
supportCreditTransPayment
enum<string> 
deprecated
This tag is used to identify if the fare is support to be paid using the client's credit card(known as vcc passthrough). This field has been deprecated, please use supportPaymentMethods instead.
Allowed values:
01
Example:
1
supportPaymentMethods
array[integer]
required
Support payment methods for this fare. If payment is not supported in any way, this will be nullor[]. Each item in this array is one of the following:
1: deposit
3: vcc passthrough
4: BYOA(Bring Your Own Account)
5: MoR
Allowed values:
1345
currency
string 
required
The currency in which Atlas settles transactions with you.
adultPrice
number 
required
Adult fare per passenger.
adultTax
number 
required
Adult tax per passenger.
adultDetails
array[object (Price-Item) {4}]  | null 
optional
Details of the adult price composition.
childPrice
number 
required
Child fare per passenger.
childTax
number 
required
Child tax per passenger.
childDetails
array[object (Price-Item) {4}]  | null 
optional
Details of the child price composition.
infantPrice
number 
required
Infant fare per passenger.
infantTax
integer 
required
Infant tax per passenger.
infantDetails
array[object (Price-Item) {4}]  | null 
optional
Details of the child infant composition.
infantAllowed
boolean 
required
Since infantPrice and infantTax will never be null, when the fare does not support infants or is free for infants, both infantPrice and infantTax display 0. In this case, you need this field to distinguish which situation it is.
Scenario description:
true: infants is supported by this fare, infantPrice and infantTax will >= 0
false: infants is not supported by this fare, infantPrice and infantTaxwill be displayed as 0
childMandatorySeatingFee
number  | null 
optional
Only valid for FR integration.
FR Seat Selection Rules:
Children under 12 years old are provided with free seats.
Children must be seated in the same row as an adult.
Each adult may accompany up to 4 children.
For fare families that do not include seat selection fees (e.g., Basic or Family Plus), FR offers discounted seat selection fees for adults traveling with children. ThechildMandatorySeatingFeefield displays this discounted fee.
For fare families that already include seat selection fees, this field will be null.
Handling by Atlas for Fare Families Without Seat Selection Fees:
The number of children cannot exceed 4.
Customers cannot select seats manually.
Atlas will automatically assign seats randomly to one adult and all children according to FR's rules. The adult will be charged the childMandatorySeatingFee for their seat.
For Fare Families That Include Seat Selection Fees:
Seat selection is free.
Users may call the seat map API to select seats; otherwise, Atlas will automatically assign seats.
transactionFeePerPax
number 
deprecated
Technical service fee per passenger. This field has been deprecated and final total transaction fee will calculated based on transactionFee and transactionFeeMode.
transactionFee
number 
required
Technical service fee as per transactionFeeMode. The following lists the calculation methods for the final technical service fee in various situations.
transactionFeeMode=PER_SEGMENT:transactionFee * number of passengers * number of segments.
transactionFeeMode=PER_TICKET:transactionFee * number of passengers * number of orders on airline side.
transactionFeeMode=PER_PAX:transactionFee * number of passengers.
transactionFeeMode=PER_BOOKING:transactionFee.
transactionFeeMode
enum<string> 
required
Calculation method for technical service fee.
Allowed values:
PER_SEGMENTPER_TICKETPER_PAXPER_BOOKING
Example:
PER_PAX
fromSegments
array[object (Routing-Segment) {19}] 
required
For outbound segments.
retSegments
array[object (Routing-Segment) {19}]  | null 
optional
For inbound segments. For one-way, this field will be null or [].
rule
object 
required
ancillaryProductElements
array[object (AncillaryProduct) {14}]  | null 
optional
vendorFare
object 
required
To identify the vendor’s fare with vendor’s currency. It is only available whensupportPaymentMethodscontains3or4.
links
object (T-And-C-Link) 
required
The terms and conditions links of the airlines. Will only return in verify response.
separateBookings
boolean 
required
When the outbound and inbound of round trip need to be booked separately, it will be true.
refreshTime
string 
required
If the fare is from the cache of Atlas, this field is used to indicate the refresh time of the cache. The time is a certain moment in the past (UTC), and the format is:yyyy-MM-dd'T'HH:mm:ss'Z'.
expireTime
string 
required
If the current fare comes from the cache of Atlas, this field is used to indicate the estimated expiration time of the cache. This time is a certain moment in the future (UTC), and the format is:yyyy-MM-dd'T'HH:mm:ss'Z'.
Note:
This time is estimated, which means Atlas may refresh the cache before or after that time.
displayFare
object  | null 
optional
To identify the display fare with display currency. If the request parameterdisplayCurrencyfor the search or verify is not specified, then this node will benull.
ancillarySupported
array[string]
required
A list of ancillary service types that the fare allows for additional purchase. Possible value contains:
luggage
seat: You can carry out the subsequent seat selection process through our seat map interface.
cardChargeList
array[object (CardCharge) {4}]  | null 
optional
Payment handling fee for MoR/VCC
Example
{
    "status": 100,
    "msg": "string",
    "routings": [
        {
            "routingIdentifier": "string",
            "supportCreditTransPayment": "0",
            "supportPaymentMethods": [
                1
            ],
            "currency": "string",
            "adultPrice": 0,
            "adultTax": 0,
            "adultDetails": [
                {
                    "code": "string",
                    "type": "base",
                    "amount": 0,
                    "description": "string"
                }
            ],
            "childPrice": 0,
            "childTax": 0,
            "childDetails": [
                {
                    "code": "string",
                    "type": "base",
                    "amount": 0,
                    "description": "string"
                }
            ],
            "infantPrice": 0,
            "infantTax": 0,
            "infantDetails": [
                {
                    "code": "string",
                    "type": "base",
                    "amount": 0,
                    "description": "string"
                }
            ],
            "infantAllowed": true,
            "childMandatorySeatingFee": 0,
            "transactionFeePerPax": 0,
            "transactionFee": 0,
            "transactionFeeMode": "PER_SEGMENT",
            "fromSegments": [
                {
                    "aircraftCode": "string",
                    "arrAirport": "string",
                    "arrTerminal": "string",
                    "arrTime": "string",
                    "cabin": "string",
                    "cabinClass": 1,
                    "carrier": "string",
                    "codeShare": true,
                    "depAirport": "string",
                    "depTerminal": "string",
                    "depTime": "string",
                    "duration": 0,
                    "fareFamily": "string",
                    "flightNumber": "string",
                    "operatingCarrier": "string",
                    "operatingFlightnumber": "string",
                    "seatCount": 0,
                    "segmentIndex": 0,
                    "stopCities": "string"
                }
            ],
            "retSegments": [
                {
                    "aircraftCode": "string",
                    "arrAirport": "string",
                    "arrTerminal": "string",
                    "arrTime": "string",
                    "cabin": "string",
                    "cabinClass": 1,
                    "carrier": "string",
                    "codeShare": true,
                    "depAirport": "string",
                    "depTerminal": "string",
                    "depTime": "string",
                    "duration": 0,
                    "fareFamily": "string",
                    "flightNumber": "string",
                    "operatingCarrier": "string",
                    "operatingFlightnumber": "string",
                    "seatCount": 0,
                    "segmentIndex": 0,
                    "stopCities": "string"
                }
            ],
            "rule": {
                "hasBaggage": 0,
                "baggageElements": [
                    {
                        "segmentNo": 0,
                        "baggageType": "StandardCheckInBaggage",
                        "passengerType": 0,
                        "baggagePiece": 0,
                        "baggageWeight": 0,
                        "baggageSize": "string"
                    }
                ],
                "refundRules": [
                    {
                        "refundStatus": "T",
                        "refundFee": 0,
                        "currency": "string",
                        "ruleDetailList": [
                            {
                                "status": "T",
                                "startMinute": "string",
                                "endMinute": "string",
                                "amount": "string",
                                "currency": "string"
                            }
                        ]
                    }
                ],
                "changesRules": [
                    {
                        "changesType": 0,
                        "changesStatus": "T",
                        "changesFee": 0,
                        "currency": "string",
                        "ruleDetailList": [
                            {
                                "status": "T",
                                "startMinute": "string",
                                "endMinute": "string",
                                "amount": "string",
                                "currency": "string"
                            }
                        ]
                    }
                ],
                "serviceElements": [
                    {
                        "hasFreeSeat": 0,
                        "hasFreeMeal": 0
                    }
                ]
            },
            "ancillaryProductElements": [
                {
                    "ancillaryCode": "string",
                    "auxBaggageElement": {
                        "isAllWeight": true,
                        "piece": 0,
                        "size": "string",
                        "weight": 0
                    },
                    "canPurchasePostTicket": 0,
                    "canPurchaseWithTicket": 0,
                    "categoryCode": "StandardCheckInBaggage",
                    "clientTechnicalServiceFee": 0,
                    "currency": "string",
                    "maxQty": 0,
                    "minQty": 0,
                    "price": 0,
                    "productCode": "string",
                    "segmentIndex": 0,
                    "vendorCurrency": "string",
                    "vendorPrice": 0
                }
            ],
            "vendorFare": {
                "vendorAdultPrice": 0,
                "vendorAdultTax": 0,
                "vendorChildPrice": 0,
                "vendorChildTax": 0,
                "vendorInfantPrice": 0,
                "vendorInfantTax": 0,
                "vendorCurrency": "string"
            },
            "links": {
                "carrier": "string",
                "kind": "string",
                "link": "string",
                "description": "string"
            },
            "separateBookings": true,
            "refreshTime": "string",
            "expireTime": "string",
            "displayFare": {
                "currency": "string",
                "adultPrice": 0,
                "adultTax": 0,
                "childPrice": 0,
                "childTax": 0,
                "infantPrice": 0,
                "infantTax": 0
            },
            "ancillarySupported": [
                "string"
            ],
            "cardChargeList": [
                {
                    "cardType": "Amex",
                    "percentage": 0,
                    "charge": 0,
                    "currency": "string"
                }
            ]
        }
    ]
}
Modified at 2025-07-18 06:58:49
Next
Verify
Built with