APIs to perform search, checkout and book an air pnr
Air API (v2)
Information about each of the travelers in the search request. This information is required.
The list of all legs for which search results need to be returned.
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.
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.
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/search-flights
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/search-flights
- curl
- JavaScript
- Node.js
- Python
curl -i -X POST \
https://api-ext-sboxmeta.partners.spotnana.com/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"
}
},
"searchMode": "EXPRESS"
}'{ "searchId": "ChBjZDg3ZjRjZmRmMTFmMWFiEhBjZDg3Z", "itineraryDetails": { "itineraries": [ … ], "flightData": [ … ] }, "paginationParams": { "numResults": 0, "numPages": 0 }, "metadata": { "airlineInfo": [ … ], "applicableAlliances": [ … ], "legBylegPricing": true, "enableFareCategories": [ … ], "isExpressSearch": true } }
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/flight-attributes
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/flight-attributes
- curl
- JavaScript
- Node.js
- Python
curl -i -X POST \
https://api-ext-sboxmeta.partners.spotnana.com/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": [ … ], "isExpressSearch": true } }
The searchId returned in the corresponding air search API response.
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/selected-itinerary
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/selected-itinerary
- curl
- JavaScript
- Node.js
- Python
curl -i -X POST \
https://api-ext-sboxmeta.partners.spotnana.com/v2/air/selected-itinerary \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"searchId": "ChBjZDg3ZjRjZmRmMTFm",
"itineraryId": "IthBjZDg3ZjRjZmRmMTFm"
}'OK
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.
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
The amenities associated with the flight.
Details of passenger(s) information for this leg.
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).
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).
The brand code assigned by the airline corresponding brandName.
The airline code for the airline which is validating this booking and orchestrating the payment.
Unique identifier for the traveler in this response
The payment method types applicable to the itinerary.
{ "itinerary": { "itineraryId": "kjdUjak8hX", "legs": [ … ], "travelers": [ … ], "fareInfo": { … }, "ticketType": "SINGLE", "policyInfos": { … }, "posInfo": [ … ], "publicFare": { … }, "allowedFopRules": [ … ], "fareAttributes": { … } } }