APIs to perform search, checkout and book an air pnr
API reference
/Air
/- Get PNR exchange details
Get air itineraries
Get flight attributes
Get selected itinerary
Get Airlines Information (Air)
Get flight checkout details
Get flight seat map
Initiate booking
Validate air itinerary
Validate air itinerary (interim)
Create air pnr
Cancel Air Pnr
Modify Search
Modify Book
Edit PNR
Get Special Service Requests (SSR)
Get Special Service Requests (SSR) for a Category
Returns the Air Raw Fare Rules for a Segment or Pnr
Get unused credits for a traveler
Get unused credits for a company
Get transferable unused credits for a company
Migrate Unused Credits of a traveler to and fro Company Credits
Get PNR exchange details
Air API (v2)
Download OpenAPI description
Languages
Servers
Sandbox URL
https://api-ext-sboxmeta.partners.spotnana.com/
Spotnana mock server
https://developer.spotnana.com/_mock/openapi/airapi/
Bodyapplication/jsonrequired
Cancellation option id chosen by the traveler prior to cancelling the booking. The trip->cancellation-details API returns a bunch of options like whether the traveler wants to keep the ticket as unused or get the refunds with applicable penalties.
Example: "OPTION123"
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/cancel-pnr
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/cancel-pnr
- curl
- JavaScript
- Node.js
- Python
curl -i -X POST \
https://api-ext-sboxmeta.partners.spotnana.com/v2/air/cancel-pnr \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"pnrId": "1234567819",
"optionId": "OPTION123",
"cancellationOverride": {
"waiverCode": "WAV123",
"tourCode": "TRAC345",
"newCancellationPenalty": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{
"coinageCode": "BREX_POINTS",
"amount": 1000,
"conversionRate": 0.01,
"preferredCurrencyConversionRate": 0.01
}
]
}
},
"customFieldV3Responses": [
{
"fieldId": "84922011-b03d-4966-bc95-c5b49bc2e342",
"fieldName": "string",
"armId": "0fd508db-63ff-4444-bfb1-b89c43061433",
"includeLocations": [
"APPROVAL_EMAILS"
],
"selectedOptions": [
{
"name": "string",
"description": "string",
"additionalUserInput": "string",
"additionalInfos": [
"string"
],
"additionalInfoConfigs": [
{
"type": "VARIABLE",
"name": "LLF"
}
]
}
]
}
]
}'Response
application/json
{ "sourcePnrId": "ABCDEF", "status": "CANCELLED", "automaticCancellationInfo": { "segmentsCancelled": true, "automaticRefundSuccessful": true, "refundedTicketNumbers": [ … ], "automaticProcessingMessage": "Refunded tickets: 1234567890123" } }
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/pnrs/{pnrId}/exchange-details
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/pnrs/{pnrId}/exchange-details
- curl
- JavaScript
- Node.js
- Python
curl -i -X GET \
https://api-ext-sboxmeta.partners.spotnana.com/v2/air/pnrs/6926658168/exchange-details \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Response
application/json
{ "pnrId": "1234567890", "ticketToExchangeInfos": [ { … } ] }
Bodyapplication/jsonrequired
The list of all legs (to keep as same, to remove and to be added). In the example shared, if there is a trip from SFO to ANC with one Leg containing a direct flight from mentioned source to destination, and traveller needs to add a visit to Seattle in between changing his trip to now contain two legs SFO->SEA and SEA->ANC, then we would remove the first existing leg(indexed 0) SFO->ANC and add two new legs SFO->SEA and SEA->ANC.
Example: [{"index":0,"remove":true},{"origin":"SFO","destination":"SEA","date":"2022-01-21T17:00"},{"origin":"SEA","destination":"ANC","date":"2022-01-22T17:00"}]
One of:
New leg to be added in the pnr.
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/modify-search
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/modify-search
- curl
- JavaScript
- Node.js
- Python
curl -i -X POST \
https://api-ext-sboxmeta.partners.spotnana.com/v2/air/modify-search \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"pnrId": "1213124111",
"legs": [
{
"index": 0,
"remove": true
},
{
"origin": "SFO",
"destination": "SEA",
"date": "2022-01-21T17:00"
},
{
"origin": "SEA",
"destination": "ANC",
"date": "2022-01-22T17:00"
}
]
}'Response
application/json
{ "searchId": "ChBjZDg3ZjRjZmRmMTFmMWFiEhBjZDg3Z", "itineraryDetails": { "itineraries": [ … ], "flightData": [ … ] }, "paginationParams": { "numResults": 0, "numPages": 0 }, "metadata": { "airlineInfo": [ … ], "applicableAlliances": [ … ], "legBylegPricing": true, "enableFareCategories": [ … ], "isExpressSearch": true } }