Shopping and Ticketing
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
The trip type(one way or round trip) you want to search
1
Possible values: Adult passenger count. Please note that the total number of adults(adultNum
) and children(childNum
) cannot exceed 9.
0
Example: 1
Child passenger count. Please note that the total number of adults(adultNum
) and children(childNum
) cannot exceed 9
0
Example: 0
Infant passenger count, no more than the number of adult
0
Example: 0
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.
LON
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.
PAR
Departure date, the format is YYYYMMDD
20251010
Return date, the format is YYYYMMDD
. If you are searching for round-trip, the return date is mandatory.
An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.
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
Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by ",
" (comma).
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.
false
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.
Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.
POST /search.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: text
x-atlas-client-secret: text
Content-Length: 285
{
"tripType": "1",
"adultNum": 1,
"childNum": 0,
"infantNum": 0,
"fromCity": "CJU",
"fromAirport": "",
"toCity": "SEL",
"toAirport": "",
"fromDate": "20250510",
"retDate": "",
"airlines": [],
"fromFlightNumbers": [],
"retFlightNumbers": [],
"includeMultipleFareFamily": false,
"currency": null,
"requestSource": null
}
{
"status": 100,
"msg": "text",
"routings": [
{
"routingIdentifier": "text",
"supportPaymentMethods": [
1
],
"currency": "text",
"adultPrice": 1,
"adultTax": 1,
"adultDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"childPrice": 1,
"childTax": 1,
"childDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"infantPrice": 1,
"infantTax": 1,
"infantDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"infantAllowed": true,
"childMandatorySeatingFee": 1,
"transactionFee": 1,
"transactionFeeMode": "PER_PAX",
"fromSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"cabin": "text",
"cabinClass": 1,
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"fareFamily": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text",
"seatCount": 1,
"segmentIndex": 1,
"stopCities": "text"
}
],
"retSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"cabin": "text",
"cabinClass": 1,
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"fareFamily": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text",
"seatCount": 1,
"segmentIndex": 1,
"stopCities": "text"
}
],
"rule": {
"hasBaggage": 1,
"baggageElements": [
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 1,
"baggageSize": "text"
}
],
"refundRules": [
{
"refundStatus": "T",
"refundFee": 1,
"currency": "text",
"ruleDetailList": [
{
"status": "T",
"startMinute": "text",
"endMinute": "text",
"amount": "text",
"currency": "text"
}
]
}
],
"changesRules": [
{
"changesType": 1,
"changesStatus": "T",
"changesFee": 1,
"currency": "text",
"ruleDetailList": [
{
"status": "T",
"startMinute": "text",
"endMinute": "text",
"amount": "text",
"currency": "text"
}
]
}
],
"serviceElements": [
{
"hasFreeSeat": 1,
"hasFreeMeal": 1
}
]
},
"ancillaryProductElements": [
{
"ancillaryCode": "text",
"auxBaggageElement": {
"isAllWeight": true,
"piece": 1,
"size": "text",
"weight": 1
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 1,
"currency": "text",
"maxQty": 1,
"minQty": 1,
"price": 1,
"productCode": "text",
"segmentIndex": 1,
"vendorCurrency": "text",
"vendorPrice": 1
}
],
"vendorFare": {
"vendorAdultPrice": 1,
"vendorAdultTax": 1,
"vendorChildPrice": 1,
"vendorChildTax": 1,
"vendorInfantPrice": 1,
"vendorInfantTax": 1,
"vendorCurrency": "text"
},
"links": {
"carrier": "text",
"kind": "text",
"link": "text",
"description": "text"
},
"separateBookings": true,
"refreshTime": "text",
"expireTime": "text",
"ancillarySupported": [
"text"
],
"cardChargeList": [
{
"cardType": "Amex",
"percentage": 1,
"charge": 1,
"currency": "text"
}
]
}
]
}
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
TheroutingIdentifier
from search response.
The interface timeout(in milliseconds), with a default of 5000ms. Note: Due to the influence of network transmission and computational performance, the client may still receive a normal result (instead of a timeout) when the response duration exceeds. This time is used to control the overall response duration of the interface within a certain range, and the error generally will not exceed several hundred milliseconds. If you have strict requirements for the timeout time, it is recommended that you set the timeout time of your HTTP tool library. If the HTTP tool library you use does not support this capability, you may need to use other tools to achieve it, and most programming languages provide relevant capabilities.
15000
The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…
POST /verify.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: text
x-atlas-client-secret: text
Content-Length: 558
{
"routingIdentifier": "Q0pVX1NFTF8xXzIwMjUwNTE2X18xXzBfMHxsZmFsdTUyOTkyfDF8NjcuNDNfNjcuNDNfMTAuMTlfNS4wMF8xNTAuMDVfVVNEfENKVV9TRUxfMV8yMDI1MDUxNl9fMV8wXzBeQ0pVLVJTOTAyLS1HTVAtMjAyNTA1MTYwODAwLTIwMjUwNTE2MDkxNS1OT1JNQUwtMS1eNjcuNDNfNjcuNDNfMTAuMTlfNS4wMF8xNTAuMDVeQVJTX0FSU15eQVJTMUNKVVNFTDQwMDIwMjUwNTE2XktSV145MTQwOC45MF45MTQwOC45MF4xNDIzMi45OHwwfDIwMjUwNTEyMTUyMjE5fDB8MTc0NzAzNDUzOTE4NzVvUHl0fHx8fHw1LjAwfDJ8MHxFVVJ8bm9ybWFs.ARCGNw3zmGATmLi9Wdo3pi8HzKGMGqYjH71G1obB7/w=",
"realTimeBaggage": false,
"maxResponseTime": 15000,
"paymentMethod": 5,
"requestSource": ""
}
{
"sessionId": "bed53752-2c9a-4d76-9eb8-404c813b8324",
"maxSeats": 5,
"routing": null,
"bookingRequirement": {
"passenger": {
"birthday": {
"type": "string",
"required": true,
"description": null,
"maxLength": null
},
"cardIssuePlace": {
"type": "string",
"required": false,
"description": null,
"maxLength": null
},
"cardNum": {
"type": "string",
"required": false,
"description": null,
"maxLength": null
},
"passengerType": {
"type": "int",
"required": true,
"description": null,
"maxLength": null
},
"gender": {
"type": "string",
"required": true,
"description": null,
"maxLength": null
},
"nationality": {
"type": "string",
"required": true,
"description": null,
"maxLength": null
},
"cardExpired": {
"type": "string",
"required": false,
"description": null,
"maxLength": null
},
"name": {
"type": "string",
"required": true,
"description": null,
"maxLength": null
},
"cardType": {
"type": "string",
"required": false,
"description": null,
"maxLength": null
}
}
},
"priceChange": {
"isPriceChange": false,
"originalAdultPrice": 58.87,
"originalAdultTax": 8.56,
"originalChildPrice": 58.87,
"originalChildTax": 8.56,
"originalInfantPrice": 10.19,
"originalInfantTax": 0,
"newAdultPrice": 58.87,
"newAdultTax": 8.56,
"newChildPrice": 58.87,
"newChildTax": 8.56,
"newInfantPrice": 10.19,
"newInfantTax": 0
},
"status": 0,
"msg": "success"
}
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
sessionId
returned by verify response. If you got offer by verify api, then this parameter is required.
offerID
returned by get offer response. If you got offer by "get offer" api, then this parameter is required.
The tag denoting whether to use Atlas email id for contact information.
true
: Use Atlas email as contact email.false
: It is determined according to the strategy agreed upon with the customer or the default strategy of the system.
false
The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…
Configuration of ordering when the seat is occupied.
The country and language environment preferences of the ticket purchaser/contact person. This information may be useful for certain airlines. For example, airlines will use this information to communicate with users in appropriate languages (e.g., via emails). We have prepared the language environments supported by each airline for your reference: Locale
POST /order.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: text
x-atlas-client-secret: text
Content-Length: 639
{
"sessionId": "cc576b96-5dbc-41af-a3fa-7bb662f801ec",
"offerId": "",
"passengers": [
{
"name": "aaaaa/aaaaaabs",
"passengerType": 0,
"birthday": "19900101",
"gender": "M",
"cardNum": "636940383",
"cardType": "NATIONAL_ID_CARD",
"cardIssuePlace": "PT",
"cardExpired": "20250101",
"nationality": "US",
"ffpCardNo": null,
"ffpCarrier": null,
"ancillaries": [
{
"productCode": "",
"segmentIndex": 1
}
]
}
],
"contact": {
"name": "Smith/Jane",
"address": "189, Sky Garden Walk/London/US/US",
"postcode": "EC3M 8AF",
"email": "[email protected]",
"mobile": "0001-982736245"
},
"useAtlasMailForContact": false,
"locale": "",
"requestSource": "CtripNew",
"ifSeatOccupied": "",
"payment": {
"cardType": ""
}
}
{
"sessionId": "ac6e1697-6cae-4f2c-800d-6522fea63361",
"offerId": "",
"orderNo": "TESTA20250512180633328",
"originalOrderNo": null,
"ticketOrderNo": null,
"totalPrice": 71.83,
"totalTransactionFee": 5,
"currency": "USD",
"vendorTotalPrice": 97543.24,
"vendorCurrency": "KRW",
"tktLimitTime": "2025-05-12 18:56:33",
"pnrCode": "BXD990",
"includeExtraBaggage": 0,
"paxTicketInfos": [
{
"name": "aaaaa/aaaaaabs",
"passengerType": 0,
"birthday": "19900101",
"gender": "M",
"cardNum": "636940383",
"cardType": "NATIONAL_ID_CARD",
"cardIssuePlace": "PT",
"cardExpired": "20250101",
"nationality": "US",
"ticketNos": [],
"airlinePNRs": [],
"contactEmails": [
"[email protected]"
],
"contactPhones": [
"0001-982736245"
],
"ancillaries": [
{
"productCode": "SCI_BAG_5KG",
"segmentIndex": 1,
"offerId": null,
"buyMethod": "0",
"ancillaryPrice": 4.4,
"currency": "USD",
"vendorPrice": null,
"vendorCurrency": null,
"productType": "1",
"displayCurrency": "EUR",
"displayPrice": 3.93,
"auxBaggageElement": {
"piece": 0,
"weight": 5,
"isAllWeight": true,
"size": ""
},
"auxSeatElement": null
}
]
}
],
"routing": null,
"duplicateOrders": null,
"paymentOptions": [
{
"paymentMethod": 1,
"serviceFee": {
"amount": 5,
"currency": "USD",
"deductFrom": "DEPOSIT",
"displayAmount": null,
"displayCurrency": null
},
"ticketFare": {
"amount": 71.83,
"currency": "USD",
"deductFrom": "DEPOSIT",
"displayAmount": null,
"displayCurrency": null
},
"paymentFee": null,
"cardType": null
},
{
"paymentMethod": 5,
"serviceFee": {
"amount": 5,
"currency": "USD",
"deductFrom": "DEPOSIT",
"displayAmount": null,
"displayCurrency": null
},
"ticketFare": {
"amount": 71.83,
"currency": "USD",
"deductFrom": "CARD",
"displayAmount": null,
"displayCurrency": null
},
"paymentFee": {
"amount": 3.59,
"currency": "USD",
"deductFrom": "CARD",
"displayAmount": 3.21,
"displayCurrency": "EUR"
},
"cardType": ""
}
],
"status": 0,
"msg": null
}
This API is only required in the FR integration process. After create an order and before payment, you need to call this API to obtain the link of the FR order confirmation page and display it to users. Users should confirm the order through this page, and finally customer pay to Atlas.
application/json
application/json
gzip
Example: gzip
<YOUR_CLIENT_ID>
Example: <YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
Example: <YOUR_CLIENT_SECRET>
Order number
The redirect localtion to which when users confirm an order on the
FR's confirmation page. If you choose to display the confirmation page in Popup
mode, please specify this.
If you want to display the FR's order confirmation page in iframe
mode, please specify iframe=true
, and in this case, the redirectUri
will be ignored.
Maximum response time of the API in milliseconds.
8000
POST /orderCommit.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: gzip
x-atlas-client-id: <YOUR_CLIENT_ID>
x-atlas-client-secret: <YOUR_CLIENT_SECRET>
Content-Length: 70
{
"orderNo": "text",
"redirectUri": "text",
"iframe": "text",
"timeout": 8000
}
{
"status": 307,
"msg": "text",
"confirmationUrl": "text"
}
application/json
application/json
gzip
NAR65434_api_1
<YOUR_CLIENT_SECRET>
Order number you want to do the payment.
The payment method you want to use
Order number at the customer side.
The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…
POST /pay.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: NAR65434_api_1
x-atlas-client-secret: text
Content-Length: 496
{
"orderNo": "TESTA20250424174823885",
"creditCard": {
"cardNumber": "4054695723100768",
"cardExpireMonth": "12",
"cardExpireYear": "2026",
"cardCVV": "111",
"cardHolderLastName": "shao",
"cardHolderFirstName": "justin",
"cardHolderCountry": "CN",
"cardHolderProvince": "JS",
"cardHolderCity": "NJ",
"cardHolderPostCode": "210000",
"cardHolderAddress": "testqqq",
"cardHolderPhone": null,
"cardHolderEmail": null,
"reusable": false,
"paymentLimit": 100,
"threeDS": {
"ip": ""
}
},
"paymentMethod": 3,
"clientOrderNo": "",
"requestSource": ""
}
{
"orderNo": null,
"pnrCode": null,
"paymentMethod": null,
"airlines": null,
"status": 401,
"msg": "later than the payment deadline"
}
application/json
application/json
gzip
NAR65434_api_1
<YOUR_CLIENT_SECRET>
Order number of the order you want to retrieve
The pnrCode is the single reference for the booking. This is the Atlas PNR.
POST /queryOrderDetails.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: NAR65434_api_1
x-atlas-client-secret: text
Content-Length: 35
{
"orderNo": "text",
"pnrCode": "text"
}
{
"orderNo": "TESTA20250210154142832",
"orderList": null,
"pnrCode": "XVOCMN",
"orderStatus": "2",
"ticketStatus": "1",
"paxTicketInfos": [
{
"name": "aaaaa/aaaaaabs",
"passengerType": 0,
"birthday": "19900101",
"gender": "M",
"cardNum": "636940383",
"cardType": "NATIONAL_ID_CARD",
"cardIssuePlace": "PT",
"cardExpired": "20250101",
"nationality": "US",
"ticketNos": [
"S77182"
],
"airlinePNRs": [
"S77182"
],
"contactEmails": [
"[email protected]"
],
"contactPhones": [
"0001-982736245"
],
"ancillaries": []
}
],
"totalPrice": 114.99,
"currency": "USD",
"tktLimitTime": "2025-02-11 16:31:43",
"vendorTotalPrice": 1281.9,
"vendorCost": 1346,
"vendorTotalAncillaryPrice": 0,
"vendorCurrency": "NOK",
"adultTotalFare": 114.99,
"childTotalFare": 114.99,
"infantTotalFare": 96.74,
"totalAncillaryPrice": 0,
"totalTransactionFee": 5,
"paymentFee": null,
"supportPaymentMethod": 3,
"supportPaymentMethods": [
1,
3,
5
],
"paymentMethod": 5,
"routing": {
"fid": "GH7Ocx7LrfhROrFuXZQHggfA6RzTZN8j78tgiZo7oov65liiJrMlVDDkUJyzEF4e0e1DbTgUIErtUgd549cNMlecNXzNQzSa",
"routingIdentifier": "TE9OX0tSS18xXzIwMjUwMjIwX18xXzBfMHxsZmFsdTUyOTkyfDF8MTE0Ljk5XzExNC45OV85Ni43NF81LjAwXzMzMS43Ml9VU0R8TE9OX0tSS18xXzIwMjUwMjIwX18xXzBfMF5MR1ctRDgzNTExLVAtQ1BILTIwMjUwMjIwMDg0NS0yMDI1MDIyMDExMzUtTG93RmFyZSstMS0jQ1BILUQ4MzU2Mi1QLUtSSy0yMDI1MDIyMDE4MDAtMjAyNTAyMjAxOTMwLUxvd0ZhcmUrLTEtXjExNC45OV8xMTQuOTlfOTYuNzRfNS4wMF8zMzEuNzJeQURZX0FEWV5eQURZMUxPTktSSzIwMDIwMjUwMjIwXk5PS3wxfDIwMjUwMjEwMTU0MTQyfDB8MTczOTE3MzMwMjg4OWZrOWR3fHx8fHw1LjAwfDJ8MHw=.jZ+abYYscDB8Hxa1pbKAD0FXS4W/8ZIQNG8M2JW2e1g=",
"supportCreditTransPayment": "1",
"supportPaymentMethods": [
1,
3,
5
],
"currency": "USD",
"adultPrice": 81.86,
"adultTax": 33.13,
"adultDetails": null,
"childPrice": 81.86,
"childTax": 33.13,
"childDetails": null,
"infantPrice": 96.74,
"infantTax": 0,
"infantDetails": null,
"infantAllowed": true,
"transactionFeePerPax": 5,
"transactionFee": 5,
"transactionFeeMode": "PER_TICKET",
"nationalityType": 0,
"nationality": "",
"suitAge": "",
"PaxType": "ADT",
"fromSegments": [
{
"segmentIndex": 1,
"carrier": "D8",
"flightNumber": "D83511",
"depAirport": "LGW",
"depTime": "202502200845",
"arrAirport": "CPH",
"arrTime": "202502201135",
"stopCities": "",
"duration": 110,
"codeShare": false,
"cabin": "P",
"cabinClass": 1,
"seatCount": 9,
"aircraftCode": "73H",
"depTerminal": "",
"arrTerminal": "",
"operatingCarrier": "",
"operatingFlightnumber": "",
"fareFamily": "LowFare+"
},
{
"segmentIndex": 2,
"carrier": "D8",
"flightNumber": "D83562",
"depAirport": "CPH",
"depTime": "202502201800",
"arrAirport": "KRK",
"arrTime": "202502201930",
"stopCities": "",
"duration": 90,
"codeShare": false,
"cabin": "P",
"cabinClass": 1,
"seatCount": 9,
"aircraftCode": "73H",
"depTerminal": "",
"arrTerminal": "",
"operatingCarrier": "",
"operatingFlightnumber": "",
"fareFamily": "LowFare+"
}
],
"retSegments": [],
"combineIndexs": [],
"rule": {
"hasBaggage": 1,
"baggageElements": [
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 23,
"baggageSize": ""
},
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 1,
"baggagePiece": 1,
"baggageWeight": 23,
"baggageSize": ""
},
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 2,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
},
{
"segmentNo": 2,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 23,
"baggageSize": ""
},
{
"segmentNo": 2,
"baggageType": "StandardCheckInBaggage",
"passengerType": 1,
"baggagePiece": 1,
"baggageWeight": 23,
"baggageSize": ""
},
{
"segmentNo": 2,
"baggageType": "StandardCheckInBaggage",
"passengerType": 2,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
},
{
"segmentNo": 1,
"baggageType": "CabinBaggageOverheadLocker",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 10,
"baggageSize": "55*40*23cm"
},
{
"segmentNo": 1,
"baggageType": "CabinBaggageOverheadLocker",
"passengerType": 1,
"baggagePiece": 1,
"baggageWeight": 10,
"baggageSize": "55*40*23cm"
},
{
"segmentNo": 1,
"baggageType": "CabinBaggageOverheadLocker",
"passengerType": 2,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": "55*40*23cm"
},
{
"segmentNo": 2,
"baggageType": "CabinBaggageOverheadLocker",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 10,
"baggageSize": "55*40*23cm"
},
{
"segmentNo": 2,
"baggageType": "CabinBaggageOverheadLocker",
"passengerType": 1,
"baggagePiece": 1,
"baggageWeight": 10,
"baggageSize": "55*40*23cm"
},
{
"segmentNo": 2,
"baggageType": "CabinBaggageOverheadLocker",
"passengerType": 2,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": "55*40*23cm"
}
],
"refundRules": [
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": null,
"refundFee": 0,
"currency": "NOK",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"ruleDetailList": [
{
"ruleId": 4137,
"status": "T",
"refundMethod": null,
"startMinute": 525600,
"endMinute": 0,
"amount": 0,
"currency": "NOK"
},
{
"ruleId": 4138,
"status": "T",
"refundMethod": null,
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "NOK"
}
]
}
],
"changesRules": [
{
"changesType": 0,
"changesStatus": "H",
"changesFee": 650,
"currency": "NOK",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"ruleDetailList": [
{
"ruleId": 4143,
"status": "H",
"refundMethod": null,
"startMinute": 525600,
"endMinute": 0,
"amount": 650,
"currency": "NOK"
},
{
"ruleId": 4144,
"status": "T",
"refundMethod": null,
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "NOK"
}
]
}
],
"serviceElements": [
{
"hasFreeSeat": 2,
"hasFreeMeal": 0
}
]
},
"ancillaryProductElements": [
{
"segmentIndex": 1,
"endSegmentIndex": null,
"productCode": "SCI_BAG_1PC_23KG",
"productName": "StandardCheckInBaggage",
"productType": 1,
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 22.22,
"currency": "USD",
"vendorPrice": 247.69,
"vendorCurrency": "NOK",
"clientTechnicalServiceFee": 0,
"clientTechnicalServiceFeeMode": null,
"auxBaggageElement": {
"piece": 1,
"weight": 23,
"isAllWeight": true,
"size": ""
},
"offerId": null,
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_23KG",
"auxSeatElement": null,
"displayPrice": null,
"displayCurrency": null
},
{
"segmentIndex": 2,
"endSegmentIndex": null,
"productCode": "SCI_BAG_1PC_23KG",
"productName": "StandardCheckInBaggage",
"productType": 1,
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 22.03,
"currency": "USD",
"vendorPrice": 245.55,
"vendorCurrency": "NOK",
"clientTechnicalServiceFee": 0,
"clientTechnicalServiceFeeMode": null,
"auxBaggageElement": {
"piece": 1,
"weight": 23,
"isAllWeight": true,
"size": ""
},
"offerId": null,
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_23KG",
"auxSeatElement": null,
"displayPrice": null,
"displayCurrency": null
}
],
"vendorFare": {
"vendorAdultPrice": 912.6,
"vendorAdultTax": 369.3,
"vendorChildPrice": 912.6,
"vendorChildTax": 369.3,
"vendorInfantPrice": 1078.46,
"vendorInfantTax": 0,
"vendorCurrency": "NOK"
},
"bundleOptions": [],
"links": [],
"separateBookings": false,
"refreshTime": null,
"expireTime": null,
"displayFare": null,
"ancillarySupported": [
"seat",
"luggage"
],
"cardChargeList": null
},
"airlineBookings": [
{
"airlineCode": "D8",
"airlineName": "Norwegian Air Sweden",
"airlinePnr": "S77182",
"airlineWebSiteAddress": "https://www.norwegian.com",
"mmbEmail": "[email protected]",
"tailDigitsOfPaymentCard": null,
"extras": [
{
"name": "email",
"remark": "email",
"value": "[email protected]"
}
]
}
],
"itineraryDownload": "http://121.40.236.223:8081/itineraryDownload.do?orderNo=FKEm34znpwya%2FiJBirhBW5YFgj2M7dX4",
"contact": {
"name": "Smith/Jane",
"address": "189, Sky Garden Walk/London/US/US",
"postcode": "EC3M 8AF",
"email": "[email protected]",
"mobile": "0001-982736245"
},
"ancillaryBuyMethod": null,
"errorCode": null,
"errorMessage": null,
"airlineMessage": null,
"locale": "",
"refundRules": [
{
"airline": "D8",
"ruleType": "1",
"passengerType": "",
"penaltyAmount": null,
"penaltyPercent": null,
"penaltyPercentBase": null,
"airlineFee": null,
"taxRefundable": false,
"fareRefundable": false,
"refundableAncillaries": null,
"startMinute": 525600,
"endMinute": 0,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "1",
"passengerType": "",
"penaltyAmount": null,
"penaltyPercent": null,
"penaltyPercentBase": null,
"airlineFee": null,
"taxRefundable": false,
"fareRefundable": false,
"refundableAncillaries": null,
"startMinute": 0,
"endMinute": -525600,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "0",
"passengerType": "",
"penaltyAmount": "0",
"penaltyPercent": 0,
"penaltyPercentBase": null,
"airlineFee": "0",
"taxRefundable": true,
"fareRefundable": true,
"refundableAncillaries": [],
"startMinute": 525600,
"endMinute": 300,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "0",
"passengerType": "",
"penaltyAmount": "0",
"penaltyPercent": 0,
"penaltyPercentBase": null,
"airlineFee": "0",
"taxRefundable": true,
"fareRefundable": true,
"refundableAncillaries": [],
"startMinute": 525600,
"endMinute": -525600,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "0",
"passengerType": "",
"penaltyAmount": null,
"penaltyPercent": null,
"penaltyPercentBase": null,
"airlineFee": null,
"taxRefundable": false,
"fareRefundable": false,
"refundableAncillaries": null,
"startMinute": 300,
"endMinute": -300,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "0",
"passengerType": "",
"penaltyAmount": "0",
"penaltyPercent": 0,
"penaltyPercentBase": null,
"airlineFee": "0",
"taxRefundable": true,
"fareRefundable": true,
"refundableAncillaries": [],
"startMinute": -300,
"endMinute": -525600,
"refundMethod": "CashBackToOriginalPayment"
}
],
"ifSeatOccupied": "SIMILAR_SEAT",
"displayCurrency": null,
"displayTotalPrice": null,
"displayTotalAncillaryPrice": null,
"vccStatus": "0",
"paymentOptions": null,
"payment": {
"paymentMethod": 5,
"serviceFee": {
"amount": 5,
"currency": "USD",
"deductFrom": "DEPOSIT",
"displayAmount": null,
"displayCurrency": null
},
"ticketFare": {
"amount": 111.41,
"currency": "EUR",
"deductFrom": "CARD",
"displayAmount": null,
"displayCurrency": null
},
"paymentFee": {
"amount": 4.8,
"currency": "EUR",
"deductFrom": "CARD",
"displayAmount": null,
"displayCurrency": null
},
"cardType": null
},
"paymentAttempted": null,
"status": 0,
"msg": "success"
}
Advantages of Smart Search:
Supports real-time search for booking windows and routes not covered in "Search API".
Enhances search result rate and overall coverage.
Points to note:
Smart Search will be activated "on demand". Please contact your account manager or sales director if you want this feature to be activated.
The ist response will return the results from the cache. if the "smartEnd"=false, send the subsequent requests until if the "smartEnd"=true to get all the results from the LIVE search.
Workflow:
Send the "Smart Search" request(called First Request) and receive the response, which includes an ID (
requestId
) used to identify the entire search process, and may also contain part of the flight data(routings
).After receiving the response, if the
smartEnd
=false
, then send another request (called Subsequent Request) only with therequestId
.Follow this flow until
smartEnd
=true
. This means that the smart search has been completed.
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
Only required in Subsequent Request
The trip type(one way or round trip) you want to search
1
Possible values: Adult passenger count. Please note that the total number of adults(adultNum
) and children(childNum
) cannot exceed 9.
0
Example: 1
Child passenger count. Please note that the total number of adults(adultNum
) and children(childNum
) cannot exceed 9
0
Example: 0
Infant passenger count, no more than the number of adult
0
Example: 0
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.
LON
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.
PAR
Departure date, the format is YYYYMMDD
20251010
Return date, the format is YYYYMMDD
. If you are searching for round-trip, the return date is mandatory.
An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.
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
Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by ",
" (comma).
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.
false
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.
The currency for the display fares in response. If no display currency is specified, the display amount will be null.
Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.
Is smart search synchronized return, default is asynchronous
POST /smartSearch.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: text
x-atlas-client-secret: text
Content-Length: 341
{
"requestId": "text",
"tripType": "1",
"adultNum": 1,
"childNum": 0,
"infantNum": 0,
"fromCity": "LON",
"toCity": "PAR",
"fromDate": "20251010",
"retDate": "2025-07-17",
"airlines": [
"text"
],
"fromFlightNumbers": [
"text"
],
"retFlightNumbers": [
"text"
],
"includeMultipleFareFamily": false,
"currency": "text",
"displayCurrency": "text",
"requestSource": "text",
"sync": true
}
{
"status": 100,
"msg": "text",
"requestId": "text",
"smartEnd": true,
"routings": [
{
"routingIdentifier": "text",
"supportPaymentMethods": [
1
],
"currency": "text",
"adultPrice": 1,
"adultTax": 1,
"adultDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"childPrice": 1,
"childTax": 1,
"childDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"infantPrice": 1,
"infantTax": 1,
"infantDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"infantAllowed": true,
"childMandatorySeatingFee": 1,
"transactionFee": 1,
"transactionFeeMode": "PER_PAX",
"fromSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"cabin": "text",
"cabinClass": 1,
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"fareFamily": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text",
"seatCount": 1,
"segmentIndex": 1,
"stopCities": "text"
}
],
"retSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"cabin": "text",
"cabinClass": 1,
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"fareFamily": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text",
"seatCount": 1,
"segmentIndex": 1,
"stopCities": "text"
}
],
"rule": {
"hasBaggage": 1,
"baggageElements": [
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 1,
"baggageSize": "text"
}
],
"refundRules": [
{
"refundStatus": "T",
"refundFee": 1,
"currency": "text",
"ruleDetailList": [
{
"status": "T",
"startMinute": "text",
"endMinute": "text",
"amount": "text",
"currency": "text"
}
]
}
],
"changesRules": [
{
"changesType": 1,
"changesStatus": "T",
"changesFee": 1,
"currency": "text",
"ruleDetailList": [
{
"status": "T",
"startMinute": "text",
"endMinute": "text",
"amount": "text",
"currency": "text"
}
]
}
],
"serviceElements": [
{
"hasFreeSeat": 1,
"hasFreeMeal": 1
}
]
},
"ancillaryProductElements": [
{
"ancillaryCode": "text",
"auxBaggageElement": {
"isAllWeight": true,
"piece": 1,
"size": "text",
"weight": 1
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 1,
"currency": "text",
"maxQty": 1,
"minQty": 1,
"price": 1,
"productCode": "text",
"segmentIndex": 1,
"vendorCurrency": "text",
"vendorPrice": 1
}
],
"vendorFare": {
"vendorAdultPrice": 1,
"vendorAdultTax": 1,
"vendorChildPrice": 1,
"vendorChildTax": 1,
"vendorInfantPrice": 1,
"vendorInfantTax": 1,
"vendorCurrency": "text"
},
"links": {
"carrier": "text",
"kind": "text",
"link": "text",
"description": "text"
},
"separateBookings": true,
"refreshTime": "text",
"expireTime": "text",
"ancillarySupported": [
"text"
],
"cardChargeList": [
{
"cardType": "Amex",
"percentage": 1,
"charge": 1,
"currency": "text"
}
]
}
]
}
application/json
application/json
gzip
NAR65434_api_1
<YOUR_CLIENT_ID>
Number of adults
0
Example: 1
Number of children
0
Example: 0
Number of infants
0
Example: 0
Quotation currency, optional, default will be determined based on a certain strategy, such as the currency of the customer's pre deposit account
USD
POST /getOffers.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: NAR65434_api_1
x-atlas-client-secret: <YOUR_CLIENT_ID>
Content-Length: 194
{
"adults": 1,
"children": 1,
"infants": 1,
"inboundSegments": [
{
"departureAirport": "LON",
"arrivalAirport": "PAR",
"carrier": "U2",
"flightNumber": "673",
"departureDate": "20250301"
}
],
"outboundSegments": null
}
{
"status": 0,
"msg": "text",
"data": [
{
"offer": {
"offerID": "o_b07c7d690aea44889eca1f22ad90841c_1",
"offerToken": "text",
"paxFares": [
{
"paxType": "ADT",
"price": {
"baseAmount": 100,
"taxes": 0,
"currency": "USD"
}
}
],
"penalties": [
{
"journeyRefIDs": [
"text"
],
"amount": 1,
"currency": "USD",
"rule": {
"type": "Refund",
"paxTypes": [
"ADT"
],
"levelType": "Partial",
"effectiveMinutes": 1,
"expirationMinutes": 1,
"fixedAmount": 1,
"airlineFee": 1,
"currency": "USD",
"percent": 0.2,
"percentBase": "fare"
}
}
],
"services": [
{
"serviceID": "text",
"segmentRefIDs": [
"text"
],
"type": "Baggage",
"level": "Chargeable",
"paxTypes": [
"ADT"
],
"metadata": {
"type": "StandardCheckInBaggage",
"maximumWeight": 20,
"maximumPiece": 1,
"maximumDimension": "L+W+H<=158cm"
}
}
],
"outboundJourney": {
"journeyID": "text",
"segments": [
{
"segmentID": "text",
"carrier": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightNumber": "text",
"duration": 1,
"legs": [
{
"departureAirport": "text",
"departureTime": "202503011100",
"departureTerminal": "text",
"arrivalAirport": "text",
"arrivalTime": "text",
"arrivalTerminal": "text",
"aircraftType": "text"
}
],
"fareFamily": "text",
"RBD": "text",
"cabinClass": "Economy",
"seatsLeft": 1
}
]
},
"inboundJourney": {
"journeyID": "text",
"segments": [
{
"segmentID": "text",
"carrier": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightNumber": "text",
"duration": 1,
"legs": [
{
"departureAirport": "text",
"departureTime": "202503011100",
"departureTerminal": "text",
"arrivalAirport": "text",
"arrivalTime": "text",
"arrivalTerminal": "text",
"aircraftType": "text"
}
],
"fareFamily": "text",
"RBD": "text",
"cabinClass": "Economy",
"seatsLeft": 1
}
]
},
"terms": [
{
"carrier": "text",
"URL": "text"
}
]
},
"serviceFee": {
"amountPerUnit": 1,
"unit": "PER_PAX",
"currency": "USD"
},
"bookingRequirement": {
"passenger": {
"name": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
},
"passengerType": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
},
"birthday": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
},
"gender": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
},
"nationality": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
},
"cardType": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
},
"cardNum": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
},
"cardIssuePlace": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
},
"cardExpired": {
"type": "string",
"required": true,
"description": "text",
"maxLength": "text"
}
}
},
"supportedPaymentMethods": [
"Deposit"
]
}
]
}
The seat map API is divided into independent mode and non-independent mode.
Independent mode means it can be used standalone without relying on other APIs.
Non-independent mode depends on the price verification API or the get offer API.
application/json
application/json
gzip
NAR65434_api_1
<YOUR_CLIENT_SECRET>
ThesessionId
returned by price verification api(verify.do
). Only required in Non-independent mode.
TheofferID
returned by get offer api(getOffers.do
). Only required in Non-independent mode.
The IATA code of MSC(known as Most Significant Carrier) of the itinerary.
POST /seatAvailability.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: NAR65434_api_1
x-atlas-client-secret: text
Content-Length: 303
{
"carrier": "W6",
"outboundSegments": [
{
"flightNumber": "W62340",
"segmentIndex": 1,
"depAirport": "FCO",
"arrAirport": "BUD",
"cabinClass": "1",
"depTime": "202501250825"
}
],
"inboundSegments": [
{
"flightNumber": "W62341",
"segmentIndex": 2,
"depAirport": "BUD",
"arrAirport": "FCO",
"cabinClass": "1",
"depTime": "202501301915"
}
]
}
{
"cabins": [
{
"segmentIndex": 1,
"cabin": {
"deck": "main",
"cabinClass": 1,
"cabinLayout": {
"columns": [
{
"designator": "A",
"characteristics": "W"
},
{
"designator": "B",
"characteristics": "M"
},
{
"designator": "C",
"characteristics": "A"
},
{
"designator": "D",
"characteristics": "W"
},
{
"designator": "E",
"characteristics": "M"
},
{
"designator": "F",
"characteristics": "A"
}
],
"rows": {
"first": 4,
"last": 20
},
"exitRowPositions": [
{
"first": 4,
"last": 5
},
{
"first": 10,
"last": 11
},
{
"first": 20,
"last": 20
}
]
},
"rows": [
{
"number": 4,
"seats": [
{
"column": "A",
"seatStatus": "F",
"seatCharacteristics": [
"W",
"L",
"E"
],
"price": 26.29,
"currency": "USD",
"vendorPrice": 26.29,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4A_W6_FCO_BUD",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "B",
"seatStatus": "F",
"seatCharacteristics": [
"M",
"L",
"E"
],
"price": 10.79,
"currency": "USD",
"vendorPrice": 10.79,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4B_W6_FCO_BUD",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "C",
"seatStatus": "F",
"seatCharacteristics": [
"A",
"L",
"E"
],
"price": 30.13,
"currency": "USD",
"vendorPrice": 30.13,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4C_W6_FCO_BUD",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "D",
"seatStatus": "F",
"seatCharacteristics": [
"W",
"L",
"E"
],
"price": 88.43,
"currency": "USD",
"vendorPrice": 88.43,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4D_W6_FCO_BUD",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "E",
"seatStatus": "F",
"seatCharacteristics": [
"M",
"L",
"E"
],
"price": 56.78,
"currency": "USD",
"vendorPrice": 56.78,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4E_W6_FCO_BUD",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "F",
"seatStatus": "F",
"seatCharacteristics": [
"A",
"L",
"E"
],
"price": 29.47,
"currency": "USD",
"vendorPrice": 29.47,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4F_W6_FCO_BUD",
"displayCurrency": null,
"displayPrice": null
}
]
}
]
}
},
{
"segmentIndex": 2,
"cabin": {
"deck": "main",
"cabinClass": 1,
"cabinLayout": {
"columns": [
{
"designator": "A",
"characteristics": "W"
},
{
"designator": "B",
"characteristics": "M"
},
{
"designator": "C",
"characteristics": "A"
},
{
"designator": "D",
"characteristics": "W"
},
{
"designator": "E",
"characteristics": "M"
},
{
"designator": "F",
"characteristics": "A"
}
],
"rows": {
"first": 4,
"last": 20
},
"exitRowPositions": [
{
"first": 4,
"last": 5
},
{
"first": 10,
"last": 11
},
{
"first": 20,
"last": 20
}
]
},
"rows": [
{
"number": 5,
"seats": [
{
"column": "A",
"seatStatus": "F",
"seatCharacteristics": [
"W",
"L",
"E"
],
"price": 34.25,
"currency": "USD",
"vendorPrice": 34.25,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5A_W6_BUD_FCO",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "B",
"seatStatus": "F",
"seatCharacteristics": [
"M",
"L",
"E"
],
"price": 26.42,
"currency": "USD",
"vendorPrice": 26.42,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5B_W6_BUD_FCO",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "C",
"seatStatus": "F",
"seatCharacteristics": [
"A",
"L",
"E"
],
"price": 25.53,
"currency": "USD",
"vendorPrice": 25.53,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5C_W6_BUD_FCO",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "D",
"seatStatus": "F",
"seatCharacteristics": [
"W",
"L",
"E"
],
"price": 22.75,
"currency": "USD",
"vendorPrice": 22.75,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5D_W6_BUD_FCO",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "E",
"seatStatus": "F",
"seatCharacteristics": [
"M",
"L",
"E"
],
"price": 68.06,
"currency": "USD",
"vendorPrice": 68.06,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5E_W6_BUD_FCO",
"displayCurrency": null,
"displayPrice": null
},
{
"column": "F",
"seatStatus": "F",
"seatCharacteristics": [
"A",
"L",
"E"
],
"price": 29.83,
"currency": "USD",
"vendorPrice": 29.83,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5F_W6_BUD_FCO",
"displayCurrency": null,
"displayPrice": null
}
]
}
]
}
}
],
"status": 0,
"msg": "success"
}
api access id
NAR65434_api_1
api access secret
changeit
建议设置该请求头,能很大程度地减小网络传输报文的大小
gzip
application/json
application/json
ThesessionId
returned by verify api(verify.do
)
85540632-ef14-4cb2-900e-453ef0a19477
Query timeout, unit: milliseconds, default 5000ms. Note: Due to network transmission and computational performance impacts, the client may still receive a normal result (rather than a timeout) even if this duration is exceeded. This time is used to control the overall response time of the interface within a certain range, with an error generally not exceeding a few hundred milliseconds. If you have strict requirements for the timeout, it is recommended to set the timeout of your HTTP toolkit. If the HTTP toolkit you are using does not support this capability, you may need to leverage other tools—related capabilities are generally provided in most programming languages.
5000
POST /getLuggage.do HTTP/1.1
Host:
x-atlas-client-id: text
x-atlas-client-secret: text
Accept: text
Content-Type: application/json
Content-Length: 73
{
"offerId": "85540632-ef14-4cb2-900e-453ef0a19477",
"maxResponseTime": 5000
}
{
"status": 212,
"msg": "text",
"data": {
"offerId": "85540632-ef14-4cb2-900e-453ef0a19477",
"outboundSegments": [
{
"segmentIndex": 1,
"carrier": "W6",
"flightNumber": "W65083",
"depAirport": "TIA",
"depTime": "202503051115",
"arrAirport": "GOA",
"arrTime": "202503051320",
"stopCities": "text",
"duration": 125,
"cabin": "R",
"cabinClass": 1,
"seatCount": 6,
"aircraftCode": "text",
"depTerminal": "text",
"arrTerminal": "text",
"operatingCarrier": "W6",
"operatingFlightnumber": "text",
"fareFamily": "text"
}
],
"inboundSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"cabin": "text",
"cabinClass": 1,
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"fareFamily": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text",
"seatCount": 1,
"segmentIndex": 1,
"stopCities": "text"
}
],
"ancillaryProductElements": [
{
"ancillaryCode": "text",
"auxBaggageElement": {
"isAllWeight": true,
"piece": 1,
"size": "text",
"weight": 1
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 1,
"currency": "text",
"maxQty": 1,
"minQty": 1,
"price": 1,
"productCode": "text",
"segmentIndex": 1,
"vendorCurrency": "text",
"vendorPrice": 1
}
]
}
}
Was this helpful?