Travel.Flights.OfferRequests (travel v0.2.0)

Copy Markdown View Source

Create and retrieve offer requests for flight searches.

Endpoints

  • POST /air/offer_requests - Create an offer request
  • GET /air/offer_requests/{id} - Get an offer request
  • GET /air/offer_requests - List offer requests

Examples

# Create an offer request
{:ok, response} = Travel.Flights.OfferRequests.create(%{
  slices: [
    %{origin: "LHR", destination: "JFK", departure_date: "2025-06-01"}
  ],
  passengers: [%{type: "adult"}]
})

# Create and return offers in the response
{:ok, response} = Travel.Flights.OfferRequests.create(%{
  slices: [...],
  passengers: [...]
}, %{return_offers: true})

# Get an offer request
{:ok, response} = Travel.Flights.OfferRequests.get("orq_123")

@link https://duffel.com/docs/api/offer-requests

Summary

Functions

Create an offer request.

Get an offer request by ID.

List offer requests with pagination.

Stream all offer requests with automatic pagination.

Functions

create(params, opts \\ nil)

@spec create(map(), map() | nil) ::
  {:ok, Travel.Types.DuffelResponse.t()} | {:error, Travel.Error.t() | term()}

Create an offer request.

Parameters

  • params - Offer request parameters:
    • :slices - (required) List of trip segments
    • :passengers - (required) List of passengers
    • :cabin_class - (optional) Preferred cabin class
    • :max_connections - (optional) Maximum connections per slice
    • :private_fares - (optional) Private fare codes
    • :airline_credit_ids - (optional) Airline credit IDs to use
  • opts - Optional query parameters:
    • :return_offers - Include offers in response
    • :supplier_timeout - Supplier timeout in ms

Returns

  • {:ok, %Travel.Types.DuffelResponse{data: %Types.OfferRequest{}}} on success
  • {:error, %Travel.Error{}} on failure

get(offer_request_id)

@spec get(String.t()) ::
  {:ok, Travel.Types.DuffelResponse.t()} | {:error, Travel.Error.t() | term()}

Get an offer request by ID.

Parameters

  • offer_request_id - The offer request ID

Returns

  • {:ok, %Travel.Types.DuffelResponse{data: %Types.OfferRequest{}}} on success
  • {:error, %Travel.Error{}} on failure

list(opts \\ nil)

@spec list(map() | nil) ::
  {:ok, Travel.Types.DuffelResponse.t()} | {:error, Travel.Error.t() | term()}

List offer requests with pagination.

Parameters

  • opts - Optional pagination parameters (limit, before, after)

Returns

  • {:ok, %Travel.Types.DuffelResponse{data: [%Types.OfferRequest{}]}} on success
  • {:error, %Travel.Error{}} on failure

stream()

@spec stream() :: Enumerable.t()

Stream all offer requests with automatic pagination.

Returns

A Stream that yields %Travel.Types.DuffelResponse{} for each page.