Docs
Get an API key
Flight Offers

Get flight offers

POST
/v1/flight/offers

Price fares for a party and an itinerary. One routed supplier answers; name supplier to choose it yourself, and read meta.supplier to see who priced the fares. Offers are not stored: prebook from an offer_reference before its expires_at. limit caps the fares returned, and meta.truncated appears when more matched.

Authorization

x-api-key<token>

Your API key. Issued and revoked from the TrustPixel dashboard; the gateway resolves it to an owning organization on every request.

In: header

Header Parameters

x-request-id?string

Correlation id echoed to the upstream service and returned on the response. Generated as req_<uuid> when omitted.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

The itinerary as journeys, the party, and how to narrow and order the fares.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/flight/offers" \  -H "Content-Type: application/json" \  -d '{    "journeys": [      {        "origin": "LHR",        "destination": "CDG",        "date": "2026-11-10"      }    ],    "passengers": {      "adults": 1    }  }'
{  "data": [    {      "offer_reference": "eyJzdXBwbGllciI6ImR1ZmZlbCIsIm9mZmVyIjoib2ZmXzAwMDBC…",      "total_amount": {        "amount": 220.67,        "currency": "USD"      },      "expires_at": "2026-11-01T12:34:56.000Z",      "fare_family": "Basic",      "refundable": false,      "fare_conditions": {        "refund": {          "allowed": true,          "penalty": {            "amount": 75,            "currency": "USD"          }        },        "change": {          "allowed": true,          "penalty": {            "amount": 75,            "currency": "USD"          }        }      },      "documents_required": false,      "included_baggage": {        "checked": true,        "carry_on": true      },      "journeys": [        {          "origin": "LHR",          "destination": "CDG",          "direction": "OUTBOUND",          "departure_time": "2026-11-10T06:58:00",          "arrival_time": "2026-11-10T09:15:00",          "duration_minutes": 137,          "stops": 0,          "segments": [            {              "origin": "LHR",              "destination": "CDG",              "departure_time": "2026-11-10T06:58:00",              "arrival_time": "2026-11-10T09:15:00",              "marketing_flight": "AF1681",              "marketing_carrier": "Air France",              "marketing_carrier_code": "AF",              "marketing_carrier_logo_url": "https://assets.duffel.com/img/airlines/for-light-background/full-color-logo/AF.svg",              "operating_carrier": "KLM",              "operating_carrier_logo_url": "https://assets.duffel.com/img/airlines/for-light-background/full-color-logo/KL.svg",              "cabin_class": "ECONOMY",              "duration_minutes": 137            }          ]        }      ],      "total_duration_minutes": 274    }  ],  "meta": {    "supplier": "DUFFEL",    "truncated": true,    "unsupported_filters": [      "price"    ]  }}