Skip to main content
Glama

We're LetsFG — a community of travelers.

Finding a flight shouldn't mean checking 47 websites. 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 ✈️

         


Your AI agent just learned to book flights.

Hundreds of airlines. Real prices. One function call.

LetsFG gives your AI agent flight search and booking superpowers. Our server-side engine scans the entire world for the cheapest price — free with a 90-day Bearer token, or paid with the Developer API for direct booking URLs. Zero markup. Real airline tickets.

The same flight costs $20–$50 less because you skip OTA inflation, cookie tracking, and surge pricing.

CLI or scripts: Run letsfg auth (one-time Twitter/X challenge) to get a 90-day token, then letsfg search hits our cloud engine instantly. Developer API: Paid, but returns direct airline booking URLs with no per-booking fee. → Get started

GitHub stars PyPI npm Connector Health MIT License

Supporters


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

Products, teams, and builders who want raw offers, direct booking URLs, and no concierge fee

Speed

60–90 s

60–90 s

2–5 s (discover) · 60–90 s (full search)

Search cost

Free (Twitter/X auth, one-time)

Free (Twitter/X auth, one-time)

Prepaid credits ($0.50/$0.20/$0.10 per search, monthly tiers)

Booking URL

1% concierge fee (min $3) via letsfg.co

1% concierge fee (min $3) via letsfg.co

Direct airline URLs, no per-booking fee

Setup

pip install letsfg && letsfg auth

Twitter/X challenge — see below

letsfg.co/developers

Runs where

Our servers (auth + ranking local)

Our servers

Our servers

  • CLI / SDK (Path 1): pip install letsfg and run letsfg auth once — a 30-second Twitter/X challenge gives you a 90-day Bearer token. After that, letsfg search calls our server-side engine and applies the open-source ranking algorithm locally. Search is free and unlimited. Booking links go through letsfg.co (1% concierge fee, min $3).

  • 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). Register a 90-day Bearer token via a one-time Twitter/X challenge:

    1. POST https://letsfg.co/api/agent-access/request → get { challenge_code, tweet_text }

    2. Post the tweet from your Twitter/X account

    3. POST https://letsfg.co/api/agent-access/verify { "challenge_code": "..." } → receive your Bearer token

    4. Search: POST https://letsfg.co/api/search with Authorization: Bearer <token>

    Full guide and response schema: letsfg.co/for-agents. Search results include live flight offers with booking links via letsfg.co (1% concierge fee, min $3).

  • 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 /discover endpoint 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 Twitter/X challenge 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.


Related MCP server: Flights MCP

Real prices: LetsFG vs Google Flights

We searched 5 routes on Google Flights and LetsFG on the same day (June 15, 2026). Same airline, same itinerary — LetsFG was cheaper every time:

Route

Airline

Google Flights

LetsFG

You Save

LAX → Paris (CDG)

WestJet, 1 stop

$723

$687

$36

Warsaw → Bali (DPS)

Etihad, 1 stop

$876

$842

$34

SFO → London (LHR)

WestJet, 1 stop

$669

$636

$33

Chicago → Miami

Spirit, nonstop

$120

$114

$6

London → Barcelona

Vueling, nonstop

$62

$56

$6

LA → New York (JFK)

Frontier, 1 stop

$125

$124

$1

$116 saved across 6 flights. Google Flights inflates further on repeat searches. LetsFG returns the raw airline price every time.

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. And unlike travel websites, LetsFG returns the raw price with zero markup, no tracking, no inflation.


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): Register a free Bearer token via a one-time Twitter/X challenge → use POST /api/search. 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

Booking URL unlock

Runs where?

CLI / Python SDK / npm

✅ Free (Twitter/X token)

1% fee (min $3) via letsfg.co

Our servers

MCP Server

✅ Free (Twitter/X token)

1% fee (min $3) via letsfg.co

Our servers

letsfg.co (website / agent API)

✅ Free

1% fee (min $3) via letsfg.co

Our servers

Developer API

Prepaid credits

Included (direct airline URLs)

Our servers

CLI / SDK / MCP = free search. Run letsfg auth once (30-second Twitter/X challenge) and searches are free for 90 days. No credits, no Playwright. Booking links go through letsfg.co — the same 1% concierge fee (min $3) applies as on the website.

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.

PFS (raw API) = same as CLI but you call the API directly. Get a 90-day Bearer token via one Twitter/X challenge and call POST /api/search yourself. Purpose-built for agents (OpenClaw, Claude, GPT, etc.) that call the API directly.

💡 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)

Raw airline price. $116 cheaper across 6 verified routes.

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 (Twitter/X token, free) · Developer API (prepaid)

Booking

