Skip to main content
Glama

LetsFGπŸ”₯πŸš€βœˆοΈ β€” agent-native flight search & booking.

Flights & hotels $50 cheaper in 5 seconds. Not redirects β€” real booking flows for AI agents.

LetsFG finds the cheapest flights across the entire internet β€” 180 airline connectors firing in parallel + enterprise GDS sources (Amadeus, Duffel, Sabre, Travelport) β€” and returns results in ~5 seconds. No web scraping wait times, no browser tabs, no inflated prices, and no redirect maze. Just raw airline prices, zero markup, and booking flows that end in real airline PNRs.

Native to OpenClaw, Perplexity Computer, Manus, Claude Code, Codex, Cursor, Windsurf β€” any AI agent that supports CLI, MCP, or packages. Built for developers shipping personal AI assistants, coding agents, and agentic workflows that need to do more than return links.

⭐ Search is free. Booking costs the ticket price only β€” zero markup. Star β†’ register β†’ get unlimited search access forever. No trial, no catch. Booking charges the raw airline ticket price via Stripe (we add zero margin).

GitHub stars MIT License PyPI npm npm

Side-by-side comparison: default agent search (OpenClaw, Perplexity Computer) vs LetsFG CLI. Same query β€” LetsFG finds cheaper flights across 180 airlines in seconds.

Why LetsFG?

Flight websites inflate prices with demand tracking, cookie-based pricing, and surge markup. The same flight is often $20–$50 cheaper through LetsFG β€” raw airline price, zero markup.

But the bigger difference for AI builders is the workflow: most travel products for agents stop at search and send the user away through redirects. LetsFG is built so an agent can search, unlock, and book inside one structured flow β€” ending in a real airline PNR, not a handoff.

LetsFG works by finding the best price across the entire internet. It fires 180 airline connectors in parallel, scanning carriers across Europe, Asia, Americas, Middle East, Africa, and Oceania β€” then merges results with enterprise GDS/NDC sources (Amadeus, Duffel, Sabre, Travelport) that provide competitive pricing from 400+ carriers including premium airlines like Lufthansa, British Airways, and Emirates. The best price wins.

That also matters for trust: in an agent-driven world, hidden OTA margin is not just a pricing issue β€” it's an incentives issue. LetsFG is not in the chain to quietly tax the passenger between the airline and the assistant.

Google Flights / Booking.com / Expedia

LetsFG

Search speed

30s+ (loading, ads, redirects)

~10 seconds

Search

Free (with tracking/inflation)

Free (no tracking, no cookies)

Booking model

Redirects user to OTA/airline checkout

Structured agent flow ending in a real airline PNR

Booking

Ticket + hidden markup

Ticket price only (raw airline price, zero markup)

Price goes up on repeat search?

Yes (demand tracking)

Never

LCC coverage

Missing many low-cost carriers

180 direct airline connectors

Works inside AI agents?

No

Native (CLI, MCP, SDK)


One-Click Install

pip install letsfg

That's it. You can search flights immediately β€” no account, no API key, no configuration:

letsfg search-local GDN BCN 2026-06-15

This runs 180 airline connectors locally on your machine and returns real-time prices. Completely free, unlimited, zero setup.


Star History


Two Ways to Use LetsFG

Option A: Local Only (Free, No API Key)

Install and search. One command, zero configuration.

pip install letsfg
letsfg search-local LHR BCN 2026-04-15

What you get:

  • 180 airline connectors running on your machine (Ryanair, Wizz Air, EasyJet, Southwest, AirAsia, Norwegian, Qantas, Webjet, Traveloka, Tiket.com, and 170+ more)

  • Real-time prices scraped directly from airline websites

  • Virtual interlining β€” cross-airline round-trips that save 30–50%

  • Completely free, unlimited searches

from letsfg.local import search_local

result = await search_local("GDN", "BCN", "2026-06-15")
for offer in result.offers[:5]:
    print(f"{offer.airlines[0]}: {offer.currency} {offer.price}")

One extra command unlocks the full power of LetsFG:

pip install letsfg
letsfg register --name my-agent --email you@example.com
# β†’ Returns: trav_xxxxx... (your API key)
export LETSFG_API_KEY=trav_...

letsfg search LHR JFK 2026-04-15

