flights

Quick price discovery for up to 100 destinations — counts as 1 search

Two modes, selected by the same_day flag — pick the one that matches what you need:

Default (same_day omitted/false): indicative prices from a fast lightweight source across up to 100 destinations, ~2–5 seconds, counted as one search for the whole batch - and not at all when every price was already cached. Response has price/found only — no offer detail, no booking_url. Treat as a ranking signal, not a bookable fare. Setting return_from here changes it from one-way to round-trip pricing, but still returns no offer or link — same_day is the only switch that adds one.

same_day: true: real per-destination same-day round-trip search (real flight times, cross-carrier pairing). Slower per destination — keep batches to roughly 10–20 destinations. Counted as one search per call. Each found result includes outbound/inbound with real times and a booking_url per leg, and the price matches what POST /flights/search and checkout will show for that same-day trip.

If your itinerary is a same-day round trip and you want an accurate, bookable result directly from discover, use same_day: true instead of the default mode. Otherwise, use default mode to rank destinations cheaply, then confirm the winner with a full POST /flights/search call:

  1. POST /flights/discover (default mode) → rank up to 100 destinations, counts as 1 search, ~3 seconds
  2. User picks a destination
  3. POST /flights/search on that destination → live prices + booking, counts as 1 search, 60–90 seconds
post/flights/discover

Request

  • Base URL: https://letsfg.co/developers/api/v1
  • URL: https://letsfg.co/developers/api/v1/flights/discover
  • Auth: API key in header X-API-Key

Request body

originstring required

Departure IATA code (e.g. JFK).

destinationsstring[] required

1–100 destination IATA codes to price-check (default mode). same_day mode is slower per destination — keep batches small (roughly 10–20) to avoid timeouts.

date_fromstring date required
return_fromstring date

Default mode only: return date for a round-trip indicative price (omit for one-way). Has no effect when same_day is true — same-day mode always returns same-day out-and-back and does not add booking_url/offer detail to default mode.

currencystring
same_dayboolean

true = real same-day round-trip search per destination, with actual offers and booking_url. false/omitted = fast indicative price-only screening, no offer, no link. This is the only switch that controls whether the response includes a bookable offer — return_from does not.

min_hours_at_destinationinteger

same_day mode only: minimum hours between landing and the return departure.

max_return_hourinteger nullable

same_day mode only: latest local hour the return may land the next day (e.g. 2 = home by 2 AM).

max_total_pricenumber nullable

same_day mode only: drop destinations whose round-trip total exceeds this price.

adultsinteger

same_day mode only: number of adult passengers to check seat availability for. Ignored in default mode. Note: Kiwi (the same_day price source) prices per person regardless of this value, and its generated booking_url currently pre-fills only 1 passenger even when adults > 1 — a limitation of the upstream provider, not this API.

departure_time_fromstring

Earliest outbound departure HH:MM.

departure_time_tostring

Latest outbound departure HH:MM.

Example request

{
  "origin": "JFK",
  "destinations": [
    "LAX",
    "MIA",
    "ORD",
    "DFW",
    "SEA",
    "DEN",
    "ATL",
    "BOS",
    "LAS",
    "SFO"
  ],
  "date_from": "2026-07-15",
  "currency": "USD"
}

Response

Indicative prices for all destinations, sorted cheapest-first.

originstring
date_fromstring
currencystring
data_notestring

Explains the pricing source for this response — differs by mode.

degradedboolean

same_day mode only: true if the upstream search was shedding load and no charge was made.

billed_asstring

Example response

{
  "billed_as": "1 search credit for the full batch"
}

Changes

No recorded changes to this operation across all 1 revision of this API.