Travel.Flights.BatchOfferRequests (travel v0.2.0)

Copy Markdown View Source

Long-polling batch offer requests.

Endpoints

  • POST /air/batch_offer_requests - Create a batch offer request
  • GET /air/batch_offer_requests/{id} - Get a batch offer request

Examples

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

# Poll for results
{:ok, response} = Travel.Flights.BatchOfferRequests.get("bor_123")

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

Summary

Functions

Create a batch offer request.

Get a batch offer request by ID (poll for available offers).

Functions

create(params, opts \\ nil)

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

Create a batch offer request.

Parameters

  • params - Batch offer request parameters (same as regular offer requests)
  • opts - Optional query parameters (supplier_timeout)

Returns

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

get(batch_offer_request_id)

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

Get a batch offer request by ID (poll for available offers).

Parameters

  • batch_offer_request_id - The batch offer request ID

Returns

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