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

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.4.tar.gz (879.1 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.4-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flight_search-0.1.4.tar.gz
  • Upload date:
  • Size: 879.1 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.4.tar.gz
Algorithm Hash digest
SHA256 4c7b1869f294611a3b76d38e3e1bde390fb1ec035c9b1c1054b8fe080d171c04
MD5 0db2bd62933eb6d39cc78efe0b11ed83
BLAKE2b-256 73e3987cc89fb335d5607195a27576d05087da41f75ba01e0f284ff72e62b85e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flight_search-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 7.5 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cf7daf8a8e9e53e281a4bba6a88530bc7a21c369e1685069be74fc6d5c3e25d4
MD5 b2917b3c96292740240062d08e3ab8c2
BLAKE2b-256 84b4c952f908187c9815055da9c8eb26e5f7b7a7dc07d83aa13fdd50888b5d07

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