What you get (in addition to everything in Option A):

  • Enterprise GDS/NDC providers β€” Amadeus, Duffel, Sabre, Travelport, Kiwi. These are contract-only data sources that normally require enterprise agreements worth $50k+/year. LetsFG is contracted with these providers and makes their inventory available to every user.

  • 400+ full-service airlines β€” Lufthansa, British Airways, Emirates, Singapore Airlines, ANA, Cathay Pacific, and hundreds more that don't have public APIs

  • Competitive pricing β€” the backend aggregates offers from multiple GDS sources and picks the cheapest for each route

  • Unlock & book β€” confirm live prices and create real airline PNRs with e-tickets

  • Both local connectors AND cloud sources run simultaneously β€” results merged and deduplicated automatically

Registration is instant, free, and handled by CLI β€” an AI agent can do it in one command. The API key connects you to our closed-source backend service which maintains enterprise contracts with GDS/NDC providers and premium carriers.

⭐ Star this repo and register β€” unlimited search, zero-markup booking. First 1,000 stars only.

from letsfg import LetsFG

bt = LetsFG()  # reads LETSFG_API_KEY from env
flights = bt.search("LHR", "JFK", "2026-04-15")
print(f"{flights.total_results} offers, cheapest: {flights.cheapest.summary()}")

Quick Start (Full Flow)

pip install letsfg

# Register and get API key (free, instant)
letsfg register --name my-agent --email you@example.com
export LETSFG_API_KEY=trav_...

# Search (free, unlimited)
letsfg search LHR JFK 2026-04-15
letsfg search LON BCN 2026-04-01 --return 2026-04-08 --cabin M --sort price

# Unlock (confirms live price, reserves for 30 min)
letsfg unlock off_xxx

# Book
letsfg book off_xxx \
  --passenger '{"id":"pas_0","given_name":"John","family_name":"Doe","born_on":"1990-01-15","gender":"m","title":"mr"}' \
  --email john.doe@example.com

All commands support --json for machine-readable output:

letsfg search GDN BER 2026-03-03 --json | jq '.offers[0]'

Install

pip install letsfg
playwright install chromium  # needed for browser-based connectors

JavaScript / TypeScript (API client only)

npm install -g letsfg

MCP Server (Claude Desktop / Cursor / Windsurf / OpenClaw)

npx letsfg-mcp

Add to your MCP config (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "letsfg": {
      "command": "npx",
      "args": ["-y", "letsfg-mcp"]
    }
  }
}

That's it β€” search works immediately, no API key needed. The MCP server runs 180 airline connectors locally on your machine and returns real-time prices. Rate limited to 10 searches per minute.

For unlock/book functionality, add an API key:

{
  "mcpServers": {
    "letsfg": {
      "command": "npx",
      "args": ["-y", "letsfg-mcp"],
      "env": {
        "LETSFG_API_KEY": "trav_your_api_key"
      }
    }
  }
}

Get a key: letsfg register --name my-agent --email you@example.com. Star this repo and call link_github to verify β€” all tools unlock forever.

5-minute quickstarts: Claude Desktop Β· Cursor Β· Windsurf

Python SDK

from letsfg import LetsFG

bt = LetsFG(api_key="trav_...")
flights = bt.search("LHR", "JFK", "2026-04-15")
print(f"{flights.total_results} offers, cheapest: {flights.cheapest.summary()}")

unlocked = bt.unlock(flights.offers[0].id)
booking = bt.book(
    offer_id=unlocked.offer_id,
    passengers=[{"id": "pas_0", "given_name": "John", "family_name": "Doe", "born_on": "1990-01-15", "gender": "m", "title": "mr"}],
    contact_email="john.doe@example.com",
)
print(f"Booked! PNR: {booking.booking_reference}")

JS SDK

import { LetsFG } from 'letsfg';

const bt = new LetsFG({ apiKey: 'trav_...' });
const flights = await bt.search('LHR', 'JFK', '2026-04-15');
console.log(`${flights.totalResults} offers`);

CLI Commands

Command

Description

letsfg register

Get your API key

letsfg search <origin> <dest> <date>

Search flights (free)

letsfg locations <query>

Resolve city/airport to IATA codes

letsfg unlock <offer_id>

Confirm live price & reserve for 30 min

letsfg book <offer_id>

Book the flight

letsfg system-info

Show system resources & concurrency tier

letsfg me

View profile & usage stats

