Skip to main content

QPX Connect API Reference

QPX Connect is the flight search API used by Serko Northsky for flight shopping operations.

info

The QPX Connect endpoint and API Key are available in Keeper (folder LCA-Serko).

Overview

QPX Connect API

QPX Connect provides several APIs. Serko Northsky uses:

Operation Types

OperationDescription
SearchPerforms shopping query, stores results. Returns list of solutions.
SummarizeFilters, sorts, and formats stored search results.

Request Format

Operations are submitted as POST requests with XML body:

<search api="shopping"
name="priceByItinerary"
key="RylHh**********MoawpW"
version="1235">
<inputs>
<searchControl>
<slice>
<origin>BOS</origin>
<destination>IST</destination>
<date>2025-12-01</date>
</slice>
<passenger>
<type>adult</type>
<count>1</count>
</passenger>
</searchControl>
<summarizerControl>
<pageSize>20</pageSize>
</summarizerControl>
</inputs>
<summarizer>priceByItineraryTrip</summarizer>
<summarizer>pricingDetail</summarizer>
<summarizer>itineraryDetail</summarizer>
</search>

Request Headers

POST /search HTTP/1.1
Host: qpxconnect.googleapis.com
Content-Type: application/xml

Response Format

Responses are in XML format containing:

  • Solutions — Flight options matching search criteria
  • Pricing — Fare details including base fare and taxes
  • Itinerary — Flight segments, times, and carriers

Integration in Serko Northsky

The QPX service (QPXService) handles all communication with QPX Connect:

class QPXService:
async def search(self, request: QPXSearchRequest) -> list[Flight]:
xml_request = self._build_xml_request(request)
response = await self.client.post("/search", content=xml_request)
return self.mapper.map_search_response(response)

Entity Mapping

QPX responses are mapped to Serko Northsky entities:

QPX ElementSerko Northsky Entity
OfferFlight
SegmentFlightLeg
FareComponentFare
TaxInfoFlightLegTax

Error Handling

Error CodeDescriptionAction
400Invalid requestCheck XML syntax
401Authentication failedVerify API key
429Rate limit exceededImplement backoff
500Server errorRetry with exponential backoff