Shopping and Ticketing

Search

post
Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
tripTypestring · enumRequired

The trip type(one way or round trip) you want to search

Example: 1Possible values:
adultNuminteger · min: 1 · max: 9Required

Adult passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9.

Default: 0Example: 1
childNuminteger · max: 8Required

Child passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9

Default: 0Example: 0
infantNuminteger · max: 9Required

Infant passenger count, no more than the number of adult

Default: 0Example: 0
fromCitystringRequired

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
toCitystringRequired

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
fromDatestring · dateRequired

Departure date, the format is YYYYMMDD

Example: 20251010
retDatestring · date | nullableOptional

Return date, the format is YYYYMMDD. If you are searching for round-trip, the return date is mandatory.

airlinesstring[] | nullableOptional

An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.

fromFlightNumbersstring[] | nullableOptional

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
retFlightNumbersstring[] | nullableOptional

Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma).

includeMultipleFareFamilyboolean | nullableOptional

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
currencystring | nullableOptional

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.

requestSourcestring | nullableOptional

Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.

Responses
200Success
application/json
post
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
}
200Success
{
  "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"
        }
      ]
    }
  ]
}

Verify

post
Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
routingIdentifierstringRequired

TheroutingIdentifierfrom search response.

maxResponseTimeinteger | nullableOptional

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.

Default: 15000
requestSourcestring | nullableOptional

The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…

Responses
200Success
application/json
post
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": ""
}
200Success
{
  "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"
}

Order

post
Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
sessionIdstring | nullableOptional

sessionIdreturned by verify response. If you got offer by verify api, then this parameter is required.

offerIdstring | nullableOptional

offerIDreturned by get offer response. If you got offer by "get offer" api, then this parameter is required.

useAtlasMailForContactboolean | nullableOptional

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.
Default: false
requestSourcestring | nullableOptional

The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…

ifSeatOccupiedstring · enum | nullableOptional

Configuration of ordering when the seat is occupied.

Possible values:
localestring | nullableOptional

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

Responses
200Success
application/json
post
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": ""
  }
}
200Success
{
  "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
}

Order Commit

post

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.

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredDefault: gzipExample: gzip
x-atlas-client-idstringRequiredDefault: <YOUR_CLIENT_ID>Example: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredDefault: <YOUR_CLIENT_SECRET>Example: <YOUR_CLIENT_SECRET>
Body
orderNostringRequired

Order number

redirectUristring | nullableOptional

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.

iframestring | nullableOptional

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.

timeoutinteger | nullableOptional

Maximum response time of the API in milliseconds.

Default: 8000
Responses
200Success
application/json
post
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
}
200Success
{
  "status": 307,
  "msg": "text",
  "confirmationUrl": "text"
}

Payment

post
Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: NAR65434_api_1
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
orderNostringRequired

Order number you want to do the payment.

paymentMethodinteger · enumRequired

The payment method you want to use

Possible values:
clientOrderNostring | nullableOptional

Order number at the customer side.

requestSourcestring | nullableOptional

The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…

Responses
200Success
application/json
post
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": ""
}
200Success
{
  "orderNo": null,
  "pnrCode": null,
  "paymentMethod": null,
  "airlines": null,
  "status": 401,
  "msg": "later than the payment deadline"
}

Retrieve Booking

post
Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: NAR65434_api_1
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
orderNostring | nullableOptional

Order number of the order you want to retrieve

pnrCodestring | nullableOptional

The pnrCode is the single reference for the booking. This is the Atlas PNR.

Responses
200Success
application/json
post
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"
}
200Success
{
  "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"
}

Smart Search

post

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 thesmartEnd=false, then send another request (called Subsequent Request) only with therequestId.

  • Follow this flow untilsmartEnd=true. This means that the smart search has been completed.

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
requestIdstringRequired

Only required in Subsequent Request

tripTypestring · enumRequired

The trip type(one way or round trip) you want to search

Example: 1Possible values:
adultNuminteger · min: 1 · max: 9Required

Adult passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9.

Default: 0Example: 1
childNuminteger · max: 8Required

Child passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9

Default: 0Example: 0
infantNuminteger · max: 9Required

Infant passenger count, no more than the number of adult

Default: 0Example: 0
fromCitystringRequired

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
toCitystringRequired

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
fromDatestring · dateRequired

Departure date, the format is YYYYMMDD

Example: 20251010
retDatestring · date | nullableOptional

Return date, the format is YYYYMMDD. If you are searching for round-trip, the return date is mandatory.

airlinesstring[] | nullableOptional

An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.

fromFlightNumbersstring[] | nullableOptional

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
retFlightNumbersstring[] | nullableOptional

Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma).

includeMultipleFareFamilyboolean | nullableOptional

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
currencystring | nullableOptional

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.

displayCurrencystring | nullableOptional

The currency for the display fares in response. If no display currency is specified, the display amount will be null.

requestSourcestring | nullableOptional

Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.

syncbooleanOptional

Is smart search synchronized return, default is asynchronous

Responses
200Success
application/json
post
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
}
200Success
{
  "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"
        }
      ]
    }
  ]
}

Get Offer

post
Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: NAR65434_api_1
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_ID>
Body
adultsinteger · min: 1 · max: 9Required

Number of adults

Default: 0Example: 1
childreninteger | nullableOptional

Number of children

Default: 0Example: 0
infantsinteger | nullableOptional

Number of infants

Default: 0Example: 0
currencystring | nullableOptional

Quotation currency, optional, default will be determined based on a certain strategy, such as the currency of the customer's pre deposit account

Example: USD
Responses
200Success
application/json
post
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
}
200Success
{
  "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"
      ]
    }
  ]
}

Seat Availability

post

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.

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: NAR65434_api_1
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
sessionIdstringRequired

ThesessionIdreturned by price verification api(verify.do). Only required in Non-independent mode.

offerIdstringRequired

TheofferIDreturned by get offer api(getOffers.do). Only required in Non-independent mode.

carrierstringRequired

The IATA code of MSC(known as Most Significant Carrier) of the itinerary.

Responses
200Success
application/json
post
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"
    }
  ]
}
200Success
{
  "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"
}

Get Luggage

post
Header parameters
x-atlas-client-idstringRequired

api access id

Example: NAR65434_api_1
x-atlas-client-secretstringRequired

api access secret

Example: changeit
Accept-EncodingstringOptional

建议设置该请求头,能很大程度地减小网络传输报文的大小

Example: gzip
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Body
offerIdstringRequired

ThesessionIdreturned by verify api(verify.do)

Example: 85540632-ef14-4cb2-900e-453ef0a19477
maxResponseTimeinteger | nullableOptional

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.

Default: 5000
Responses
200Success
application/json
post
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
}
200Success
{
  "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?