Skip to main content

CLI tool to search Google Flights - prices, times, and airlines

Project description

flight-search banner

✈️ flight-search

PyPI Python License

CLI tool to search Google Flights. Get prices, times, and airlines from the command line.

$ flight-search DEN LAX --date 2025-03-01

✈️  DEN  LAX
   One way · 2025-03-01
   Prices are currently: typical

──────────────────────────────────────────────────
   Frontier  BEST
   🕐 10:43 PM  12:30 AM +1
   ⏱️  2 hr 47 min
    Nonstop
   💰 $84

──────────────────────────────────────────────────
   United  BEST
   🕐 5:33 PM  7:13 PM
   ⏱️  2 hr 40 min
    Nonstop
   💰 $139

Built on top of fast-flights - no API key required.

Installation

# one-liner
curl -fsSL https://raw.githubusercontent.com/Olafs-World/flight-search/main/install.sh | bash

# using uv (recommended)
uv tool install flight-search

# or pip
pip install flight-search

# or run directly without installing
uvx flight-search DEN LAX --date 2025-03-01

Updating

# check current version
flight-search --version

# update with uv
uv tool upgrade flight-search

# or with pip
pip install --upgrade flight-search

# or with pipx
pipx upgrade flight-search

Usage

# One-way flight
flight-search DEN LAX --date 2025-03-01

# Round trip
flight-search JFK LHR --date 2025-06-15 --return 2025-06-22

# Multiple passengers, business class
flight-search SFO NRT --date 2025-04-01 --class business --adults 2

# JSON output for scripts
flight-search ORD CDG --date 2025-05-01 --output json

Options

positional arguments:
  origin                Origin airport code (e.g., DEN, LAX, JFK)
  destination           Destination airport code

options:
  --date, -d            Departure date (YYYY-MM-DD) [required]
  --return, -r          Return date for round trips (YYYY-MM-DD)
  --adults, -a          Number of adults (default: 1)
  --children, -c        Number of children (default: 0)
  --class, -C           Seat class: economy, premium-economy, business, first
  --limit, -l           Max results (default: 10)
  --output, -o          Output format: text or json (default: text)

JSON Output

flight-search DEN LAX --date 2025-03-01 --output json
{
  "origin": "DEN",
  "destination": "LAX",
  "date": "2025-03-01",
  "return_date": null,
  "current_price": "typical",
  "flights": [
    {
      "airline": "Frontier",
      "departure_time": "10:43 PM",
      "arrival_time": "12:30 AM",
      "duration": "2 hr 47 min",
      "stops": 0,
      "price": 84,
      "is_best": true
    }
  ]
}

Troubleshooting

"401 no token provided" error

This can happen when the underlying library's fallback request method fails. Workarounds:

  1. Try again - Sometimes transient
  2. Use from a different network - Some networks/regions have issues
  3. Install Playwright for local browser mode:
    pip install playwright
    playwright install chromium
    

The library scrapes Google Flights directly. It doesn't require an API key, but Google's anti-bot measures can sometimes block requests.

Python API

from flight_search import search_flights

result = search_flights(
    origin="DEN",
    destination="LAX", 
    date="2025-03-01",
    adults=2,
    seat_class="economy",
)

for flight in result.flights:
    print(f"{flight.airline}: ${flight.price}")

Links

Self-Update

# Auto-detects how you installed it (uv/pipx/pip) and upgrades
flight-search --upgrade

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flight_search-0.1.6.tar.gz (879.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flight_search-0.1.6-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file flight_search-0.1.6.tar.gz.

File metadata

  • Download URL: flight_search-0.1.6.tar.gz
  • Upload date:
  • Size: 879.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for flight_search-0.1.6.tar.gz
Algorithm Hash digest
SHA256 bbb994d80ce81ee775a00af253437f9416f2d83582ac09d20ace22b591066cbd
MD5 fca72b9c90d878190c76d97f439c1475
BLAKE2b-256 90be0374faed3be32bfa1604508d24de87a5b909043843a4a459d8477ec5874b

See more details on using hashes here.

File details

Details for the file flight_search-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: flight_search-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for flight_search-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f154901417943915a6f4c565c70ff0df92ace3b884f9d394b4a289a38c906370
MD5 74c24217e7763382f33d399864d5f3f0
BLAKE2b-256 a22902666862761e191054df227eb9916d099fb9711129c0769f2a5d3f4e09ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page