BoostedTravel
TrendingFlight search & booking for AI agents. 400+ airlines, $20-50 cheaper than OTAs.
Install
Terminal
$npx -y boostedtravel-mcpmcp_config.json
{
"mcpServers": {
"com-boostedchat-travel": {
"env": {
"BOOSTEDTRAVEL_API_KEY": "${BOOSTEDTRAVEL_API_KEY}"
},
"args": [
"-y",
"boostedtravel-mcp"
],
"command": "npx"
}
}
}Documentation
MPP (updated 2026-07-30): the MPP (Machine Payments Protocol)
402challenge is live, as a card-free enrolment lane for agents holding a Tempo wallet. It costs $0.01 once, as verification only — MPP has no zero-amount intent, so a card-free rail has to settle something. Search and booking stay free. Earlier revisions of this page described an MPP charge at unlock time; that never shipped. See https://letsfg.co/for-agents.
⚠️ Agents: do not create a Developer API account
Do NOT call
/developers/api/v1/agents/registeror/developers/api/v1/agents/setup-payment, and do NOT runletsfg registerorletsfg setup-payment. Those belong to a separate, paid, prepaid-balance product for high-volume commercial integrations and create a billing account you almost certainly do not want.To search and book flights, run
letsfg auth— a zero-amount card setup (nothing charged), then search and book. See https://letsfg.co/for-agents.
We're LetsFG — a community of travelers.
Finding a flight or hotel shouldn't mean checking 47 tabs. Or 3 hours of searching. Or having that feeling you could've got a better deal if you'd just waited a little longer.
So we built something about it. No markup. No tracking. No price that goes up because you looked twice.
Join the community. Help others find cheaper flights. Spread the word.⭐ Star the repo. Share with a friend ✈️
Flights and hotels. Both live.
Hundreds of airlines. Real prices. One function call.
LetsFG gives your AI agent flight and hotel search and booking superpowers. Our server-side engine scans the entire world for the cheapest price. Search is free. Real airline tickets, booked through us or handed to you as a direct link.
The same flight costs $20–$50 less because you skip OTA inflation, cookie tracking, and surge pricing.
CLI or scripts: Run letsfg auth once — it puts a payment method on file through a zero-amount Stripe setup (nothing is charged) and returns a 90-day token. Then letsfg search and letsfg book hit our cloud engine. Developer API: a separate paid product for high-volume commercial use; most agents do not need it. → Get started
Supporters
🏨 Hotels — new, and live
Your agent can now book hotels, not just flights. Same API key, same card on file.
from letsfg import LetsFG
lfg = LetsFG()
city = lfg.hotel_destinations("Warsaw")[0]
stays = lfg.search_hotels(
city_id=city["Id"], city_name=city["Name"],
check_in="2026-11-10", check_out="2026-11-12", adults=2,
)
hotel = stays["hotels"][0]
offer = hotel["offers"][0]
print(hotel["name"], offer["price"], stays["currency"])
# Hotel Gromada Warszawa Centrum 669.86 PLN
booking = lfg.book_hotel_and_wait(
session_id=stays["session_id"],
hotel_code=hotel["hotel_code"],
combination_id_v2=offer["combination_id_v2"],
expected_price=offer["price"],
expected_balance=offer["balance_to_supplier"],
city_id=city["Id"], city_name=city["Name"],
check_in="2026-11-10", check_out="2026-11-12",
guests=[{"title": "Mr", "first_name": "Jan", "last_name": "Kowalski"}],
email="guest@example.com", phone="512345678",
)
print(booking["confirmation"], booking["pay_link"])
How you pay
5% now, the rest to the hotel later. At booking we charge 5% of the price
to your card as a reservation fee. The remaining balance is paid directly to
the supplier through a pay_link we return — we never hold it.
balance_due_by is the supplier's own auto-cancellation date, not a date we
invent. Miss it and the room is released.
The 5% is non-refundable. Cancelling before balance_due_by costs nothing
else; after it, the hotel's own cancellation ladder applies and can reach 100%.
That ladder ships in the booking's terms, so you can always see the cost before
you cancel.
Things worth knowing before you build
- A card on file is required for every hotel call, including search. That is unusual and it is deliberate: a hotel search opens a real session at the supplier, and booking blocks a real rate. We would rather refuse up front than let you reach the point of commitment and discover you cannot pay. The same card that authorises flight booking authorises hotels — there is no separate hotel signup.
- Only free-cancellation, pay-later rates are sold. Those are the rates where the balance can safely be settled with the supplier after booking, which is what makes 5%-now/rest-later work at all. You will see fewer results than a metasearch shows you. Every one of them can actually be booked.
- Booking is asynchronous.
book_hotelreturns abooking_job_id, not a booking — the real thing takes minutes. Pollhotel_booking(job_id)untilstatusissucceededorfailed, or callbook_hotel_and_waitand let the SDK do it. This is not ceremony: it is what makes it impossible to charge a card and then lose the confirmation to a timeout. - The fee is charged before the room is committed. A declined card therefore costs nothing to unwind — no reservation exists and nothing is charged.
- Do not retry a booking blindly. Calling
book_hoteltwice for the same rate books the room twice and charges two reservation fees. priceis what the guest pays. There is no wholesale figure in the response to quote by mistake.
JavaScript
import { LetsFG } from 'letsfg';
const lfg = new LetsFG({ apiKey: process.env.LETSFG_API_KEY });
const [city] = await lfg.hotelDestinations('Warsaw');
const stays = await lfg.searchHotels({
cityId: city.Id, cityName: city.Name,
checkIn: '2026-11-10', checkOut: '2026-11-12', adults: 2,
});
const booking = await lfg.bookHotelAndWait({ /* ...offer + guest details... */ });
console.log(booking.confirmation, booking.pay_link);
MCP
Five new tools, in the order you call them: resolve_hotel_city →
search_hotels → book_hotel → get_hotel_booking → cancel_hotel_booking.
✦ Starlink Wi-Fi on results
Offers tell you whether the flight has Starlink, in two honest tiers. A solid
verdict (confirmed_all) means the airline has fitted every aircraft of that
type. A hedged one (likely_all) means the rollout on that type is real but
incomplete — as of August 2026 United was ~29% of its fleet — so it is reported
as a signal, never a promise. An absent field means no information, not an
absence of Wi-Fi.
for o in offers:
if o.get("starlink") == "confirmed_all":
print(f"{o['owner_airline']} {o['price']} — Starlink on every leg")
Full semantics: docs/api-search.md.
Three ways to use LetsFG
| Path 1 — CLI / SDK | Path 2 — PFS (Programmatic Flight Search via letsfg.co) | Path 3 — Developer API | |
|---|---|---|---|
| Best for | Developers, personal use, AI agents — easiest way in | Scripts/agents calling the API directly with a Bearer token | High-volume commercial integrations that want prepaid billing. Most agents should not use this |
| Speed | 60–90 s | 60–90 s | 2–5 s (discover) · 60–90 s (full search) |
| Search cost | Free (one-time letsfg auth, nothing charged) | Free (one-time letsfg auth, nothing charged) | Prepaid credits ($0.50/$0.20/$0.10 per search, monthly tiers) |
| Booking | POST /api/agent-book | POST /api/agent-book | Direct airline URLs |
| Setup | pip install letsfg && letsfg auth | Payment method on file — see below | letsfg.co/developers |
| Runs where | Our servers (auth + ranking local) | Our servers | Our servers |
-
CLI / SDK (Path 1):
pip install letsfgand runletsfg authonce — it puts a payment method on file via a zero-amount Stripe setup (no charge, no authorization hold) and gives you a 90-day Bearer token. After that,letsfg searchcalls our server-side engine and applies the open-source ranking algorithm locally. Search is free and unlimited. -
PFS — Programmatic Flight Search (Path 2): For scripts and agents that call the API directly. letsfg.co is human-only by default (Cloudflare Turnstile + bot protection). Get a 90-day Bearer token by putting a payment method on file. Nothing is charged on the card lanes — it is a zero-amount Stripe setup:
POST https://letsfg.co/api/agent-access/request→402withsetup_url(hosted), aheadlessobject, and anmppobject- Present a payment method, whichever fits how you run:
- hosted — a human adds a card at
setup_url, then send{ "setup_session_id": "cs_..." } - headless — no browser: create a PaymentMethod and confirm the SetupIntent yourself against
api.stripe.comwith the supplied publishable key, then send{ "setup_intent_id": "seti_..." } - MPP — no card at all: answer the
WWW-Authenticate: Paymentchallenge ($0.01 once, verification only), then retry withAuthorization: Payment <credential>
- hosted — a human adds a card at
POST https://letsfg.co/api/agent-access/verify→ receive your Bearer token- Search:
POST https://letsfg.co/api/searchwithAuthorization: Bearer <token> - Book:
POST https://letsfg.co/api/agent-book
Full guide and response schema: letsfg.co/for-agents. Booking returns either a confirmed order or a direct booking link for that exact offer.
-
Developer API (Path 3): Paid server-side search at letsfg.co/developers. Prepaid credits, direct airline booking URLs (no checkout step), full NL query parsing, and a
/discoverendpoint that checks 20 destinations in one call for 1 credit (2–5 s). Includes a free sandbox at/sandbox/flights/*. Full docs: letsfg.co/developers/api/docs.
Free server-side search: Use Path 1 or PFS — one
letsfg auth(a zero-amount card setup, nothing charged) gives you a 90-day token and free searches on our servers. No Playwright, no local install beyond the SDK. Direct booking URLs with no per-booking fee: Use the Developer API (Path 3) — prepaid credits, instant results, no checkout layer.
Real prices: LetsFG vs Google Flights
We searched 5 routes on Google Flights and LetsFG on the same day (2026-08-05), for flights departing 2026-09-16. Same airline, same number of stops — LetsFG was cheaper every time:
| Route | Airline | Google Flights | LetsFG | You Save |
|---|---|---|---|---|
| LAX → Paris (CDG) | JetBlue, 1 stop | $363 | $334 | $29 |
| SFO → London (LHR) | JetBlue, 1 stop | $349 | $333 | $16 |
| LA → New York (JFK) | JetBlue, nonstop | $174 | $157 | $17 |
| London → Singapore (SIN) | Shenzhen Airlines, 1 stop | $395 | $380 | $15 |
| Chicago → Dubai (DXB) | Air Canada + Emirates, 2 stops | $517 | $461 | $56 |
$133 cheaper across 5 routes in a verified comparison (2026-08-05). Google Flights inflates on repeat searches; LetsFG returns the same prices however often you run the search, because it reads airlines and the major booking sites directly rather than tracking you.
Why the difference? Google Flights only searches its own limited set of airline partners. LetsFG searches everywhere — Skyscanner, Kiwi, Kayak, Momondo, plus direct airline websites (Ryanair, United, Southwest, EasyJet, Spirit, Norwegian, AirAsia, and hundreds more). More sources = better prices. No demand-based inflation and no cookie tracking: the same search returns the same prices however often you run it.
Real hotel prices: LetsFG vs Booking.com
Same hotel, same room type, same 2-night stay, same free-cancellation policy — checked on the same day (2026-08-05) for a 2026-09-16 check-in:
| Hotel | Booking.com | LetsFG | You Save |
|---|---|---|---|
| Hotel Boss, Warsaw | $206 | $169 | $37 |
| ibis Styles Paris Gare de l'Est | $663 | $525 | $138 |
| Copthorne Tara Hotel, London Kensington | $379 | $347 | $32 |
$207 cheaper across 3 hotels in a verified comparison (2026-08-05), matching each property's own free-cancellation rate against Booking.com's free-cancellation rate for the identical dates and room type. Prices quoted in PLN at booking, converted to USD at that day's rate.
Why the difference? LetsFG sells at wholesale cost — no markup for demand, no loyalty-program cross-subsidy. You're not paying for the room upfront: 5% books it now, and the remaining 95% isn't due until the hotel's own cancellation deadline. Cancel before that deadline and you lose nothing but the 5%; the rest was never charged. Only free-cancellation, pay-later rates are sold, so every price shown is one you can actually hold risk-free.
Try it right now — no install needed
Human users: Use letsfg.co and search flights instantly in your browser:
🌐 Search on letsfg.co
Search any route, compare live results, and unlock the booking links for the flights you want — no installation needed.
Agents / scripts (free server-side): Get a Bearer token by putting a payment method on file (nothing is charged) → use POST /api/search and POST /api/agent-book. This is PFS — Programmatic Flight Search powered by the letsfg.co engine, free for 90 days per token. See letsfg.co/for-agents for the full guide.
When you're ready to integrate it into your own agent, keep reading.
Pricing
| How you use it | Search | Flight booking | Hotel booking | Runs where? |
|---|---|---|---|---|
| CLI / Python SDK / npm | ✅ Free (letsfg auth, zero-amount card setup) | No LetsFG fee either way | 5% non-refundable reservation fee | Our servers |
| MCP Server | ✅ Free (letsfg auth) | No LetsFG fee either way | 5% reservation fee | Our servers |
| PFS (raw API via letsfg.co) | ✅ Free (Bearer token, zero-amount setup or $0.01 via MPP) | No LetsFG fee either way | 5% reservation fee | Our servers |
| Developer API | Prepaid credits | Included (direct airline URLs) | 5% reservation fee | Our servers |
CLI / SDK / MCP / PFS = free search, no LetsFG fee on flight booking. Run letsfg auth once (a zero-amount card setup — nothing is charged) and both searching and booking are free for 90 days. No credits, no unlock step. letsfg book / POST /api/agent-book returns either a confirmed order or a direct airline link — no LetsFG fee either way (you still pay the ticket price itself, plus Stripe's own processing cut, same as any card charge).
Hotels = 5% now to hold a free-cancellation rate, on every path. That 5% is what pays for flexibility: it books the room today, but the remaining 95% isn't charged until the hotel's own cancellation deadline, paid straight to the hotel via a pay_link. Cancel before that deadline and the only cost is the 5% already paid. See Hotels above.
Developer API = prepaid, business use. letsfg.co/developers returns direct airline booking URLs with no per-booking fee. Monthly billing: $0.50/search for the first 10, $0.20 for 11–1,000, then $0.10/search. Resets monthly. Minimum top-up: $5.
💡 Know someone who travels? The more people discover LetsFG, the more airlines we cover — and the better it gets for everyone. ⭐ Star · Share with a friend
Why developers star this repo
| Google Flights / Expedia | LetsFG | |
|---|---|---|
| Price | Inflated (tracking, cookies, surge) | Stable across repeat searches. $133 cheaper across 5 routes, verified 2026-08-05. |
| Coverage | Misses budget airlines | Hundreds of airlines — OTAs, budget carriers, full-service |
| Speed | 30 s+ (page loads, ads, redirects) | CLI/PFS: 60–90 s · API discover: 2–5 s |
| Repeat search raises price? | Yes | Never |
| Works in AI agents? | No API | CLI · MCP · PFS (letsfg auth, free) · Developer API (prepaid) |
| Booking | Redirects to OTA checkout | Real airline PNR, e-ticket to inbox |
| Cabin class filter | No | **Economy, premium, business, first |
Sourced from the repository README.
More in AI & Agents
- PonytailMakes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.109,599
- AgentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity39,079
- Frontend SlidesCreate beautiful slides on the web using a coding agent's frontend skills28,060
- Agent Skills Search ServerSearch and discover Agent Skills from the skills.sh registry. Powered by HAPI MCP server.24,658
- Agency Agents Zh🎭 267 个即插即用的 AI 专家角色 — 支持 Hermes Agent/Claude Code/Cursor/Copilot 等 18 种工具,覆盖工程/设计/营销/金融等 20 个部门。含 52 个中国市场原创智能体(小红书/抖音/微信/飞书/钉钉等)。搭配编排器 agency-orchestrator,一句话即可让多位专家按 DAG 自动协作。19,868
- Watermarks RemoverStrip multi-vendor AI provenance marks: Unicode text hygiene, statistical rewrite hooks, and C2PA/metadata from PNG/JPEG/SVG/PDF/DOCX/HTML/MD17,822