FX-Port API
FlightsFlight Search

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 }
  }'

On this page