Get, list, update, and price flight offers.
Endpoints
GET /air/offers/{id}- Get an offerGET /air/offers- List offers for an offer requestPATCH /air/offers/{id}/passengers/{passenger_id}- Update offer passengerPOST /air/offers/{id}/actions/price- Price an offer
Examples
# List offers for an offer request
{:ok, response} = Travel.Flights.Offers.list("orq_123")
# Get a specific offer
{:ok, response} = Travel.Flights.Offers.get("off_123")
# Price an offer
{:ok, response} = Travel.Flights.Offers.get_priced("off_123", %{
intended_payment_methods: [%{type: "balance"}],
intended_services: []
})
Summary
Functions
Get an offer by ID.
Price an offer with intended payment methods and services.
List offers for an offer request.
Stream all offers with automatic pagination.
Update passenger details on an offer.
Functions
@spec get(String.t(), map() | nil) :: {:ok, Travel.Types.DuffelResponse.t()} | {:error, Travel.Error.t() | term()}
Get an offer by ID.
Parameters
offer_id- The offer IDopts- Optional query parameters (return_available_services)
Returns
{:ok, %Travel.Types.DuffelResponse{data: %Types.Offer{}}}on success{:error, %Travel.Error{}}on failure
@spec get_priced(String.t(), map()) :: {:ok, Travel.Types.DuffelResponse.t()} | {:error, Travel.Error.t() | term()}
Price an offer with intended payment methods and services.
Parameters
offer_id- The offer IDparams- Pricing parameters::intended_payment_methods- List of payment method objects:intended_services- List of service objects
Returns
{:ok, %Travel.Types.DuffelResponse{data: %Types.OfferPriced{}}}on success{:error, %Travel.Error{}}on failure
@spec list(String.t(), map() | nil) :: {:ok, Travel.Types.DuffelResponse.t()} | {:error, Travel.Error.t() | term()}
List offers for an offer request.
Parameters
offer_request_id- The offer request IDopts- Optional parameters (limit,before,after,max_connections,sort)
Returns
{:ok, %Travel.Types.DuffelResponse{data: [%Types.Offer{}]}}on success{:error, %Travel.Error{}}on failure
@spec stream(String.t(), map() | nil) :: Enumerable.t()
Stream all offers with automatic pagination.
Returns
A Stream that yields %Travel.Types.DuffelResponse{} for each page.
@spec update(String.t(), String.t(), map()) :: {:ok, Travel.Types.DuffelResponse.t()} | {:error, Travel.Error.t() | term()}
Update passenger details on an offer.
Parameters
offer_id- The offer IDpassenger_id- The passenger IDparams- Update parameters (given_name,family_name,loyalty_programme_accounts)
Returns
{:ok, %Travel.Types.DuffelResponse{data: %Types.Offer{}}}on success{:error, %Travel.Error{}}on failure