All commands accept --json for structured output and --api-key to override the env variable.

How It Works

  1. Search (free) β€” returns offers with full details: price, airlines, duration, stopovers, conditions

  2. Unlock β€” confirms live price with the airline, reserves for 30 minutes

  3. Book β€” creates real airline PNR, e-ticket sent to passenger email

Three Search Modes

Mode

What it does

Speed

Auth

MCP (default)

MCP server runs 180 airline connectors locally on your machine

5-25s

None

Cloud search

Queries GDS/NDC providers (Duffel, Amadeus, Sabre, Travelport, Kiwi) via backend API

2-15s

API key

Local search

Fires 180 airline connectors on your machine via Playwright + httpx

5-25s

None

MCP runs locally by default for npx letsfg-mcp β€” zero setup, no API key. Set LETSFG_SEARCH_MODE=cloud to use the cloud backend instead. Cloud search + local search run simultaneously in the Python SDK. Results are merged, deduplicated, currency-normalized, and sorted.

Virtual Interlining

The combo engine builds cross-airline round-trips by combining one-way fares from different carriers. A Ryanair outbound + Wizz Air return can save 30-50% vs booking a round-trip on either airline alone.

City-Wide Airport Expansion

Search a city code and LetsFG automatically searches all airports in that city. LON expands to LHR, LGW, STN, LTN, SEN, LCY. NYC expands to JFK, EWR, LGA. Works for 25+ major cities worldwide β€” one search covers every airport.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  AI Agents / CLI / SDK / MCP Server                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Local connectors β”‚  Enterprise Cloud API            β”‚
β”‚  (180 airlines viaβ”‚  (Amadeus, Duffel, Sabre,        β”‚
β”‚   Playwright)     β”‚   Travelport, Kiwi β€” contract-   β”‚
β”‚                   β”‚   only GDS/NDC providers)        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚            Merge + Dedup + Combo Engine              β”‚
β”‚            (virtual interlining, currency norm)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Local Airline Connectors (180 airlines)

The Python SDK includes 180 production-grade airline connectors β€” not fragile scrapers, but maintained integrations that handle each airline's specific API pattern. No API key needed for local search. Each connector uses one of three proven strategies:

Strategy

How it works

Example airlines

Direct API

Reverse-engineered REST/GraphQL endpoints via httpx/curl_cffi

Ryanair, Wizz Air, Norwegian, Akasa

CDP Chrome

Real Chrome + Playwright CDP for sites with bot detection

EasyJet, Southwest, Pegasus

API Interception

Playwright page navigation + response interception

VietJet, Cebu Pacific, Lion Air

Supported Airlines

Region

Airlines

Europe

Ryanair, Wizz Air, EasyJet, Norwegian, Vueling, Eurowings, Transavia, Pegasus, Turkish Airlines, Condor, SunExpress, Volotea, Smartwings, Jet2, LOT Polish Airlines, Finnair, SAS, Aegean, Aer Lingus, ITA Airways, TAP Portugal, Icelandair, PLAY

Middle East & Africa

Emirates, Etihad, Qatar Airways, flydubai, Air Arabia, flynas, Salam Air, Air Peace, FlySafair, EgyptAir, Ethiopian Airlines, Kenya Airways, Royal Air Maroc, South African Airways

Asia-Pacific

AirAsia, IndiGo, SpiceJet, Akasa Air, Air India, Air India Express, VietJet, Cebu Pacific, Scoot, Jetstar, Peach, Spring Airlines, Lucky Air, 9 Air, Nok Air, Batik Air, Jeju Air, T'way Air, ZIPAIR, Singapore Airlines, Cathay Pacific, Malaysian Airlines, Thai Airways, Korean Air, ANA, JAL, Qantas, Virgin Australia, Bangkok Airways, Air New Zealand, Garuda Indonesia, Philippine Airlines, US-Bangla, Biman Bangladesh

Americas

American Airlines, Delta, United, Southwest, JetBlue, Alaska Airlines, Hawaiian Airlines, Sun Country, Frontier, Volaris, VivaAerobus, Allegiant, Avelo, Breeze, Flair, GOL, Azul, JetSmart, Flybondi, Porter, WestJet, LATAM, Copa, Avianca, Air Canada, Arajet, Wingo, Sky Airline

Aggregator

Kiwi.com (virtual interlining + LCC fallback)

