APIs to perform search, checkout and book an air pnr
Information about each of the travelers in the search request. This information is required.
Type of passenger
The list of all legs for which search results need to be returned.
3 letter IATA airport or metropolitan code for the origin
The code of a city used to identify a set of airports associated with it. For example, NYC or LON.
The airport code identifying a specific airport. For example, JFK or EWR.
3 letter IATA airport or metropolitan code for the destination
The code of a city used to identify a set of airports associated with it. For example, NYC or LON.
The airport code identifying a specific airport. For example, JFK or EWR.
curl -i -X POST \ https://developer.spotnana.com/_mock/openapi/airapi/v2/air/search-flights \ -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \ -H 'Content-Type: application/json' \ -d '{ "travelers": [ { "travelerType": "ADULT", "travelerAge": { "numYears": 22 }, "travelerInfo": { "userId": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" } } } ], "legs": [ { "origin": { "city": "NYC", "airport": "JFK", "multiAirports": { "airports": [ "JFK" ] } }, "destination": { "city": "NYC", "airport": "JFK", "multiAirports": { "airports": [ "JFK" ] } }, "date": { "iso8601": "2017-07-21" } } ], "filters": [ { "cabin": { "type": "DEFAULT", "cabin": "ECONOMY" }, "maxNumStops": 0, "timeRange": { "timeRanges": [ { "legIndex": 0, "departure": { "min": {}, "max": {} }, "arrival": { "min": {}, "max": {} } } ] }, "alliance": { "alliances": [ "STAR_ALLIANCE" ], "airlines": [ "string" ] }, "fareRange": { "min": { "amount": 510, "currencyCode": "GBP", "convertedAmount": 715.42, "convertedCurrency": "USD", "otherCoinage": [ { "coinageCode": "BREX_POINTS", "amount": 1000, "conversionRate": 0.01, "preferredCurrencyConversionRate": 0.01 } ] }, "max": { "amount": 510, "currencyCode": "GBP", "convertedAmount": 715.42, "convertedCurrency": "USD", "otherCoinage": [ { "coinageCode": "BREX_POINTS", "amount": 1000, "conversionRate": 0.01, "preferredCurrencyConversionRate": 0.01 } ] } }, "airlinePref": { "airlinePrefs": [ { "legIndex": 0, "airline": [ "string" ] } ] }, "fareType": "UNKNOWN", "changeable": "NO_CHANGEABLE_FILTER", "connectingAirports": { "legFilters": [ { "legIndex": 0, "airportCodes": [ "string" ] } ] }, "seatPref": { "seatTypes": [ "UNKNOWN" ], "minPitchInch": 0 }, "covid": { "vaccine": "NO_PREFERENCE", "covidTest": "NO_PREFERENCE", "faceMask": "NO_PREFERENCE", "temperatureCheck": "NO_PREFERENCE", "blockedAdjacentSeats": "NO_PREFERENCE" }, "baggage": { "freeCheckedBag": true, "freeCarryOn": true }, "flightNumber": { "flightNumber": { "num": "321", "airlineCode": "AA" } }, "policyFilter": { "onlyInPolicy": true }, "multiTicketFilter": { "hideMultiTicket": true }, "fareCategoryFilter": { "fareCategories": [ { "ngsCategory": "UNKNOWN_NGS_CATEGORY", "cabinViewCategory": "UNKNOWN_CABIN_CATEGORY" } ] }, "corporateCodeFilter": { "corpAccountCodes": [ "PPF03" ] }, "unusedCreditFilter": { "hideWithoutCredits": true } } ], "sortOptions": [ { "sortBy": "PRICE", "sortOrder": "ASCENDING", "shelfNumber": 0 } ], "legSearchParams": { "searchId": "string", "selectedRateOptionId": "string", "legIndex": 0, "asyncRouteHappy": true, "pageNumber": 0, "pageSize": 0 }, "corporateInfo": { "preSearchAnswers": { "answers": [ { "entityId": "string", "userInput": "string", "itemIds": [ 0 ], "answers": [ { "item": "string", "value": "string", "description": "string" } ], "customFieldType": "QUESTION", "questionDisplayText": "string", "question": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "questionFormat": "CHECKBOX", "optionInfo": { "source": "MANUAL", "sourceMetadata": {}, "totalNumOptions": 0, "options": [ null ] }, "isRequired": true, "isDisabled": true, "includeInItinerary": true, "customFieldLocations": [ "POLICY_APPROVAL_EMAIL" ], "matchConditions": { "travelerConditions": { "workerTypes": [], "countries": [], "legalEntities": [], "departments": [], "costCenters": [], "offices": [] }, "travelTypes": [ null ], "travelRegionTypes": [ null ], "tripUsageTypes": [ null ] }, "questionType": { "preSearchQuestionType": "PURPOSE_OF_TRIP", "preCheckoutQuestionType": "OOP_REASON_CODE" } } } ], "userEntitiesResponseId": "string" } } }'
{ "searchId": "ChBjZDg3ZjRjZmRmMTFmMWFiEhBjZDg3Z", "itineraryDetails": { "itineraries": [ … ], "flightData": [ … ] }, "paginationParams": { "numResults": 0, "numPages": 0 }, "metadata": { "airlineInfo": [ … ], "applicableAlliances": [ … ], "legBylegPricing": true, "enableFareCategories": [ … ] } }
curl -i -X POST \ https://developer.spotnana.com/_mock/openapi/airapi/v2/air/flight-attributes \ -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \ -H 'Content-Type: application/json' \ -d '{ "searchId": "ChBjZDg3ZjRjZmRmMTFmMWFiEhBjZDg3Z" }'
{ "searchId": "ChBjZDg3ZjRjZmRmMTFmMWFiEhBjZDg3Z", "itineraryDetails": { "itineraries": [ … ], "flightData": [ … ] }, "paginationParams": { "numResults": 0, "numPages": 0 }, "metadata": { "airlineInfo": [ … ], "applicableAlliances": [ … ], "legBylegPricing": true, "enableFareCategories": [ … ] } }
The searchId returned in the corresponding air search API response.
curl -i -X POST \ https://developer.spotnana.com/_mock/openapi/airapi/v2/air/selected-itinerary \ -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \ -H 'Content-Type: application/json' \ -d '{ "searchId": "ChBjZDg3ZjRjZmRmMTFm", "itineraryId": "IthBjZDg3ZjRjZmRmMTFm" }'
OK
Describes an itinerary containing legs and flights.
Details of the list of flights present in the leg.
The unique ID for this flight in the itinerary.
Wrapper of flight reference to be used in oneOf.
Flight cabin
The airline's one-letter code for the associated fare
The availability of seats on this flight
The account code is used to get corporate negotiated price
CO2 emission details for the flight.
The amenities associated with the flight.
Details of passenger(s) information for this leg.
Unique identifier for the traveler in this response
Fare amount including base fare and tax.
Fare amount including base fare and tax.
Money object containing details such as the amount, the currency code, and the converted amount.
The numeric value for the amount of money.
The 3-letter currency code for the money amount (defined using ISO 4217 standard).
The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
Money object containing details such as the amount, the currency code, and the converted amount.
The numeric value for the amount of money.
The 3-letter currency code for the money amount (defined using ISO 4217 standard).
The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
Fare category of this leg. It describes the cabin class for this flight.
The brand code assigned by the airline corresponding brandName.
The airline code for the airline which is validating this booking and orchestrating the payment.
Type of booked fare
Unique identifier for the traveler in this response
Type of passenger
The detailed information about the fare (including tax and merchant fee details).
Fare amount including base fare and tax.
Money object containing details such as the amount, the currency code, and the converted amount.
Details about of the tax amount in totalFare field.
The detailed information about the fare (including tax and merchant fee details).
The ticket issuance type for a given itinerary, whether single or multiple
The payment method types applicable to the itinerary.
{ "itinerary": { "itineraryId": "kjdUjak8hX", "legs": [ … ], "travelers": [ … ], "fareInfo": { … }, "ticketType": "SINGLE", "policyInfos": { … }, "posInfo": [ … ], "publicFare": { … }, "allowedFopRules": [ … ], "fareAttributes": { … } } }
curl -i -X GET \ 'https://developer.spotnana.com/_mock/openapi/airapi/v2/air/airlines-info?includeInactive=true' \ -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'
Search id returned in the corresponding air search API response.
curl -i -X POST \ https://developer.spotnana.com/_mock/openapi/airapi/v2/air/flight-checkout \ -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \ -H 'Content-Type: application/json' \ -d '{ "searchId": "ChBjZDg3ZjRjZmRmMTFm", "itineraryId": "IthBjZDg3ZjRjZmRmMTFm" }'