Redirects to OTA checkout

Real airline PNR, e-ticket to inbox

Cabin class filter

No

Economy, premium, business, first

Cost to you

Hidden markup

CLI/PFS: free search. Developer API: prepaid credits.


Get started

Pick where you want search to run. Local runs on your machine for free; PFS and the Developer API run on our servers.

🖥️ CLI / SDK — free, one-time auth

pip install letsfg
letsfg auth          # one-time Twitter/X challenge → 90-day Bearer token
letsfg search LHR BCN 2026-06-15

One auth step, then searches are free for 90 days — no install of browsers, no scrapers. The search runs on our servers.

letsfg search LHR JFK 2026-06-15 --cabin C   # cabin class: M economy, W premium, C business, F first

Booking from CLI search: you get a letsfg.co booking link, not a direct airline URL. Unlock it through the letsfg.co concierge checkout (1% fee, min $3) to reveal the airline link. Want direct airline URLs with no fee? Use the Developer API below.

🐦 PFS — Programmatic Flight Search (free, server-side)

Run LetsFG's full search on our servers — no local browser, no install. Access requires a one-time Twitter/X challenge: letsfg.co is human-only (Cloudflare Turnstile), so a Bearer token is the only programmatic way in. The token is free and lasts 90 days.

# 1. Request a challenge code
curl -X POST https://letsfg.co/api/agent-access/request

# 2. Tweet the returned challenge code to @LetsFG_

# 3. Verify the tweet → receive a 90-day Bearer token
curl -X POST https://letsfg.co/api/agent-access/verify \
  -H "Content-Type: application/json" \
  -d '{"challenge_code":"<the code from step 1>"}'

# 4. Search with the token
curl -X POST https://letsfg.co/api/search \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"origin":"LHR","destination":"BCN","date_from":"2026-06-15"}'

Search is free; booking links go through letsfg.co (1% fee, min $3). Full guide and response schema: letsfg.co/for-agents.

⚡ Developer API — paid, server-side, direct booking URLs

For products and teams. Prepaid credits, results in seconds, direct airline booking URLs with no concierge fee — plus /discover (20 destinations in one call, 1 credit), async polling, NL query parsing, and a free sandbox.

# Register, then search with your API key
curl -X POST https://letsfg.co/developers/api/v1/agents/register \
  -H "Content-Type: application/json" \
  -d '{"agent_name":"my-agent","email":"you@example.com"}'

curl -X POST https://letsfg.co/developers/api/v1/flights/search \
  -H "X-API-Key: trav_..." \
  -H "Content-Type: application/json" \
  -d '{"origin":"LHR","destination":"BCN","date_from":"2026-06-15"}'

Pricing: $0.50/search for the first 10 each month, $0.20 for 11–1,000, $0.10 beyond. Minimum top-up $5. Test for free in the sandbox first. Full docs: letsfg.co/developers/api/docs.

# Search (free with letsfg auth token)
letsfg search LON BCN 2026-04-01 --return 2026-04-08 --sort price

# Unlock (confirms live price, holds for 30 min — 1% fee, min $3)
letsfg unlock off_xxx

# Book (ticket price only, zero markup)
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

💡 Like what you see? Support us — ⭐ Star · Share with a friend


Works everywhere your agent runs

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

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

Run letsfg auth inside the MCP session once (prints the tweet to post, then saves the token). After that, searches work immediately.

{
  "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

5-minute quickstarts: Claude Desktop · Cursor · Windsurf

Python SDK

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()}")