Local Search (No API Key)

from letsfg.local import search_local

# Runs all relevant connectors on your machine β€” completely free
result = await search_local("GDN", "BCN", "2026-06-15")

# Limit browser concurrency for constrained environments
result = await search_local("GDN", "BCN", "2026-06-15", max_browsers=4)
# CLI local-only search
letsfg search-local GDN BCN 2026-06-15

# Limit browser concurrency
letsfg search-local GDN BCN 2026-06-15 --max-browsers 4

Shared Browser Infrastructure

All browser-based connectors share a common launcher (connectors/browser.py) with:

  • Automatic Chrome discovery (Windows, macOS, Linux)

  • Stealth headless mode (--headless=new) β€” undetectable by airline bot protection

  • Off-screen window positioning to avoid stealing focus

  • CDP persistent sessions for airlines that require cookie state

  • Adaptive concurrency β€” automatically scales browser instances based on system RAM

  • BOOSTED_BROWSER_VISIBLE=1 to show browser windows for debugging

Performance Tuning

LetsFG auto-detects your system's available RAM and scales browser concurrency accordingly:

System RAM

Tier

Max Browsers

Notes

< 2 GB

Minimal

2

Low-end VMs, CI runners

2–4 GB

Low

3

Budget laptops

4–8 GB

Moderate

5

Standard laptops

8–16 GB

Standard

8

Most desktops

16–32 GB

High

12

Dev workstations

32+ GB

Maximum

16

Servers

Override auto-detection when needed:

# Environment variable (highest priority)
export LETSFG_MAX_BROWSERS=4

# CLI flag
letsfg search-local LHR BCN 2026-04-15 --max-browsers 4

# Check your system profile
letsfg system-info
# Python SDK
from letsfg import configure_max_browsers, get_system_profile

profile = get_system_profile()
print(f"RAM: {profile['ram_available_gb']:.1f} GB, Tier: {profile['tier']}, Recommended: {profile['recommended_max_browsers']}")

configure_max_browsers(4)  # explicit override

Error Handling

Exception

HTTP

When

AuthenticationError

401

Missing or invalid API key

OfferExpiredError

410

Offer no longer available (search again)

LetsFGError

any

Base class for all API errors

Packages

Package

Install

What it is

Python SDK + CLI

pip install letsfg

SDK + letsfg CLI + 150+ local airline connectors

JS/TS SDK + CLI

npm install -g letsfg

SDK + letsfg CLI command

MCP Server

npx letsfg-mcp

Model Context Protocol for Claude, Cursor, Windsurf β€” no API key needed for search

Remote MCP

https://api.letsfg.co/mcp

Streamable HTTP β€” no install needed (API key required)

Smithery

smithery.ai/servers/letsfg

One-click MCP install via Smithery

Documentation

Guide

Description

Getting Started

Authentication, payment setup, search flags, cabin classes

API Guide

Error handling, search results, workflows, unlock details, location resolution

Agent Guide

AI agent architecture, preference scoring, price tracking, rate limits

Architecture Guide

Parallel execution, failure handling, caching, browser concurrency, performance tuning

Tutorials

Python & JS integration tutorials, concurrent search, travel assistant patterns

Packages & SDKs

Python SDK, JavaScript SDK, MCP Server, local connectors

Self-Hosting & HTTP Endpoints

Deploy connectors as local HTTP APIs (FastAPI, Flask, Docker, Dokku)

CLI Reference

Commands, flags, examples

AGENTS.md

Agent-specific instructions (for LLMs)

CLAUDE.md

Codebase context for Claude

API Docs

Base URL: https://api.letsfg.co

Contact & Partnerships

Interested in B2B integration, partnership, or bulk/enterprise access? Reach out:

We're actively looking for partners β€” airlines, travel platforms, AI agent builders, and anyone building on top of flight data. Don't hesitate to reach out.

Contributing

See CONTRIBUTING.md for guidelines.

Security

See SECURITY.md for our security policy.

License

Free for personal use. Search is free for everyone β€” no agreement needed. Commercial booking requires a 1% fee (min $1 USD) via Stripe Connect. By using the Software you agree to the LICENSE. To set up a commercial agreement, email contact@letsfg.co or adam@letsfg.co.

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/LetsFG/LetsFG'

If you have feedback or need assistance with the MCP directory API, please join our Discord server