Basic route examples
One-way, round-trip, direct-only, and all-supplier flight searches — with real request and response examples.
See Search response essentials for a full field-by-field reference of every response field shown below. All responses on this page were captured from a running sandbox request — trimmed for length, not invented.
One-way economy
{
"origin": "ALG",
"destination": "ORY",
"departure_date": "2026-09-15",
"cabin_class": "economy",
"passengers": { "adults": 1 }
}A one-way search returns searchType: "ONE_WAY" and each offer has exactly one itinerary entry
with direction: "outbound".
Round-trip economy
{
"origin": "CAI",
"destination": "DXB",
"departure_date": "2026-09-15",
"return_date": "2026-09-22",
"cabin_class": "economy",
"passengers": { "adults": 2 }
}Response example
A round-trip search returns searchType: "ROUND_TRIP". Each offer now has two itinerary
entries (outbound and return), and travelerPricing has one entry per passenger — here, two
adults, each with their own price share:
{
"id": "fx_offer_2bca05ae",
"pricing": {
"supplierCurrency": "USD",
"agencyCurrency": "DZD",
"basePrice": 81250.0,
"taxesAndFees": 23098.4,
"agencyCommission": 104.36,
"finalPrice": 104452.76,
"b2bPrice": 104348.4
},
"itinerary": [
{
"direction": "outbound",
"stops": 0,
"duration": "PT3H48M",
"segments": [{ "departure": "CAI", "arrival": "DXB", "flight": "ZZ3864", "cabin": "ECONOMY" }]
},
{
"direction": "return",
"stops": 0,
"duration": "PT3H48M",
"segments": [{ "departure": "DXB", "arrival": "CAI", "flight": "ZZ3864", "cabin": "ECONOMY" }]
}
],
"travelerPricing": [
{
"travelerId": "pas_0000B9nxSvER5dWoUBBL7Z",
"travelerType": "ADULT",
"price": { "supplierCurrency": "USD", "agencyCurrency": "DZD", "base": 40625.0, "total": 52226.38, "b2bPrice": 52174.2 }
},
{
"travelerId": "pas_0000B9nxSvEn4JoOVHLcem",
"travelerType": "ADULT",
"price": { "supplierCurrency": "USD", "agencyCurrency": "DZD", "base": 40625.0, "total": 52226.38, "b2bPrice": 52174.2 }
}
]
}Each traveler's price.total (52226.38 × 2 = 104452.76) sums to the offer-level pricing.finalPrice.
Direct / non-stop only
direct: true and nonstop: true are aliases; both become a zero-stop supplier filter.
{
"origin": "ALG",
"destination": "ORY",
"departure_date": "2026-09-15",
"cabin_class": "economy",
"passengers": { "adults": 1 },
"direct": true
}The same route without direct returns a mix of stop counts (results.totalOffers includes
one-stop and multi-stop offers). With direct: true, every returned offer has
itinerary[n].stops: 0, and results.totalOffers only counts non-stop offers — typically a
smaller number than an unfiltered search on the same route.
All enabled suppliers
Omit every supplier selector. FX-Port evaluates compatibility and calls all matching enabled suppliers in parallel. New suppliers automatically join this request as FX-Port enables them.
{
"origin": "ALG",
"destination": "CDG",
"departure_date": "2026-09-15",
"return_date": "2026-09-22",
"cabin_class": "economy",
"passengers": { "adults": 1 }
}The response's suppliers[] array has one entry per supplier that was actually called — check
suppliers[n].success and suppliers[n].meta.supplierId to see which ones returned offers for
this specific route/date/passenger combination.
cURL
curl --request POST \
--url https://api.fx-port.com/api/v1/get_flights \
--header 'Authorization: Bearer fxp_test_YOUR_KEY' \
--header 'Content-Type: application/json' \
--data '{
"origin": "ALG",
"destination": "CDG",
"departure_date": "2026-09-15",
"return_date": "2026-09-22",
"cabin_class": "economy",
"passengers": { "adults": 1 }
}'POST /api/v1/get_flights
Search for flights across one, several, or every enabled supplier. Start here, then expand the examples by route, passenger, filter, supplier, or itinerary type.
Passenger and cabin examples
Family groups, lap/seated infants, adult-senior-young mixes, and cabin-class searches — with real request and response examples.