flights

Book a flight offer on the connected Revolut method

Book one offer from one of your own searches.

The connected Revolut method (POST /agents/connect-payment) is held, not charged, for the price shown. A LetsFG booking agent buys the ticket from the seller and the hold is captured only against a real airline PNR; a failed booking releases it and nothing is taken.

Answers 202 within seconds with a booking_id — the booking itself takes 4–11 minutes. Poll GET /flights/bookings/{booking_id} until terminal is true. A completed booking also resets your free search allowance.

Passengers use the same shape as the MCP book_flight tool, field for field. Only given_name is required by the schema: the server decides what a given airline checkout needs and answers 400 missing_fields naming exactly those, before anything is charged. 1–9 passengers.

Always send an idempotency_key — retrying with the same key returns the existing booking instead of opening a second hold.

There is no booking fee and no transaction fee on top: the amount the search returned is the amount charged.

post/flights/book

Request

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

Request body

search_idstring required

search_id from the search response. An offer is bookable only inside its own search.

offer_idstring required

id of one offer from that search

contact_emailstring email

Where the confirmation goes. Defaults to the lead passenger's email.

idempotency_keystring

Retrying with the same key returns the same booking instead of opening a second hold.

want_seatboolean

Pause at the airline's seat map and ask.

Example request

{
  "passengers": [
    {
      "phone_number": "+48501234567"
    }
  ]
}

Response

Hold placed and the booking agent dispatched.

okboolean
booking_idstring
statestring
dispatchedboolean
heldobject

What is HELD on the connected method — not taken.

chargednumber

Always 0 here. Capture happens only against a real PNR.

offerobject
poll_urlstring uri
messagestring

Example response

{
  "state": "authorised"
}

Changes

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