3Price the offer
/api/v1/flights/priceReachable with a narrow key: flight_booking
bill_to if you know it already: a customer the agency has on file can carry their own service fee, and the price follows it. Pricing only looks the customer up; it never opens one.Body
company_iduuidThe agency company that sells. Defaults to the account's default company.
search_idstringrequiredFrom the search answer.
offer_keystringrequiredThe chosen offer's
key.bill_toobjectWho pays, when you know already. Only looked up here, never created: a cari the agency has on file can carry its own service fee, and the price token is bound to it. Send the same bill-to to
purchases.Show fieldsHide fields
typeenumindividual(a person) orcorporate(a company). Defaults toindividual; a 10-digittax_numberreads as corporate.one of
individualcorporatelegal_namestringThe company's registered name. Corporate: required when
tax_numberis missing; finds the cari when the VKN does not.tax_numberstringVKN (10 digits) for a company, TCKN (11 digits) for a person. The first key the cari is found by.
tax_officestringThe company's tax office, for the invoice.
passport_numberstringIndividual: finds the cari when there is no TCKN.
first_namestringIndividual: the payer's first name, when it is not the first passenger.
last_namestringIndividual: the payer's last name.
emailemailWritten onto the cari for the invoice; never used to find one.
phonestringInternational format; never used to find a cari.
address_linestringStreet and number, for the invoice.
districtstringDistrict (ilçe).
citystringCity (il).
zipstringPostal code.
countrystringISO 3166 alpha-2.
customer_iduuidInstead of
bill_to, when you hold the agency's id for the payer.
Response · 200
offerobjectShow fieldsHide fields
keystringPass back as
offer_key.fare_familystringThe airline's brand for this fare, when it has one.
validating_carrierstringThe airline that issues the ticket.
carriersstring[]Every marketing carrier on the offer.
stopsintegerConnections on the longest direction.
duration_minutesintegerTotal journey time over every direction.
refundablebooleanWhether the fare can be refunded at all (penalties may still apply; see rules).
changeablebooleanWhether the fare can be changed at all (fees may apply; see rules).
baggage_allowancestringChecked baggage on the first segment, as the supplier states it.
seats_leftintegerAs the supplier reports it; a hint, not a guarantee.
last_ticketing_datedateThe airline's last day to ticket this fare.
itinerariesobject[]One entry per direction: outbound, then return, or each multi-city leg.
Show fieldsHide fields
duration_minutesintegerDoor to door for this direction, connections included.
originstringWhere this direction starts (IATA).
destinationstringWhere this direction ends (IATA).
segmentsobject[]The flights of this direction, in order.
Show fieldsHide fields
airline_codestringMarketing carrier (IATA).
flight_numberstringFlight number, without the carrier code.
departure_airportstringIATA airport code.
arrival_airportstringIATA airport code.
departure_timedate-timeLocal departure time with its UTC offset.
arrival_timedate-timeLocal arrival time with its UTC offset.
duration_minutesintegerTime in the air for this segment.
cabin_classstringCabin the fare books on this segment.
booking_classstringFare class letter (RBD).
baggage_allowancestringChecked baggage as the supplier states it, e.g.
1PCor20K.operating_carrierstringThe airline that flies the segment, when it differs from the marketing one.
priceobjectWhat the traveller pays. Sell only.
Show fieldsHide fields
totalstringWhat the traveller pays for every passenger on the offer, all taxes and the agency's fees included.
service_feestringThe agency's service fee inside
total.taxesstringTaxes and carrier surcharges inside
total.currencystringISO 4217 code.
totalstringThe sell total to show your customer.
currencystringISO 4217 code of
total.price_changedbooleanTrue when
totaldiffers from what the search showed.holdablebooleanFalse: buy it with
POST /api/v1/flights/purchases.instant_ticketablebooleanWhether the fare can be bought outright with
purchases.expires_atdate-timeWhen this price lapses.
rulesobjectShow fieldsHide fields
refundablebooleanWhether a refund is possible.
changeablebooleanWhether a change is possible.
textstringThe fare rules as the supplier words them.
penaltiesobject[]Fees for a refund or a change, when the supplier states them.
Show fieldsHide fields
kindstringrefundorchange.amountstringThe fee.
currencystringISO 4217 code.
whenstringWhen the fee applies, as the supplier states it.
price_tokenstringSigned, valid for 15 minutes. Required by
purchases.
Responses
202The call is running. Readpoll_urlafterRetry-Afterseconds until it answers anything but202; after 3 minutes the call is lost and the poll says what to do.401Missing or invalid Bearer token403The key cannot reach the booking API: the account lacks an add-on (addon_required, withdetails.missing), the plan has no API access, or the key's scope is narrow.409The booking cannot go ahead as asked.price_changed: price again and confirm the new total with your customer.approval_required: the agency approves the ticket first, then call ticket again.hold_expired: search again.410The search or the offer has expired. Search again.422The request was refused before anything was booked, or the supplier refused it (provider_rejected, with its reason inerror).429Rate limit exceeded503The supplier could not be reached, the call could not be queued, or a search, a price or the rules did not finish in 3 minutes (provider_unavailable). Nothing was booked: a search costs nothing, and a hold or a purchase is retried with the sameIdempotency-Key.
curl -X POST 'https://YOUR-CELL.lydira.com/api/v1/flights/price' \
-H 'Authorization: Bearer sek_YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"company_id": "3f1c2b9a-6d4e-4c1a-9b2f-1a2b3c4d5e6f",
"search_id": "eyJfcmFpbHMiOnsiZGF0YSI6eyJhY2NvdW50X2lkIjoi",
"offer_key": "sbx_TK_1979_Y",
"bill_to": {
"type": "individual",
"tax_number": "10000000146"
}
}'{
"offer": {
"key": "sbx_TK_1979_Y",
"fare_family": "EcoFly",
"validating_carrier": "TK",
"carriers": [
"TK"
],
"stops": 0,
"duration_minutes": 250,
"refundable": false,
"changeable": true,
"baggage_allowance": "1PC",
"seats_left": 7,
"last_ticketing_date": "2026-10-09",
"itineraries": [
{
"duration_minutes": 250,
"origin": "IST",
"destination": "LHR",
"segments": [
{
"airline_code": "TK",
"flight_number": "1979",
"departure_airport": "IST",
"arrival_airport": "LHR",
"departure_time": "2026-11-20T07:45:00+03:00",
"arrival_time": "2026-11-20T09:55:00+00:00",
"duration_minutes": 250,
"cabin_class": "economy",
"booking_class": "Y",
"baggage_allowance": "1PC",
"operating_carrier": "TK"
}
]
}
],
"price": {
"total": "412.50",
"service_fee": "15.00",
"taxes": "96.40",
"currency": "EUR"
}
},
"total": "412.50",
"currency": "EUR",
"price_changed": false,
"holdable": true,
"instant_ticketable": true,
"expires_at": "2026-10-07T09:10:00Z",
"rules": {
"refundable": false,
"changeable": true,
"text": "Changes permitted before departure for a fee.",
"penalties": [
{
"kind": "change",
"amount": "50.00",
"currency": "EUR",
"when": "before_departure"
}
]
},
"price_token": "eyJfcmFpbHMiOnsiZGF0YSI6eyJzZWxsX3RvdGFsIjoi"
}