JavaScript 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`);
from letsfg.local import search_local

# Reads LETSFG_BEARER_TOKEN env var or ~/.letsfg/config.json (set by `letsfg auth`)
result = await search_local("GDN", "BCN", "2026-06-15")

for offer in result.offers[:5]:
    print(f"{offer.airlines[0]}: {offer.currency} {offer.price}")

Install

Package

Command

What you get

Python SDK + CLI

pip install letsfg

SDK + CLI (run letsfg auth once for free search)

MCP Server

npx letsfg-mcp

Claude, Cursor, Windsurf (run letsfg auth once)

JS/TS SDK

npm install -g letsfg

SDK + CLI + open-source ranking engine

Remote MCP

https://letsfg.co/developers/api/mcp

No install (API key required)

Agent Skill

npx skills add LetsFG/LetsFG

Install flight search skill for any AI agent (skills.sh)

Smithery

smithery.ai/servers/letsfg

One-click MCP install


CLI Commands

Command

Description

letsfg auth

One-time Twitter/X challenge → saves 90-day Bearer token

letsfg search <origin> <dest> <date>

Search flights (free after letsfg auth)

letsfg register

Register an account for the Developer API

letsfg setup-payment

Attach a payment method (required for unlock)

letsfg recover --email <email>

Recover lost API key via email

letsfg locations <query>

Resolve city/airport to IATA codes

letsfg unlock <offer_id>

Confirm live price & pay unlock fee (1% of ticket, min $3)

letsfg book <offer_id>

Book the flight

letsfg me

View profile & usage stats

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


How it works

CLI / SDK / MCP (free, cloud-backed)

letsfg auth (once) → Bearer token (90-day) → Search (free) → Unlock & Book via letsfg.co
  1. Authletsfg auth runs the Twitter/X challenge: POST /api/agent-access/request → post the printed tweet → POST /api/agent-access/verify. Token saved to ~/.letsfg/config.json, valid 90 days.

  2. Searchletsfg search LHR BCN 2026-06-15 calls POST https://letsfg.co/api/search, polls until done (60–90 s), and applies the open-source ranking algorithm locally.

  3. Unlock & Book — booking links go through letsfg.co (1% concierge fee, min $3). Stripe card or MPP crypto accepted.

PFS — raw API (same as CLI, without the wrapper)

Twitter/X challenge → Bearer token (90-day) → POST /api/search → poll GET /api/results/<id>
  1. Get a Bearer tokenPOST /api/agent-access/request → post the tweet → POST /api/agent-access/verify { "challenge_code": "..." }. Token valid 90 days.

  2. SearchPOST https://letsfg.co/api/search with Authorization: Bearer <token>. Returns { search_id }. Poll GET /api/results/<search_id> every 10 s until status: "done".

  3. Unlock & Book — booking links go through letsfg.co (1% concierge fee, min $3).

Developer API — paid, direct booking URLs

Register → Fund balance → Discover or Search (credits) → Direct booking URL (no checkout)
  1. DiscoverPOST /flights/discover with up to 20 destinations, get indicative prices sorted cheapest-first. 1 credit, 2–5 s. Use to rank options before committing to a full search.

  2. Full searchPOST /flights/search (blocking) or /flights/search/async (non-blocking + poll). 1 credit, 60–90 s.

  3. Book — each offer includes a direct airline booking_url. No concierge fee, no checkout step.

The server-side 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.

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.


Architecture

CLI / SDK / MCP / PFS

CLI / SDK / MCP / AI Agent
        │  Twitter/X challenge → 90-day Bearer token
        ▼
POST letsfg.co/api/search  (bot-protected, token required)
        │
        ▼
letsfg.co server-side search engine
        │
        ▼
GET /api/results/<search_id>  (poll every 10 s until done)
        │
        ▼
Ranking applied locally (sdk/js/src/ranking.ts, open-source)
        │
        ▼
Results + booking links via letsfg.co (1% fee)

Developer API

Product / Team / Agent
        │  API key + prepaid credits
        ▼
letsfg.co/developers/api/v1
  ├─ /flights/discover      (indicative prices, 20 dest, 1 credit, 2–5 s)
  ├─ /flights/search        (full search, 1 credit, 60–90 s)
  ├─ /flights/search/async  (non-blocking + poll)
  ├─ /flights/parse-query   (Gemini NL parsing, free)
  └─ /sandbox/flights/*     (fake data, same schema, free)
        │
        ▼
Direct airline booking_url — no checkout, no concierge fee

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, AirAsia X, IndiGo, SpiceJet, Akasa Air, Air India, Air India Express, Alliance Air, Star Air, EaseMyTrip OTA, VietJet, Cebu Pacific, Scoot, Jetstar, Peach, Spring Airlines, Lucky Air, 9 Air, Nok Air, Batik Air, Jeju Air, T'way Air, ZIPAIR, Skymark, H.I.S. Travel OTA, 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

Southwest, JetBlue, Frontier, Spirit, Allegiant, Avelo, Breeze, Sun Country, Flair, Porter, WestJet, Volaris, VivaAerobus, GOL, Azul, LATAM, JetSmart, Flybondi, Arajet, Wingo, Sky Airline, Copa, Avianca

Oceania

Rex, Bonza, Link Airways, Air Vanuatu, Fiji Airways


Star History


letsfg.co · API Docs · Connector Health · PyPI · npm · Smithery · Instagram · TikTok · X

Open source · MIT License · Made with ❤️ by travelers, for travelers

Want updates? Click Watch above, or follow LetsFG on Instagram, @letsfg_ on TikTok, or @LetsFG_ on X.

Install Server
F
license - not found
A
quality
A
maintenance

Maintenance

Maintainers
<1hResponse time
3dRelease cycle
18Releases (12mo)
Commit activity
Issues opened vs closed

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