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

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.2.tar.gz (877.5 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.2-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flight_search-0.1.2.tar.gz
  • Upload date:
  • Size: 877.5 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.2.tar.gz
Algorithm Hash digest
SHA256 6469989499eb0908ddf12a061ad18e71f9a56276427a3ea0229cdbf37173fb1b
MD5 8573ec3bbf0b0b717ea30c2aae47ae97
BLAKE2b-256 c616fa0703fb2eadf96563c37212407dd1224be8cc3750c82c5a59adda946ef9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flight_search-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.3 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 20deb4f4015a21e15f1fdc3797b98f7cebdf991c9f2e0c2b9999b4cbc016e0a0
MD5 4c6c4550ede160e323292afb8d1fa9b5
BLAKE2b-256 8d113aac8c77e456f1b557a345248a0aa1094f54929d3f444ccfff2fc9f1ccd9

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