Search flexible dates
Get a price calendar instead of offers: the cheapest fare of each day from three days before to three days after your travel dates.
/api/v1/flights/flexible_searchThe body is the one of get_flights; flexible and flexible_only are set for you. A one-way search returns 7 dates, a round trip or an open-jaw up to 49 date pairs (7 by 7). Each supplier entry has flexPrices.matrix[] and no results; summary.totalOffers is 0 and flexibleOnly is true. An entry has no offer id: to book a date, search for that exact date, then price and book as usual. The price of the matrix is an indication.
Only suppliers with the flexible-dates capability are called: today Amadeus Algeria (amadeus_aqc_dz_1, routes that touch Algeria). Duffel is skipped, and supplier_id: "duffel_1" is a 400 invalid_supplier_selection. A route nobody serves is 422 no_supplier_supports_flexible_search. To get the offers and the matrix together, send flexible: true to get_flights. Identical flexible searches that arrive at the same moment from the same agency, environment and currency are merged into one supplier fan-out; nothing is kept afterwards, and every caller still gets its own requestId and headers.
curl https://api.fx-port.com/api/v1/flights/flexible_search \
-H "Authorization: Bearer fxp_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"origin": "ALG",
"destination": "CDG",
"departure_date": "2026-12-15",
"cabin_class": "economy",
"passengers": {
"adults": 1
}
}'{
"environment": "sandbox",
"success": true,
"requestId": "9c844468",
"searchType": "ONE_WAY",
"flexible": true,
"processingTime": 4.092,
"suppliers": [
{
"success": true,
"searchId": "fs_4f72482f-0d24-4aba-882d-d4eb49f6d034",
"supportHold": true,
"supportVoid": true,
"voidDeadline": "2026-11-01T23:00:00Z",
"filtersApplied": {
"flexible": true,
"flexibleOnly": true
},
"warnings": [],
"meta": {
"supplierId": "amadeus_aqc_dz_1",
"technologyType": "amadeus_aqc",
"supplierName": "Amadeus Algeria",
"processingTime": 4.029,
"supplierCurrency": "DZD",
"agencyCurrency": "DZD"
},
"flexPrices": {
"supplierCurrency": "DZD",
"agencyCurrency": "DZD",
"matrix": [
{
"departure": "2026-12-12",
"status": "available",
"finalPrice": 26925.47,
"basePrice": 18360,
"taxesAndFees": 8538.57,
"agencyCommission": 26.9,
"flight": {
"carrierCode": "IB",
"flightNumber": "IB1378",
"operatingCarrier": "IB",
"validatingAirline": "IB",
"duration": "PT9H45M",
"stops": 1,
"departureTime": "14:05",
"arrivalTime": "23:50",
"departureAirport": "ALG",
"arrivalAirport": "CDG",
"cabinClass": "ECONOMY",
"brandedFare": null,
"brandedFareLabel": null,
"includedCheckedBags": {
"quantity": 1
}
},
"b2bPrice": 26898.57,
"agencyCurrency": "DZD"
},
{
"departure": "2026-12-13",
"status": "available",
"finalPrice": 29638.41,
"basePrice": 11810,
"taxesAndFees": 17798.8,
"agencyCommission": 29.61,
"flight": {
"carrierCode": "AZ",
"flightNumber": "AZ801",
"operatingCarrier": "AZ",
"validatingAirline": "AZ",
"duration": "PT5H10M",
"stops": 1,
"departureTime": "12:15",
"arrivalTime": "17:25",
"departureAirport": "ALG",
"arrivalAirport": "CDG",
"cabinClass": "ECONOMY",
"brandedFare": null,
"brandedFareLabel": null,
"includedCheckedBags": {
"quantity": 1
}
},
"b2bPrice": 29608.8,
"agencyCurrency": "DZD"
}
]
}
}
],
"flexibleOnly": true,
"summary": {
"totalSuppliers": 1,
"successfulSuppliers": 1,
"failedSuppliers": 0,
"totalOffers": 0
}
}Request
Body
Required, JSON.
originstringDeparture IATA code: three ASCII letters, an airport (ALG) or a city (PAR). Lower case is read as upper case. Several airports: "ALG,ORN" or ["ALG","ORN"], up to five.
destinationstringArrival IATA code. Must differ from origin. Several airports are written like for origin.
departure_datestringYYYY-MM-DD, a real date from yesterday up to 365 days ahead (date_too_far beyond). return_date and every segment follow the same limits.
return_datestringMakes the search a round trip. On or after departure_date.
segmentsarray of object1 to 6 flights instead of origin, destination and departure_date: open-jaw and multi-city.
At most 6 items.
ShowHide 6 attributes
originstringrequiredDeparture IATA code (three letters). A segment takes one code, not a list.
destinationstringrequiredArrival IATA code. Must differ from origin.
departure_datestringrequiredLocal departure date, YYYY-MM-DD, up to 365 days ahead. The dates must not go backwards.
datestringdeprecatedLegacy name, still accepted. Use departure_date instead.
The previous spelling of departure_date: Local departure date, YYYY-MM-DD, up to 365 days ahead.
departureDatestringdeprecatedLegacy name, still accepted. Use departure_date instead.
The previous spelling of departure_date: Local departure date, YYYY-MM-DD, up to 365 days ahead.
departurestringdeprecatedLegacy name, still accepted. Use departure_date instead.
The previous spelling of departure_date: Local departure date, YYYY-MM-DD, up to 365 days ahead.
urlstringA path-style search used by FX-Port's own site, for example flights/. It wins over every route field. Prefer the fields above.
At most 512 characters.
passengersobjectHow many travelers of each type. Every field is optional. At most 9 seated passengers (adults, seniors, young adults, children and seated infants together), and not more lap or seated infants than adults and seniors. Counts and ages are JSON integers: numeric text and integral floats ("2", 2.0) are read with a coerced_value warning, an empty text or null means not sent, and words, fractions, booleans, negatives and counts above 99 are refused.
ShowHide 18 attributes
adultsintegerAdults (12 or older). The default is one adult when nothing is sent.
Between 0 and 99.
seniorsintegerSeniors.
Between 0 and 99.
young_adultsintegerYoung adults (12 to 17).
Between 0 and 99.
childrenintegerChildren (2 to 11). Without child_ages every child is searched at age 11.
Between 0 and 99.
seated_infantsintegerInfants under 2 with their own seat.
Between 0 and 99.
infantsintegerLap infants under 2: no seat, at most as many as adults and seniors.
Between 0 and 99.
child_agesarray of integerThe age of each child. The ages win over the counts: a disagreement is adjusted and reported in a coerced_value warning. A text list ("7,9") or one bare number is read as a list, also with a warning.
young_adult_agesarray of integerThe age of each young adult.
seated_infant_agesarray of integerThe age of each seated infant.
infant_agesarray of integerThe age of each lap infant. Without it every lap infant is searched at age 0, with no warning.
youngintegerdeprecatedLegacy name, still accepted. Use young_adults instead.
The previous spelling of young_adults: Young adults (12 to 17).
youngAdultsintegerdeprecatedLegacy name, still accepted. Use young_adults instead.
The previous spelling of young_adults: Young adults (12 to 17).
toddlersintegerdeprecatedLegacy name, still accepted. Use seated_infants instead.
The previous spelling of seated_infants: Infants under 2 with their own seat.
seatedInfantsintegerdeprecatedLegacy name, still accepted. Use seated_infants instead.
The previous spelling of seated_infants: Infants under 2 with their own seat.
childAgesarraydeprecatedLegacy name, still accepted. Use child_ages instead.
The previous spelling of child_ages: The age of each child.
youngAdultAgesarraydeprecatedLegacy name, still accepted. Use young_adult_ages instead.
The previous spelling of young_adult_ages: The age of each young adult.
seatedInfantAgesarraydeprecatedLegacy name, still accepted. Use seated_infant_ages instead.
The previous spelling of seated_infant_ages: The age of each seated infant.
infantAgesarraydeprecatedLegacy name, still accepted. Use infant_ages instead.
The previous spelling of infant_ages: The age of each lap infant.
cabin_classstringThe cabin. Case, spaces, dashes and underscores do not matter (Premium Economy is premium_economy); premium, economy_class, business_class, first_class and premium_economy_class are read as their cabin with a coerced_value warning, and an empty text means the default. Any other value (coach, Y) is 400 invalid_cabin_class. Default economy.
One of economy, premium_economy, business, first, any. Default economy.
nonstopbooleantrue returns non-stop offers only.
refundablebooleantrue asks the supplier for refundable fares. A hint, not a guarantee.
checked_bagsbooleantrue asks for fares with a checked bag included. Ignored by Duffel.
max_pricenumberA price ceiling. Not enforced in the sandbox. 0, an empty text and null mean no ceiling: the field is ignored (0 and an empty text add a coerced_value warning). Numeric text is read as a number with a warning; a negative or non-numeric value is 400 invalid_field_type.
included_airlinesobjectUp to 20 airline codes: only these carriers.
excluded_airlinesobjectUp to 20 airline codes to remove.
preferred_airlinesobjectBehaves exactly like included_airlines: a strict allow-list, not a ranking.
flexiblebooleanAlso returns the date matrix (flexPrices) from the suppliers that support it.
flexible_onlybooleanThe matrix without offers. POST / sends it for you.
from_ccstringISO country code of the origin: exactly two letters. Used to choose suppliers.
to_ccstringISO country code of the destination: exactly two letters. Used to choose suppliers.
countriesarray of stringUp to 10 country codes of the route, to override the ones FX-Port infers.
At most 10 items.
filtersobjectThe airline lists in their older nested form. Only the three airline lists are read from it; any other key is ignored. Prefer the top-level fields.
ShowHide 19 attributes
included_airlinesobjectUp to 20 airline codes: only these carriers.
excluded_airlinesobjectUp to 20 airline codes to remove.
preferred_airlinesobjectBehaves exactly like included_airlines: a strict allow-list, not a ranking.
airlineIncludeobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
airline_includeobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
includeAirlinesobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
include_airlinesobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
includedAirlinesobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
include_airlineobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
included_airlineobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
airlineExcludeobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
airline_excludeobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
excludeAirlinesobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
exclude_airlinesobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
excludedAirlinesobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
exclude_airlineobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
excluded_airlineobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
airlinesobjectdeprecatedLegacy name, still accepted. Use preferred_airlines instead.
The previous spelling of preferred_airlines: Behaves exactly like included_airlines: a strict allow-list, not a ranking.
preferredAirlinesobjectdeprecatedLegacy name, still accepted. Use preferred_airlines instead.
The previous spelling of preferred_airlines: Behaves exactly like included_airlines: a strict allow-list, not a ranking.
supplier_idstringRestrict the search to one supplier id (a comma separated list is accepted). Strict: an unknown or disabled id is 400 invalid_supplier_selection.
supplier_idsarray of stringRestrict the search to this set. Strict, up to 10.
At most 10 items.
preferred_suppliersarray of stringA hint: ids that are not usable are ignored and the automatic selection applies.
max_suppliersintegerKeep only the first N selected suppliers, in priority order. "3" and 3.0 are read as 3 with a coerced_value warning; an empty text means no limit.
loyalty_program_accountsarray of objectUp to 10 frequent-flyer accounts.
At most 10 items.
ShowHide 19 attributes
airline_iata_codestringrequiredIATA code of the airline of the programme.
account_numberstringrequiredThe frequent-flyer number.
first_namestringGiven name of the member, matched with the passenger at booking.
last_namestringFamily name of the member.
airlineIataCodestringdeprecatedLegacy name, still accepted. Use airline_iata_code instead.
The previous spelling of airline_iata_code: IATA code of the airline of the programme.
airline_codestringdeprecatedLegacy name, still accepted. Use airline_iata_code instead.
The previous spelling of airline_iata_code: IATA code of the airline of the programme.
airlineCodestringdeprecatedLegacy name, still accepted. Use airline_iata_code instead.
The previous spelling of airline_iata_code: IATA code of the airline of the programme.
programOwnerstringdeprecatedLegacy name, still accepted. Use airline_iata_code instead.
The previous spelling of airline_iata_code: IATA code of the airline of the programme.
program_ownerstringdeprecatedLegacy name, still accepted. Use airline_iata_code instead.
The previous spelling of airline_iata_code: IATA code of the airline of the programme.
accountNumberstringdeprecatedLegacy name, still accepted. Use account_number instead.
The previous spelling of account_number: The frequent-flyer number.
membershipNumberstringdeprecatedLegacy name, still accepted. Use account_number instead.
The previous spelling of account_number: The frequent-flyer number.
membership_numberstringdeprecatedLegacy name, still accepted. Use account_number instead.
The previous spelling of account_number: The frequent-flyer number.
firstNamestringdeprecatedLegacy name, still accepted. Use first_name instead.
The previous spelling of first_name: Given name of the member, matched with the passenger at booking.
givenNamestringdeprecatedLegacy name, still accepted. Use first_name instead.
The previous spelling of first_name: Given name of the member, matched with the passenger at booking.
given_namestringdeprecatedLegacy name, still accepted. Use first_name instead.
The previous spelling of first_name: Given name of the member, matched with the passenger at booking.
lastNamestringdeprecatedLegacy name, still accepted. Use last_name instead.
The previous spelling of last_name: Family name of the member.
familyNamestringdeprecatedLegacy name, still accepted. Use last_name instead.
The previous spelling of last_name: Family name of the member.
family_namestringdeprecatedLegacy name, still accepted. Use last_name instead.
The previous spelling of last_name: Family name of the member.
surnamestringdeprecatedLegacy name, still accepted. Use last_name instead.
The previous spelling of last_name: Family name of the member.
acd_exempt_company_idstringFor agencies that settle in DZD and have an ACD-exempt company: its id, to price the fares without ACD.
agent_idstringYour own id of the agent who searches; stored with the search and the booking.
agency_idstringNot needed: the agency of a call is always the one of your API key. The field is accepted so that older clients keep working, and it is ignored.
departureDatestringdeprecatedLegacy name, still accepted. Use departure_date instead.
The previous spelling of departure_date: YYYY-MM-DD, a real date from yesterday up to 365 days ahead (date_too_far beyond).
returnDatestringdeprecatedLegacy name, still accepted. Use return_date instead.
The previous spelling of return_date: Makes the search a round trip.
cabinClassstringdeprecatedLegacy name, still accepted. Use cabin_class instead.
The previous spelling of cabin_class: The cabin.
travelersobjectdeprecatedLegacy name, still accepted. Use passengers instead.
The previous spelling of passengers: passengers.
directbooleandeprecatedLegacy name, still accepted. Use nonstop instead.
The previous spelling of nonstop: true returns non-stop offers only.
checkedBagsbooleandeprecatedLegacy name, still accepted. Use checked_bags instead.
The previous spelling of checked_bags: true asks for fares with a checked bag included.
maxPricenumberdeprecatedLegacy name, still accepted. Use max_price instead.
The previous spelling of max_price: A price ceiling.
flexibleOnlybooleandeprecatedLegacy name, still accepted. Use flexible_only instead.
The previous spelling of flexible_only: The matrix without offers.
fromCcstringdeprecatedLegacy name, still accepted. Use from_cc instead.
The previous spelling of from_cc: ISO country code of the origin: exactly two letters.
toCcstringdeprecatedLegacy name, still accepted. Use to_cc instead.
The previous spelling of to_cc: ISO country code of the destination: exactly two letters.
supplierIdstringdeprecatedLegacy name, still accepted. Use supplier_id instead.
The previous spelling of supplier_id: Restrict the search to one supplier id (a comma separated list is accepted).
supplierIdsarraydeprecatedLegacy name, still accepted. Use supplier_ids instead.
The previous spelling of supplier_ids: Restrict the search to this set.
preferredSuppliersarraydeprecatedLegacy name, still accepted. Use preferred_suppliers instead.
The previous spelling of preferred_suppliers: A hint: ids that are not usable are ignored and the automatic selection applies.
maxSuppliersintegerdeprecatedLegacy name, still accepted. Use max_suppliers instead.
The previous spelling of max_suppliers: Keep only the first N selected suppliers, in priority order.
airlineIncludeobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
airline_includeobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
includeAirlinesobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
include_airlinesobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
includedAirlinesobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
include_airlineobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
included_airlineobjectdeprecatedLegacy name, still accepted. Use included_airlines instead.
The previous spelling of included_airlines: Up to 20 airline codes: only these carriers.
airlineExcludeobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
airline_excludeobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
excludeAirlinesobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
exclude_airlinesobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
excludedAirlinesobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
exclude_airlineobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
excluded_airlineobjectdeprecatedLegacy name, still accepted. Use excluded_airlines instead.
The previous spelling of excluded_airlines: Up to 20 airline codes to remove.
airlinesobjectdeprecatedLegacy name, still accepted. Use preferred_airlines instead.
The previous spelling of preferred_airlines: Behaves exactly like included_airlines: a strict allow-list, not a ranking.
preferredAirlinesobjectdeprecatedLegacy name, still accepted. Use preferred_airlines instead.
The previous spelling of preferred_airlines: Behaves exactly like included_airlines: a strict allow-list, not a ranking.
agentIdstringdeprecatedLegacy name, still accepted. Use agent_id instead.
The previous spelling of agent_id: Your own id of the agent who searches; stored with the search and the booking.
acdExemptCompanyIdstringdeprecatedLegacy name, still accepted. Use acd_exempt_company_id instead.
The previous spelling of acd_exempt_company_id: For agencies that settle in DZD and have an ACD-exempt company: its id, to price the fares without ACD.
loyaltyProgramAccountsarraydeprecatedLegacy name, still accepted. Use loyalty_program_accounts instead.
The previous spelling of loyalty_program_accounts: Up to 10 frequent-flyer accounts.
agencyIdstringdeprecatedLegacy name, still accepted. Use agency_id instead.
The previous spelling of agency_id: Not needed: the agency of a call is always the one of your API key.
Response
200The date matrix of each flexible-capable supplier. Check that flexPrices is present before you read it; entries with status: no_flights_available are expected.
environmentstringThe environment of the key that made the call: sandbox for fxp_test_ keys, live for fxp_live_ keys. Present in every JSON body.
One of sandbox, live.
request_idstringThe id of the request, also in the X-Request-Id header.
warningsarray of objectPresent only when the request used a previous spelling of a field or something the endpoint ignored.
ShowHide 5 attributes
codestringWhat the warning is about.
One of deprecated_field, ignored_field, coerced_value, deprecated_value, deprecated_endpoint.
fieldstringThe request field the warning is about.
replacementstringThe name to use instead, for deprecated_* warnings.
messagestringA sentence that says what happened and what to do.
documentation_urlstringWhere the naming rules are explained.
successbooleantrue on every 200, even if some suppliers failed: read suppliers[n].success and failures.
requestIdstringdeprecatedLegacy name, still accepted. Use request_id instead.
The id of this search, 8 characters, for support.
searchTypestringdeprecatedLegacy name, still accepted. Use search_type instead.
The type of the search, derived from your route.
One of ONE_WAY, ROUND_TRIP, OPEN_JAW, MULTI_CITY.
search_typestringThe type of the search, derived from your route. The snake_case twin of searchType, with the same value: use this name.
One of ONE_WAY, ROUND_TRIP, OPEN_JAW, MULTI_CITY.
flexiblebooleanWhether the date matrix was requested.
flexibleOnlybooleanOnly present (and true) for a flexible-only search.
processingTimenumberdeprecatedLegacy name, still accepted. Use processing_time instead.
Seconds spent by the whole search.
processing_timenumberSeconds spent by the whole search. The snake_case twin of processingTime, with the same value: use this name.
suppliersarray of objectOne entry for each supplier that answered.
ShowHide 17 attributes
successbooleanWhether this supplier returned usable results.
searchIdstringdeprecatedLegacy name, still accepted. Use search_id instead.
Save this. fs_<uuid> (Amadeus Algeria) or fs_dfx_<uuid> (Duffel). Send it as search_id to price_flight and book_flight. Valid for 24 hours, but a supplier withdraws offers earlier.
search_idstringSave this. fs_<uuid> (Amadeus Algeria) or fs_dfx_<uuid> (Duffel). Send it as search_id to price_flight and book_flight. Valid for 24 hours, but a supplier withdraws offers earlier. The snake_case twin of searchId, with the same value: use this name.
supportHoldbooleandeprecatedLegacy name, still accepted. Use support_hold instead.
What the supplier can do in general: hold. Read it again on the priced offer.
support_holdbooleanWhat the supplier can do in general: hold. Read it again on the priced offer. The snake_case twin of supportHold, with the same value: use this name.
supportVoidbooleandeprecatedLegacy name, still accepted. Use support_void instead.
What the supplier can do in general: same-day void.
support_voidbooleanWhat the supplier can do in general: same-day void. The snake_case twin of supportVoid, with the same value: use this name.
voidDeadlinestringnullabledeprecatedLegacy name, still accepted. Use void_deadline instead.
ISO 8601 UTC end of the same-day void window, null when the supplier cannot void.
void_deadlinestringnullableISO 8601 UTC end of the same-day void window, null when the supplier cannot void. The snake_case twin of voidDeadline, with the same value: use this name.
filtersAppliedobjectdeprecatedLegacy name, still accepted. Use filters_applied instead.
The filters you asked for, echoed.
filters_appliedobjectThe filters you asked for, echoed. The snake_case twin of filtersApplied, with the same value: use this name.
warningsarray of objectNotes of the supplier.
metaobjectWho answered and how fast.
ShowHide 9 attributes
supplierIdstringdeprecatedLegacy name, still accepted. Use supplier_id instead.
Id of the supplier.
supplier_idstringId of the supplier. The snake_case twin of supplierId, with the same value: use this name.
technologyTypestringThe technology of the supplier: amadeus_aqc or duffel.
supplierNamestringdeprecatedLegacy name, still accepted. Use supplier_name instead.
Name of the supplier.
supplier_namestringName of the supplier. The snake_case twin of supplierName, with the same value: use this name.
processingTimenumberdeprecatedLegacy name, still accepted. Use processing_time instead.
Seconds this supplier took.
processing_timenumberSeconds this supplier took. The snake_case twin of processingTime, with the same value: use this name.
supplierCurrencystringCurrency in which the supplier prices.
agencyCurrencystringCurrency of your agency.
resultsobjectThe offers of one supplier.
ShowHide 4 attributes
totalOffersintegerNumber of offers of this result set. Always equals the length of offers: there is no pagination.
supplierCurrencystringCurrency in which the supplier prices.
agencyCurrencystringCurrency of your agency.
offersarray of FlightOfferThe offers, in the order the supplier ranks them.
exchangeRatenumberdeprecatedLegacy name, still accepted. Use exchange_rate instead.
Only when the supplier's currency is not your agency's (Duffel: USD to DZD, 250.0). Every amount is already converted.
exchange_ratenumberOnly when the supplier's currency is not your agency's (Duffel: USD to DZD, 250.0). Every amount is already converted. The snake_case twin of exchangeRate, with the same value: use this name.
flexPricesobjectThe date matrix of a flexible search: one cheapest fare for each candidate date. An entry has no offer id: to book a date, search for it.
ShowHide 3 attributes
supplierCurrencystringCurrency in which the supplier prices.
agencyCurrencystringCurrency of the prices of matrix.
matrixarray of objectOne entry for each date (one-way: 7 dates) or date pair (round trip, open-jaw: up to 49).
ShowHide 15 attributes
departurestringCandidate departure date, YYYY-MM-DD.
returnstringCandidate return date. Only for a round trip or an open-jaw.
statusstringavailable when the supplier has a fare for this date or pair.
One of available, no_flights_available.
finalPricenumbernullabledeprecatedLegacy name, still accepted. Use final_price instead.
What the traveler pays, in agencyCurrency.
final_pricenumbernullableWhat the traveler pays, in agencyCurrency. The snake_case twin of finalPrice, with the same value: use this name.
basePricenumbernullabledeprecatedLegacy name, still accepted. Use base_price instead.
The airline's base fare.
base_pricenumbernullableThe airline's base fare. The snake_case twin of basePrice, with the same value: use this name.
taxesAndFeesnumbernullabledeprecatedLegacy name, still accepted. Use taxes_and_fees instead.
Taxes and fees.
taxes_and_feesnumbernullableTaxes and fees. The snake_case twin of taxesAndFees, with the same value: use this name.
agencyCommissionnumbernullabledeprecatedLegacy name, still accepted. Use agency_commission instead.
Your commission.
agency_commissionnumbernullableYour commission. The snake_case twin of agencyCommission, with the same value: use this name.
b2bPricenumbernullabledeprecatedLegacy name, still accepted. Use b2b_price instead.
The amount debited from your balance.
b2b_pricenumbernullableThe amount debited from your balance. The snake_case twin of b2bPrice, with the same value: use this name.
agencyCurrencystringCurrency of the prices of the entry.
flightobjectThe cheapest flight behind the price of a date.
ShowHide 14 attributes
carrierCodestringIATA code of the marketing airline.
flightNumberstringFlight number with the carrier code (IB1378), unlike the offers.
operatingCarrierstringIATA code of the operating airline.
validatingAirlinestringIATA code of the validating airline, as a text (a list of objects in offers).
durationstringISO 8601 duration.
stopsintegerNumber of stops.
departureTimestringHH:MM.
arrivalTimestringHH:MM.
departureAirportstringIATA code.
arrivalAirportstringIATA code.
cabinClassstringCabin of the fare.
brandedFarestringnullableFare family code.
brandedFareLabelstringnullableDisplay label of the fare family.
includedCheckedBagsobjectChecked baggage included.
ShowHide 1 attribute
quantityintegerNumber of checked bags included.
summaryobjectCounters of the search.
ShowHide 4 attributes
totalSuppliersintegerThe suppliers that answered (the same as successfulSuppliers). In the stream: the suppliers that were called.
successfulSuppliersintegerSuppliers that returned results.
failedSuppliersintegerSuppliers listed in failures.
totalOffersintegerOffers of all the suppliers together.
failuresarray of objectOnly when a supplier failed.
ShowHide 4 attributes
supplierIdstringdeprecatedLegacy name, still accepted. Use supplier_id instead.
The supplier that failed.
supplier_idstringThe supplier that failed. The snake_case twin of supplierId, with the same value: use this name.
errorstringA fixed sentence about the cause, never the supplier's own text.
causestringWhy the supplier failed: a stable code to branch on. supplier_temporarily_unavailable: the supplier is skipped for a short while after repeated failures. supplier_busy: FX-Port's capacity towards the supplier is full for a moment, the supplier was not called, retry in a few seconds. service_overloaded: FX-Port was too busy to prepare the results of the supplier, retry in a few seconds.
One of supplier_timeout, supplier_api_error, supplier_auth_error, supplier_error, supplier_temporarily_unavailable, supplier_busy, service_overloaded.
Errors
| Status | Code | Example message |
|---|---|---|
| 400 | missing_search_params | Provide either 'url' or structured params (origin, destination, departure_date, cabin_class). |
| 400 | invalid_airport_code | `origin` must be a 3-letter IATA code such as ALG. |
| 400 | date_in_past | `departure_date` is in the past; use today or a later date. |
| 400 | invalid_cabin_class | `cabin_class` must be one of: economy, premium_economy, business, first, any. |
| 400 | invalid_supplier_selection | One or more requested suppliers cannot be used for this flight search. |
| 400 | traveler_rule_violation | Total seated passengers cannot exceed 9 |
| 403 | acd_exemption_invalid | The selected ACD exempt company is not linked to this agency. |
| 413 | request_too_large | The request body carries too many values. |
| 422 | no_supplier_supports_flexible_search | No flight supplier supports flexible-date search for this route. Flexible search is offered on routes that touch Algeria; use get_flights for fixed dates. |
| 503 | all_suppliers_failed | No supplier returned results. See supplierErrors for details. |
| 503 | supplier_busy | The supplier is temporarily at capacity; retry after the time given in the Retry-After header. |
| 503 | service_overloaded | The service is temporarily overloaded; retry after the time given in the Retry-After header. |
The shape of the error body depends on the endpoint. See Errors for every shape and code.